[{"data":1,"prerenderedAt":4625},["ShallowReactive",2],{"iY1wbEFgoh":3,"VyF3Mmj32r":3089,"N9m89Rcq0G":3269},{"title":4,"description":5,"body":6,"_type":3088,"_id":4},"VK_EXT_graphics_pipeline_library.proposal","This document outlines a proposal to allow partial compilation of portions\nof pipelines, improving the performance of pipeline compilation for\napplications that have large numbers of materials, large amounts of\ndynamic state, or continuously stream in new material definitions.",{"type":7,"children":8,"toc":3048},"root",[9,16,23,28,33,38,43,56,62,67,87,92,97,102,107,113,120,145,150,156,161,237,248,254,259,327,346,359,365,370,394,399,623,628,691,705,714,722,728,733,756,762,767,920,926,931,1095,1101,1106,1160,1166,1200,1206,1211,1263,1274,1280,1300,1392,1397,1411,1430,1442,1447,1467,1477,1489,1515,1521,1559,1565,1571,1576,1581,2334,2351,2356,2361,2742,2760,2766,2772,2777,2783,2795,2807,2812,2818,2823,2829,2834,2839,2845,2850,2856,2868,2874,2879,2885,2897,2902,2908,2913,2919,2924,2929,2934,2940,2945,2950,2956,2961,2974,2979,2991,2996,3008,3013,3019,3024,3037,3042],{"type":10,"tag":11,"props":12,"children":13},"element","p",{},[14],{"type":15,"value":5},"text",{"type":10,"tag":17,"props":18,"children":20},"h2",{"id":19},"_problem_statement",[21],{"type":15,"value":22},"Problem Statement",{"type":10,"tag":11,"props":24,"children":25},{},[26],{"type":15,"value":27},"The original promise of monolithic pipelines in Vulkan was to enable\ndevelopers to construct all their state up front, avoiding the driver doing\ndynamic compilation and patching shaders implicitly when recording draw\ncalls, resulting in unexpected hitches.",{"type":10,"tag":11,"props":29,"children":30},{},[31],{"type":15,"value":32},"The reality however is that for many game engines, requiring most of this state up front\neither fails to eliminate hitching,\nor requires precompiling so many state combinations that the size of the\npipeline cache is nearly unmanageable.",{"type":10,"tag":11,"props":34,"children":35},{},[36],{"type":15,"value":37},"Games engines are typically still managing enormous sets of state and\nshader combinations, and this is not a purely technical problem.\nIt is still expected and encouraged that developers will limit the number\nof these, but it doesn’t change the fact that at least in the\nshort-to-mid-term, developers are having real problems that can’t be solved by\ntelling them to reduce the number of pipelines.",{"type":10,"tag":11,"props":39,"children":40},{},[41],{"type":15,"value":42},"This proposal does not aim to fully solve these issues, but instead provides\na key piece of infrastructure required to solve it.\nThe main aim of this proposal is to reduce the cost of loading novel state\nand shader combinations within the rendering loop, thus avoiding hitching.",{"type":10,"tag":11,"props":44,"children":45},{},[46,48,54],{"type":15,"value":47},"An additional constraint to be aware of is that any solution should not\nregress the intended wins from moving to pipeline objects – there should be\nno need for late-compilation or patching that is performed ",{"type":10,"tag":49,"props":50,"children":51},"em",{},[52],{"type":15,"value":53},"implicitly",{"type":15,"value":55}," by\nthe implementation.\nAn expectation of any solution here is that GPU performance may suffer\ndue to sub-optimal linking, and the solution should provide a way to mitigate this.\nExplicit late compilation or patching may be acceptable, but it should be\nsimple to perform, and applications should have control over when and how\nit is done.",{"type":10,"tag":17,"props":57,"children":59},{"id":58},"_solution_space",[60],{"type":15,"value":61},"Solution Space",{"type":10,"tag":11,"props":63,"children":64},{},[65],{"type":15,"value":66},"The following options have been considered:",{"type":10,"tag":68,"props":69,"children":70},"ol",{},[71,77,82],{"type":10,"tag":72,"props":73,"children":74},"li",{},[75],{"type":15,"value":76},"Handle this inside the implementation",{"type":10,"tag":72,"props":78,"children":79},{},[80],{"type":15,"value":81},"Additional dynamic state",{"type":10,"tag":72,"props":83,"children":84},{},[85],{"type":15,"value":86},"Separately compiled pipeline/state blobs",{"type":10,"tag":11,"props":88,"children":89},{},[90],{"type":15,"value":91},"Handling this inside the implementation would potentially solve the problem\nfor the class of apps that have this issue.\nHowever, it takes the choice of fast-linking vs. whole program optimization\naway from the application.\nIt also means fighting with drivers and performance guidelines to hit the\nright usage to trigger it on each implementation.",{"type":10,"tag":11,"props":93,"children":94},{},[95],{"type":15,"value":96},"As for dynamic state, it is likely that the list of state that is fully dynamic\nacross implementations has been all but exhausted at this point.\nWhile vendors can choose to expose additional dynamic state as they see\nfit, solving this problem portably needs a different solution.\nVendors trying to implement state that isn’t dynamic as if it were dynamic\nwill end up doing implicit work at command recording time, leading\ninevitably to implicit compilation or patching of shaders – which is\nundesirable.",{"type":10,"tag":11,"props":98,"children":99},{},[100],{"type":15,"value":101},"Separately compiling chunks of state (e.g. individual shaders, vertex\ninputs, render passes) allows for applications to individually compile\nthese chunks as they show up.\nEnough information should be given in this early step that linking these\nchunks together later has significant cost savings and can be done at record time\nif necessary.\nImplementations could “cheat” at separate chunk compilation by exposing\nthis extension by keeping the create information until the final link\nstep and compiling everything at once then.\nIn general it is desirable for implementations to avoid late compilation, but this\ndoes allow the extension to be implemented more widely (including via a software layer),\nproviding better consistency for developers.\nExplicitly advertising this detail could allow developers to make better\nchoices about how and when these pipelines are compiled.",{"type":10,"tag":11,"props":103,"children":104},{},[105],{"type":15,"value":106},"This proposal focuses on option 3 – providing applications with the ability\nto separately compile state chunks and later link them together.",{"type":10,"tag":17,"props":108,"children":110},{"id":109},"_proposal",[111],{"type":15,"value":112},"Proposal",{"type":10,"tag":114,"props":115,"children":117},"h3",{"id":116},"_prior_art_vk_ext_pipeline_library",[118],{"type":15,"value":119},"Prior Art: VK_EXT_pipeline_library",{"type":10,"tag":11,"props":121,"children":122},{},[123,125,134,136,143],{"type":15,"value":124},"For ",{"type":10,"tag":126,"props":127,"children":131},"a",{"href":128,"rel":129},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_pipeline.html",[130],"nofollow",[132],{"type":15,"value":133},"VK_KHR_ray_tracing_pipeline",{"type":15,"value":135},", pipelines\ncontain a significant number of shaders - making monolithic compilation\nvery slow.\n",{"type":10,"tag":126,"props":137,"children":140},{"href":138,"rel":139},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_library.html",[130],[141],{"type":15,"value":142},"VK_KHR_pipeline_library",{"type":15,"value":144}," allowed\napplications to create partial pipelines (pipeline libraries) containing\nonly a subset of the final shaders.\nThese pipeline libraries can be linked together to form a final executable.\nRay pipelines were relatively straightforward as only shaders are linked,\nand there’s no “state” for ray shaders beyond the shader groups.",{"type":10,"tag":11,"props":146,"children":147},{},[148],{"type":15,"value":149},"Graphics pipelines by comparison contain a lot of static state that needs\nto be separated carefully, retaining any “interface” information.\nHowever, this extension reuses the same underlying mechanism.",{"type":10,"tag":114,"props":151,"children":153},{"id":152},"_features",[154],{"type":15,"value":155},"Features",{"type":10,"tag":11,"props":157,"children":158},{},[159],{"type":15,"value":160},"The following feature is exposed by this extension:",{"type":10,"tag":162,"props":163,"children":168},"pre",{"className":164,"code":165,"language":166,"meta":167,"style":167},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {\n VkStructureType sType;\n void* pNext;\n VkBool32 graphicsPipelineLibrary;\n} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;\n","c","",[169],{"type":10,"tag":170,"props":171,"children":172},"code",{"__ignoreMap":167},[173,196,205,219,228],{"type":10,"tag":174,"props":175,"children":178},"span",{"class":176,"line":177},"line",1,[179,185,190],{"type":10,"tag":174,"props":180,"children":182},{"style":181},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[183],{"type":15,"value":184},"typedef",{"type":10,"tag":174,"props":186,"children":187},{"style":181},[188],{"type":15,"value":189}," struct",{"type":10,"tag":174,"props":191,"children":193},{"style":192},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[194],{"type":15,"value":195}," VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {\n",{"type":10,"tag":174,"props":197,"children":199},{"class":176,"line":198},2,[200],{"type":10,"tag":174,"props":201,"children":202},{"style":192},[203],{"type":15,"value":204}," VkStructureType sType;\n",{"type":10,"tag":174,"props":206,"children":208},{"class":176,"line":207},3,[209,214],{"type":10,"tag":174,"props":210,"children":211},{"style":181},[212],{"type":15,"value":213}," void*",{"type":10,"tag":174,"props":215,"children":216},{"style":192},[217],{"type":15,"value":218}," pNext;\n",{"type":10,"tag":174,"props":220,"children":222},{"class":176,"line":221},4,[223],{"type":10,"tag":174,"props":224,"children":225},{"style":192},[226],{"type":15,"value":227}," VkBool32 graphicsPipelineLibrary;\n",{"type":10,"tag":174,"props":229,"children":231},{"class":176,"line":230},5,[232],{"type":10,"tag":174,"props":233,"children":234},{"style":192},[235],{"type":15,"value":236},"} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;\n",{"type":10,"tag":11,"props":238,"children":239},{},[240,246],{"type":10,"tag":170,"props":241,"children":243},{"className":242},[],[244],{"type":15,"value":245},"graphicsPipelineLibrary",{"type":15,"value":247}," is the core feature enabling this\nfunctionality.",{"type":10,"tag":114,"props":249,"children":251},{"id":250},"_properties",[252],{"type":15,"value":253},"Properties",{"type":10,"tag":11,"props":255,"children":256},{},[257],{"type":15,"value":258},"The following properties are exposed by this extension:",{"type":10,"tag":162,"props":260,"children":262},{"className":164,"code":261,"language":166,"meta":167,"style":167},"typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {\n VkStructure sType;\n void* pNext;\n VkBool32 graphicsPipelineLibraryFastLinking;\n VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;\n} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;\n",[263],{"type":10,"tag":170,"props":264,"children":265},{"__ignoreMap":167},[266,282,290,302,310,318],{"type":10,"tag":174,"props":267,"children":268},{"class":176,"line":177},[269,273,277],{"type":10,"tag":174,"props":270,"children":271},{"style":181},[272],{"type":15,"value":184},{"type":10,"tag":174,"props":274,"children":275},{"style":181},[276],{"type":15,"value":189},{"type":10,"tag":174,"props":278,"children":279},{"style":192},[280],{"type":15,"value":281}," VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {\n",{"type":10,"tag":174,"props":283,"children":284},{"class":176,"line":198},[285],{"type":10,"tag":174,"props":286,"children":287},{"style":192},[288],{"type":15,"value":289}," VkStructure sType;\n",{"type":10,"tag":174,"props":291,"children":292},{"class":176,"line":207},[293,297],{"type":10,"tag":174,"props":294,"children":295},{"style":181},[296],{"type":15,"value":213},{"type":10,"tag":174,"props":298,"children":299},{"style":192},[300],{"type":15,"value":301}," pNext;\n",{"type":10,"tag":174,"props":303,"children":304},{"class":176,"line":221},[305],{"type":10,"tag":174,"props":306,"children":307},{"style":192},[308],{"type":15,"value":309}," VkBool32 graphicsPipelineLibraryFastLinking;\n",{"type":10,"tag":174,"props":311,"children":312},{"class":176,"line":230},[313],{"type":10,"tag":174,"props":314,"children":315},{"style":192},[316],{"type":15,"value":317}," VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;\n",{"type":10,"tag":174,"props":319,"children":321},{"class":176,"line":320},6,[322],{"type":10,"tag":174,"props":323,"children":324},{"style":192},[325],{"type":15,"value":326},"} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;\n",{"type":10,"tag":11,"props":328,"children":329},{},[330,336,338,344],{"type":10,"tag":170,"props":331,"children":333},{"className":332},[],[334],{"type":15,"value":335},"graphicsPipelineLibraryFastLinking",{"type":15,"value":337}," indicates whether the cost of\nlinking pipelines without ",{"type":10,"tag":170,"props":339,"children":341},{"className":340},[],[342],{"type":15,"value":343},"VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT",{"type":15,"value":345},"\nis comparable to recording a command in a command buffer, such that\napplications can link pipelines on demand while recording commands.\nIf this property is not supported, linking should still be cheaper than\na full pipeline compilation.",{"type":10,"tag":11,"props":347,"children":348},{},[349,351,357],{"type":15,"value":350},"If ",{"type":10,"tag":170,"props":352,"children":354},{"className":353},[],[355],{"type":15,"value":356},"graphicsPipelineLibraryIndependentInterpolationDecoration",{"type":15,"value":358}," is not\nsupported, applications must provide matching interpolation decorations in\nboth the last geometry stage and the fragment stage; if it is supported,\nany geometry stage decorations are ignored.",{"type":10,"tag":114,"props":360,"children":362},{"id":361},"_dividing_up_the_graphics_state",[363],{"type":15,"value":364},"Dividing up the graphics state",{"type":10,"tag":11,"props":366,"children":367},{},[368],{"type":15,"value":369},"Four sets of state that have been identified as often recombined by\napplications are:",{"type":10,"tag":371,"props":372,"children":373},"ul",{},[374,379,384,389],{"type":10,"tag":72,"props":375,"children":376},{},[377],{"type":15,"value":378},"Vertex Input Interface",{"type":10,"tag":72,"props":380,"children":381},{},[382],{"type":15,"value":383},"Pre-rasterization",{"type":10,"tag":72,"props":385,"children":386},{},[387],{"type":15,"value":388},"Post-rasterization",{"type":10,"tag":72,"props":390,"children":391},{},[392],{"type":15,"value":393},"Fragment Output Interface (including blend state)",{"type":10,"tag":11,"props":395,"children":396},{},[397],{"type":15,"value":398},"The intent is to allow each of those to be independently compiled as far as\npossible, along with relevant pieces of state that may need to match for\nthe final linked pipeline.",{"type":10,"tag":162,"props":400,"children":402},{"className":164,"code":401,"language":166,"meta":167,"style":167},"typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {\n VkStructureType sType;\n void* pNext;\n VkGraphicsPipelineLibraryFlagsEXT flags;\n} VkGraphicsPipelineLibraryCreateInfoEXT;\n\ntypedef enum VkGraphicsPipelineLibraryFlagBitsEXT {\n VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,\n VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,\n VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,\n VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,\n} VkGraphicsPipelineLibraryFlagBitsEXT;\n\ntypedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;\n",[403],{"type":10,"tag":170,"props":404,"children":405},{"__ignoreMap":167},[406,422,430,442,450,458,467,485,515,541,567,593,602,610],{"type":10,"tag":174,"props":407,"children":408},{"class":176,"line":177},[409,413,417],{"type":10,"tag":174,"props":410,"children":411},{"style":181},[412],{"type":15,"value":184},{"type":10,"tag":174,"props":414,"children":415},{"style":181},[416],{"type":15,"value":189},{"type":10,"tag":174,"props":418,"children":419},{"style":192},[420],{"type":15,"value":421}," VkGraphicsPipelineLibraryCreateInfoEXT {\n",{"type":10,"tag":174,"props":423,"children":424},{"class":176,"line":198},[425],{"type":10,"tag":174,"props":426,"children":427},{"style":192},[428],{"type":15,"value":429}," VkStructureType sType;\n",{"type":10,"tag":174,"props":431,"children":432},{"class":176,"line":207},[433,437],{"type":10,"tag":174,"props":434,"children":435},{"style":181},[436],{"type":15,"value":213},{"type":10,"tag":174,"props":438,"children":439},{"style":192},[440],{"type":15,"value":441}," pNext;\n",{"type":10,"tag":174,"props":443,"children":444},{"class":176,"line":221},[445],{"type":10,"tag":174,"props":446,"children":447},{"style":192},[448],{"type":15,"value":449}," VkGraphicsPipelineLibraryFlagsEXT flags;\n",{"type":10,"tag":174,"props":451,"children":452},{"class":176,"line":230},[453],{"type":10,"tag":174,"props":454,"children":455},{"style":192},[456],{"type":15,"value":457},"} VkGraphicsPipelineLibraryCreateInfoEXT;\n",{"type":10,"tag":174,"props":459,"children":460},{"class":176,"line":320},[461],{"type":10,"tag":174,"props":462,"children":464},{"emptyLinePlaceholder":463},true,[465],{"type":15,"value":466},"\n",{"type":10,"tag":174,"props":468,"children":470},{"class":176,"line":469},7,[471,475,480],{"type":10,"tag":174,"props":472,"children":473},{"style":181},[474],{"type":15,"value":184},{"type":10,"tag":174,"props":476,"children":477},{"style":181},[478],{"type":15,"value":479}," enum",{"type":10,"tag":174,"props":481,"children":482},{"style":192},[483],{"type":15,"value":484}," VkGraphicsPipelineLibraryFlagBitsEXT {\n",{"type":10,"tag":174,"props":486,"children":488},{"class":176,"line":487},8,[489,494,499,504,510],{"type":10,"tag":174,"props":490,"children":491},{"style":192},[492],{"type":15,"value":493}," VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT ",{"type":10,"tag":174,"props":495,"children":496},{"style":181},[497],{"type":15,"value":498},"=",{"type":10,"tag":174,"props":500,"children":501},{"style":181},[502],{"type":15,"value":503}," 0x",{"type":10,"tag":174,"props":505,"children":507},{"style":506},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[508],{"type":15,"value":509},"00000001",{"type":10,"tag":174,"props":511,"children":512},{"style":192},[513],{"type":15,"value":514},",\n",{"type":10,"tag":174,"props":516,"children":518},{"class":176,"line":517},9,[519,524,528,532,537],{"type":10,"tag":174,"props":520,"children":521},{"style":192},[522],{"type":15,"value":523}," VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT ",{"type":10,"tag":174,"props":525,"children":526},{"style":181},[527],{"type":15,"value":498},{"type":10,"tag":174,"props":529,"children":530},{"style":181},[531],{"type":15,"value":503},{"type":10,"tag":174,"props":533,"children":534},{"style":506},[535],{"type":15,"value":536},"00000002",{"type":10,"tag":174,"props":538,"children":539},{"style":192},[540],{"type":15,"value":514},{"type":10,"tag":174,"props":542,"children":544},{"class":176,"line":543},10,[545,550,554,558,563],{"type":10,"tag":174,"props":546,"children":547},{"style":192},[548],{"type":15,"value":549}," VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT ",{"type":10,"tag":174,"props":551,"children":552},{"style":181},[553],{"type":15,"value":498},{"type":10,"tag":174,"props":555,"children":556},{"style":181},[557],{"type":15,"value":503},{"type":10,"tag":174,"props":559,"children":560},{"style":506},[561],{"type":15,"value":562},"00000004",{"type":10,"tag":174,"props":564,"children":565},{"style":192},[566],{"type":15,"value":514},{"type":10,"tag":174,"props":568,"children":570},{"class":176,"line":569},11,[571,576,580,584,589],{"type":10,"tag":174,"props":572,"children":573},{"style":192},[574],{"type":15,"value":575}," VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT ",{"type":10,"tag":174,"props":577,"children":578},{"style":181},[579],{"type":15,"value":498},{"type":10,"tag":174,"props":581,"children":582},{"style":181},[583],{"type":15,"value":503},{"type":10,"tag":174,"props":585,"children":586},{"style":506},[587],{"type":15,"value":588},"00000008",{"type":10,"tag":174,"props":590,"children":591},{"style":192},[592],{"type":15,"value":514},{"type":10,"tag":174,"props":594,"children":596},{"class":176,"line":595},12,[597],{"type":10,"tag":174,"props":598,"children":599},{"style":192},[600],{"type":15,"value":601},"} VkGraphicsPipelineLibraryFlagBitsEXT;\n",{"type":10,"tag":174,"props":603,"children":605},{"class":176,"line":604},13,[606],{"type":10,"tag":174,"props":607,"children":608},{"emptyLinePlaceholder":463},[609],{"type":15,"value":466},{"type":10,"tag":174,"props":611,"children":613},{"class":176,"line":612},14,[614,618],{"type":10,"tag":174,"props":615,"children":616},{"style":181},[617],{"type":15,"value":184},{"type":10,"tag":174,"props":619,"children":620},{"style":192},[621],{"type":15,"value":622}," VkFlags VkGraphicsPipelineLibraryFlagsEXT;\n",{"type":10,"tag":11,"props":624,"children":625},{},[626],{"type":15,"value":627},"Pipeline libraries are created for the parts specified, and any parameters\nrequired to create a library with those parts must be provided.",{"type":10,"tag":11,"props":629,"children":630},{},[631,633,640,642,648,649,655,656,663,665,672,674,681,683,689],{"type":15,"value":632},"For all pipeline libraries\n",{"type":10,"tag":126,"props":634,"children":637},{"href":635,"rel":636},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCache.html",[130],[638],{"type":15,"value":639},"VkPipelineCache",{"type":15,"value":641},", ",{"type":10,"tag":170,"props":643,"children":645},{"className":644},[],[646],{"type":15,"value":647},"basePipelineHandle",{"type":15,"value":514},{"type":10,"tag":170,"props":650,"children":652},{"className":651},[],[653],{"type":15,"value":654},"basePipelineIndex",{"type":15,"value":514},{"type":10,"tag":126,"props":657,"children":660},{"href":658,"rel":659},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackCreateInfo.html",[130],[661],{"type":15,"value":662},"VkPipelineCreationFeedbackCreateInfo",{"type":15,"value":664},",\nand\n",{"type":10,"tag":126,"props":666,"children":669},{"href":667,"rel":668},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCompilerControlCreateInfoAMD.html",[130],[670],{"type":15,"value":671},"VkPipelineCompilerControlCreateInfoAMD",{"type":15,"value":673},"\nparameters are independently consumed and do not need to match between\nlibraries or for any final pipeline.\n",{"type":10,"tag":126,"props":675,"children":678},{"href":676,"rel":677},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlags.html",[130],[679],{"type":15,"value":680},"VkPipelineCreateFlags",{"type":15,"value":682}," are also\nindependent, though ",{"type":10,"tag":170,"props":684,"children":686},{"className":685},[],[687],{"type":15,"value":688},"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR",{"type":15,"value":690}," is required for\nall pipeline libraries.\nOnly dynamic states that affect state consumed by a library are used,\nother dynamic states are ignored and play no part in linked pipelines.\nWhere multiple pipeline libraries are built with the same required piece of\nstate, those states must match exactly when linked together.",{"type":10,"tag":11,"props":692,"children":693},{},[694,696,703],{"type":15,"value":695},"The subset of\n",{"type":10,"tag":126,"props":697,"children":700},{"href":698,"rel":699},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html",[130],[701],{"type":15,"value":702},"VkGraphicsPipelineCreateInfo",{"type":15,"value":704},"\nused to compile each kind of pipeline library is listed in the following\nsections, along with any pitfalls, quirks, or interactions that need\ncalling out.\nAny state not explicitly listed for a particular library part will be\nignored when compiling that part.",{"type":10,"tag":706,"props":707,"children":708},"note",{},[709],{"type":10,"tag":11,"props":710,"children":711},{},[712],{"type":15,"value":713},"There is no change to dynamic state, so if state can be made dynamic, it\ndoesn’t need to be present when compiling a pipeline library part if it is\nspecified as dynamic.",{"type":10,"tag":706,"props":715,"children":716},{},[717],{"type":10,"tag":11,"props":718,"children":719},{},[720],{"type":15,"value":721},"The following section is a complete list only at time of writing - see the\nspecification for a more up-to-date list.",{"type":10,"tag":723,"props":724,"children":726},"h4",{"id":725},"_vertex_input_interface",[727],{"type":15,"value":378},{"type":10,"tag":11,"props":729,"children":730},{},[731],{"type":15,"value":732},"A vertex input interface library is defined by the following state:",{"type":10,"tag":371,"props":734,"children":735},{},[736,746],{"type":10,"tag":72,"props":737,"children":738},{},[739],{"type":10,"tag":126,"props":740,"children":743},{"href":741,"rel":742},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineVertexInputStateCreateInfo.html",[130],[744],{"type":15,"value":745},"VkPipelineVertexInputStateCreateInfo",{"type":10,"tag":72,"props":747,"children":748},{},[749],{"type":10,"tag":126,"props":750,"children":753},{"href":751,"rel":752},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineInputAssemblyStateCreateInfo.html",[130],[754],{"type":15,"value":755},"VkPipelineInputAssemblyStateCreateInfo",{"type":10,"tag":723,"props":757,"children":759},{"id":758},"_pre_rasterization_shaders",[760],{"type":15,"value":761},"Pre-Rasterization Shaders",{"type":10,"tag":11,"props":763,"children":764},{},[765],{"type":15,"value":766},"A pre-rasterization shader library is defined by the following state:",{"type":10,"tag":371,"props":768,"children":769},{},[770,784,820,838,848,860,880,900,910],{"type":10,"tag":72,"props":771,"children":772},{},[773,775,782],{"type":15,"value":774},"A valid ",{"type":10,"tag":126,"props":776,"children":779},{"href":777,"rel":778},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageCreateInfo.html",[130],[780],{"type":15,"value":781},"VkPipelineShaderStageCreateInfo",{"type":15,"value":783},"\nfor each pre-rasterization shader stage used",{"type":10,"tag":72,"props":785,"children":786},{},[787,789,796,798,804,806],{"type":15,"value":788},"Within the ",{"type":10,"tag":126,"props":790,"children":793},{"href":791,"rel":792},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineLayout.html",[130],[794],{"type":15,"value":795},"VkPipelineLayout",{"type":15,"value":797},", all\ndescriptor sets with pre-rasterization shader bindings if\n",{"type":10,"tag":170,"props":799,"children":801},{"className":800},[],[802],{"type":15,"value":803},"VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT",{"type":15,"value":805}," was specified.",{"type":10,"tag":371,"props":807,"children":808},{},[809],{"type":10,"tag":72,"props":810,"children":811},{},[812,813,818],{"type":15,"value":350},{"type":10,"tag":170,"props":814,"children":816},{"className":815},[],[817],{"type":15,"value":803},{"type":15,"value":819}," was not specified,\nthe full pipeline layout must be specified.",{"type":10,"tag":72,"props":821,"children":822},{},[823,830],{"type":10,"tag":126,"props":824,"children":827},{"href":825,"rel":826},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineViewportStateCreateInfo.html",[130],[828],{"type":15,"value":829},"VkPipelineViewportStateCreateInfo",{"type":10,"tag":371,"props":831,"children":832},{},[833],{"type":10,"tag":72,"props":834,"children":835},{},[836],{"type":15,"value":837},"However, all the functionality in that structure is dynamic other than\nthe flags, and this extension allows the structure to be omitted such\nthat it is as-if it was zero-initialized.",{"type":10,"tag":72,"props":839,"children":840},{},[841],{"type":10,"tag":126,"props":842,"children":845},{"href":843,"rel":844},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineRasterizationStateCreateInfo.html",[130],[846],{"type":15,"value":847},"VkPipelineRasterizationStateCreateInfo",{"type":10,"tag":72,"props":849,"children":850},{},[851,858],{"type":10,"tag":126,"props":852,"children":855},{"href":853,"rel":854},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineTessellationStateCreateInfo.html",[130],[856],{"type":15,"value":857},"VkPipelineTessellationStateCreateInfo",{"type":15,"value":859},"\nis required if tessellation stages are included.",{"type":10,"tag":72,"props":861,"children":862},{},[863,870,872,878],{"type":10,"tag":126,"props":864,"children":867},{"href":865,"rel":866},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPass.html",[130],[868],{"type":15,"value":869},"VkRenderPass",{"type":15,"value":871}," and ",{"type":10,"tag":170,"props":873,"children":875},{"className":874},[],[876],{"type":15,"value":877},"subpass",{"type":15,"value":879}," parameter",{"type":10,"tag":72,"props":881,"children":882},{},[883,890,892,898],{"type":10,"tag":126,"props":884,"children":887},{"href":885,"rel":886},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineRenderingCreateInfo.html",[130],[888],{"type":15,"value":889},"VkPipelineRenderingCreateInfo",{"type":15,"value":891}," for the ",{"type":10,"tag":170,"props":893,"children":895},{"className":894},[],[896],{"type":15,"value":897},"viewMask",{"type":15,"value":899}," parameter - formats are ignored.",{"type":10,"tag":72,"props":901,"children":902},{},[903],{"type":10,"tag":126,"props":904,"children":907},{"href":905,"rel":906},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html",[130],[908],{"type":15,"value":909},"VkPipelineDiscardRectangleStateCreateInfoEXT",{"type":10,"tag":72,"props":911,"children":912},{},[913],{"type":10,"tag":126,"props":914,"children":917},{"href":915,"rel":916},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineFragmentShadingRateStateCreateInfoKHR.html",[130],[918],{"type":15,"value":919},"VkPipelineFragmentShadingRateStateCreateInfoKHR",{"type":10,"tag":723,"props":921,"children":923},{"id":922},"_fragment_shader",[924],{"type":15,"value":925},"Fragment Shader",{"type":10,"tag":11,"props":927,"children":928},{},[929],{"type":15,"value":930},"A fragment shader library is defined by the following state:",{"type":10,"tag":371,"props":932,"children":933},{},[934,945,975,1003,1013,1028,1043,1051,1061,1071,1084],{"type":10,"tag":72,"props":935,"children":936},{},[937,938,943],{"type":15,"value":774},{"type":10,"tag":126,"props":939,"children":941},{"href":777,"rel":940},[130],[942],{"type":15,"value":781},{"type":15,"value":944},"\nfor the fragment shader stage.",{"type":10,"tag":72,"props":946,"children":947},{},[948,949,954,956,961,962],{"type":15,"value":788},{"type":10,"tag":126,"props":950,"children":952},{"href":791,"rel":951},[130],[953],{"type":15,"value":795},{"type":15,"value":955},", all\ndescriptor sets with fragment shader bindings if\n",{"type":10,"tag":170,"props":957,"children":959},{"className":958},[],[960],{"type":15,"value":803},{"type":15,"value":805},{"type":10,"tag":371,"props":963,"children":964},{},[965],{"type":10,"tag":72,"props":966,"children":967},{},[968,969,974],{"type":15,"value":350},{"type":10,"tag":170,"props":970,"children":972},{"className":971},[],[973],{"type":15,"value":803},{"type":15,"value":819},{"type":10,"tag":72,"props":976,"children":977},{},[978,985,987,993,995,1001],{"type":10,"tag":126,"props":979,"children":982},{"href":980,"rel":981},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineMultisampleStateCreateInfo.html",[130],[983],{"type":15,"value":984},"VkPipelineMultisampleStateCreateInfo",{"type":15,"value":986},"\nif sample shading is enabled or ",{"type":10,"tag":170,"props":988,"children":990},{"className":989},[],[991],{"type":15,"value":992},"renderpass",{"type":15,"value":994}," is not ",{"type":10,"tag":170,"props":996,"children":998},{"className":997},[],[999],{"type":15,"value":1000},"VK_NULL_HANDLE",{"type":15,"value":1002},".",{"type":10,"tag":72,"props":1004,"children":1005},{},[1006],{"type":10,"tag":126,"props":1007,"children":1010},{"href":1008,"rel":1009},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineDepthStencilStateCreateInfo.html",[130],[1011],{"type":15,"value":1012},"VkPipelineDepthStencilStateCreateInfo",{"type":10,"tag":72,"props":1014,"children":1015},{},[1016,1021,1022,1027],{"type":10,"tag":126,"props":1017,"children":1019},{"href":865,"rel":1018},[130],[1020],{"type":15,"value":869},{"type":15,"value":871},{"type":10,"tag":170,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":15,"value":877},{"type":15,"value":879},{"type":10,"tag":72,"props":1029,"children":1030},{},[1031,1036,1037,1042],{"type":10,"tag":126,"props":1032,"children":1034},{"href":885,"rel":1033},[130],[1035],{"type":15,"value":889},{"type":15,"value":891},{"type":10,"tag":170,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":15,"value":897},{"type":15,"value":899},{"type":10,"tag":72,"props":1044,"children":1045},{},[1046],{"type":10,"tag":126,"props":1047,"children":1049},{"href":915,"rel":1048},[130],[1050],{"type":15,"value":919},{"type":10,"tag":72,"props":1052,"children":1053},{},[1054],{"type":10,"tag":126,"props":1055,"children":1058},{"href":1056,"rel":1057},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineFragmentShadingRateEnumStateCreateInfoNV.html",[130],[1059],{"type":15,"value":1060},"VkPipelineFragmentShadingRateEnumStateCreateInfoNV",{"type":10,"tag":72,"props":1062,"children":1063},{},[1064],{"type":10,"tag":126,"props":1065,"children":1068},{"href":1066,"rel":1067},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineRepresentativeFragmentTestStateCreateInfoNV.html",[130],[1069],{"type":15,"value":1070},"VkPipelineRepresentativeFragmentTestStateCreateInfoNV",{"type":10,"tag":72,"props":1072,"children":1073},{},[1074,1076,1082],{"type":15,"value":1075},"Inclusion/omission of the\n",{"type":10,"tag":170,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":15,"value":1081},"VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR",{"type":15,"value":1083},"\nflag",{"type":10,"tag":72,"props":1085,"children":1086},{},[1087,1088,1094],{"type":15,"value":1075},{"type":10,"tag":170,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":15,"value":1093},"VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT",{"type":15,"value":1083},{"type":10,"tag":723,"props":1096,"children":1098},{"id":1097},"_fragment_output_interface",[1099],{"type":15,"value":1100},"Fragment Output Interface",{"type":10,"tag":11,"props":1102,"children":1103},{},[1104],{"type":15,"value":1105},"A fragment output interface library is defined by the following state:",{"type":10,"tag":371,"props":1107,"children":1108},{},[1109,1119,1127,1142,1150],{"type":10,"tag":72,"props":1110,"children":1111},{},[1112],{"type":10,"tag":126,"props":1113,"children":1116},{"href":1114,"rel":1115},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendStateCreateInfo.html",[130],[1117],{"type":15,"value":1118},"VkPipelineColorBlendStateCreateInfo",{"type":10,"tag":72,"props":1120,"children":1121},{},[1122],{"type":10,"tag":126,"props":1123,"children":1125},{"href":980,"rel":1124},[130],[1126],{"type":15,"value":984},{"type":10,"tag":72,"props":1128,"children":1129},{},[1130,1135,1136,1141],{"type":10,"tag":126,"props":1131,"children":1133},{"href":865,"rel":1132},[130],[1134],{"type":15,"value":869},{"type":15,"value":871},{"type":10,"tag":170,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":15,"value":877},{"type":15,"value":879},{"type":10,"tag":72,"props":1143,"children":1144},{},[1145],{"type":10,"tag":126,"props":1146,"children":1148},{"href":885,"rel":1147},[130],[1149],{"type":15,"value":889},{"type":10,"tag":72,"props":1151,"children":1152},{},[1153],{"type":10,"tag":126,"props":1154,"children":1157},{"href":1155,"rel":1156},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentSampleCountInfoAMD.html",[130],[1158],{"type":15,"value":1159},"VkAttachmentSampleCountInfoAMD/NV",{"type":10,"tag":723,"props":1161,"children":1163},{"id":1162},"_interactions_with_extensions",[1164],{"type":15,"value":1165},"Interactions with extensions",{"type":10,"tag":11,"props":1167,"children":1168},{},[1169,1171,1177,1179,1184,1186,1191,1193,1198],{"type":15,"value":1170},"The required structures for each pipeline subset include anything in the ",{"type":10,"tag":170,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":15,"value":1176},"pNext",{"type":15,"value":1178},"\nchains of the listed structures; any extensions to these structures are thus\nimplicitly accounted for unless otherwise stated.\nincludes anything in the ",{"type":10,"tag":170,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":15,"value":1176},{"type":15,"value":1185}," chains of those structures, so any\nextensions that extend these structures will be automatically accounted for.\nIf any extension allows parts of\n",{"type":10,"tag":126,"props":1187,"children":1189},{"href":698,"rel":1188},[130],[1190],{"type":15,"value":702},{"type":15,"value":1192},"\nto be ignored, by default that part of the state will also be ignored when\nusing graphics pipeline libraries.\nAny extension that extends the base\n",{"type":10,"tag":126,"props":1194,"children":1196},{"href":698,"rel":1195},[130],[1197],{"type":15,"value":702},{"type":15,"value":1199},"\ndirectly, or otherwise differs from the above implicit interactions, will\nneed an explicit interaction.",{"type":10,"tag":114,"props":1201,"children":1203},{"id":1202},"_pipeline_layouts",[1204],{"type":15,"value":1205},"Pipeline Layouts",{"type":10,"tag":11,"props":1207,"children":1208},{},[1209],{"type":15,"value":1210},"To allow descriptor sets to be independently specified for each of the two shader library types, a new pipeline layout create flag is added:",{"type":10,"tag":162,"props":1212,"children":1214},{"className":164,"code":1213,"language":166,"meta":167,"style":167},"typedef enum VkPipelineLayoutCreateFlagBits {\n VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002\n} VkPipelineLayoutCreateFlagBits;\n",[1215],{"type":10,"tag":170,"props":1216,"children":1217},{"__ignoreMap":167},[1218,1234,1255],{"type":10,"tag":174,"props":1219,"children":1220},{"class":176,"line":177},[1221,1225,1229],{"type":10,"tag":174,"props":1222,"children":1223},{"style":181},[1224],{"type":15,"value":184},{"type":10,"tag":174,"props":1226,"children":1227},{"style":181},[1228],{"type":15,"value":479},{"type":10,"tag":174,"props":1230,"children":1231},{"style":192},[1232],{"type":15,"value":1233}," VkPipelineLayoutCreateFlagBits {\n",{"type":10,"tag":174,"props":1235,"children":1236},{"class":176,"line":198},[1237,1242,1246,1250],{"type":10,"tag":174,"props":1238,"children":1239},{"style":192},[1240],{"type":15,"value":1241}," VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT ",{"type":10,"tag":174,"props":1243,"children":1244},{"style":181},[1245],{"type":15,"value":498},{"type":10,"tag":174,"props":1247,"children":1248},{"style":181},[1249],{"type":15,"value":503},{"type":10,"tag":174,"props":1251,"children":1252},{"style":506},[1253],{"type":15,"value":1254},"00000002\n",{"type":10,"tag":174,"props":1256,"children":1257},{"class":176,"line":207},[1258],{"type":10,"tag":174,"props":1259,"children":1260},{"style":192},[1261],{"type":15,"value":1262},"} VkPipelineLayoutCreateFlagBits;\n",{"type":10,"tag":11,"props":1264,"children":1265},{},[1266,1268,1273],{"type":15,"value":1267},"When specified, fragment and pre-rasterization shader pipeline libraries only need to specify the descriptor sets used by that library.\nDescriptor set layouts unused by a library may be set to ",{"type":10,"tag":170,"props":1269,"children":1271},{"className":1270},[],[1272],{"type":15,"value":1000},{"type":15,"value":1002},{"type":10,"tag":114,"props":1275,"children":1277},{"id":1276},"_linking",[1278],{"type":15,"value":1279},"Linking",{"type":10,"tag":11,"props":1281,"children":1282},{},[1283,1285,1292,1294,1299],{"type":15,"value":1284},"Linking is performed by including the existing\n",{"type":10,"tag":126,"props":1286,"children":1289},{"href":1287,"rel":1288},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineLibraryCreateInfoKHR.html",[130],[1290],{"type":15,"value":1291},"VkPipelineLibraryCreateInfoKHR",{"type":15,"value":1293}," structure in the pNext chain of\n",{"type":10,"tag":126,"props":1295,"children":1297},{"href":698,"rel":1296},[130],[1298],{"type":15,"value":702},{"type":15,"value":1002},{"type":10,"tag":162,"props":1301,"children":1303},{"className":164,"code":1302,"language":166,"meta":167,"style":167},"typedef struct VkPipelineLibraryCreateInfoKHR {\n VkStructureType sType;\n const void* pNext;\n uint32_t libraryCount;\n const VkPipeline* pLibraries;\n} VkPipelineLibraryCreateInfoKHR;\n",[1304],{"type":10,"tag":170,"props":1305,"children":1306},{"__ignoreMap":167},[1307,1323,1331,1349,1362,1384],{"type":10,"tag":174,"props":1308,"children":1309},{"class":176,"line":177},[1310,1314,1318],{"type":10,"tag":174,"props":1311,"children":1312},{"style":181},[1313],{"type":15,"value":184},{"type":10,"tag":174,"props":1315,"children":1316},{"style":181},[1317],{"type":15,"value":189},{"type":10,"tag":174,"props":1319,"children":1320},{"style":192},[1321],{"type":15,"value":1322}," VkPipelineLibraryCreateInfoKHR {\n",{"type":10,"tag":174,"props":1324,"children":1325},{"class":176,"line":198},[1326],{"type":10,"tag":174,"props":1327,"children":1328},{"style":192},[1329],{"type":15,"value":1330}," VkStructureType sType;\n",{"type":10,"tag":174,"props":1332,"children":1333},{"class":176,"line":207},[1334,1339,1344],{"type":10,"tag":174,"props":1335,"children":1336},{"style":181},[1337],{"type":15,"value":1338}," const",{"type":10,"tag":174,"props":1340,"children":1341},{"style":181},[1342],{"type":15,"value":1343}," void*",{"type":10,"tag":174,"props":1345,"children":1346},{"style":192},[1347],{"type":15,"value":1348}," pNext;\n",{"type":10,"tag":174,"props":1350,"children":1351},{"class":176,"line":221},[1352,1357],{"type":10,"tag":174,"props":1353,"children":1354},{"style":181},[1355],{"type":15,"value":1356}," uint32_t",{"type":10,"tag":174,"props":1358,"children":1359},{"style":192},[1360],{"type":15,"value":1361}," libraryCount;\n",{"type":10,"tag":174,"props":1363,"children":1364},{"class":176,"line":230},[1365,1369,1374,1379],{"type":10,"tag":174,"props":1366,"children":1367},{"style":181},[1368],{"type":15,"value":1338},{"type":10,"tag":174,"props":1370,"children":1371},{"style":192},[1372],{"type":15,"value":1373}," VkPipeline",{"type":10,"tag":174,"props":1375,"children":1376},{"style":181},[1377],{"type":15,"value":1378},"*",{"type":10,"tag":174,"props":1380,"children":1381},{"style":192},[1382],{"type":15,"value":1383}," pLibraries;\n",{"type":10,"tag":174,"props":1385,"children":1386},{"class":176,"line":320},[1387],{"type":10,"tag":174,"props":1388,"children":1389},{"style":192},[1390],{"type":15,"value":1391},"} VkPipelineLibraryCreateInfoKHR;\n",{"type":10,"tag":11,"props":1393,"children":1394},{},[1395],{"type":15,"value":1396},"Libraries can be linked into other libraries recursively while there are\nstill state blobs that can be linked together.\nE.g an application could create a library for the vertex input interface\nand pre-rasterization shaders separately, then link them into a new\nlibrary.",{"type":10,"tag":11,"props":1398,"children":1399},{},[1400,1402,1409],{"type":15,"value":1401},"A newly created graphics pipeline consists of the parts defined by\nlinked libraries, plus those defined by\n",{"type":10,"tag":126,"props":1403,"children":1406},{"href":1404,"rel":1405},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineLibraryCreateInfoEXT.html",[130],[1407],{"type":15,"value":1408},"VkGraphicsPipelineLibraryCreateInfoEXT",{"type":15,"value":1410},".\nParts specified in the pipeline must not overlap those defined by\nlibraries, and similarly multiple libraries must not provide the same\nparts.\nAny state required by multiple parts must match.",{"type":10,"tag":11,"props":1412,"children":1413},{},[1414,1416,1421,1423,1428],{"type":15,"value":1415},"Graphics pipelines that contain a full set of libraries are executable, may\nnot be used for further linking, and must not have the\n",{"type":10,"tag":170,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":15,"value":688},{"type":15,"value":1422}," set.\nGraphics pipelines that contain only a subset of stages are not executable,\nmay be used for further linking, and must have\n",{"type":10,"tag":170,"props":1424,"children":1426},{"className":1425},[],[1427],{"type":15,"value":688},{"type":15,"value":1429}," set.",{"type":10,"tag":11,"props":1431,"children":1432},{},[1433,1434,1440],{"type":15,"value":350},{"type":10,"tag":170,"props":1435,"children":1437},{"className":1436},[],[1438],{"type":15,"value":1439},"rasterizerDiscardEnable",{"type":15,"value":1441}," is enabled, the complete set of parts does\nnot include fragment shader or fragment output interface\nlibraries.",{"type":10,"tag":11,"props":1443,"children":1444},{},[1445],{"type":15,"value":1446},"Two additional bits control how linking is performed:",{"type":10,"tag":371,"props":1448,"children":1449},{},[1450,1459],{"type":10,"tag":72,"props":1451,"children":1452},{},[1453],{"type":10,"tag":170,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":15,"value":1458},"VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT",{"type":10,"tag":72,"props":1460,"children":1461},{},[1462],{"type":10,"tag":170,"props":1463,"children":1465},{"className":1464},[],[1466],{"type":15,"value":343},{"type":10,"tag":11,"props":1468,"children":1469},{},[1470,1475],{"type":10,"tag":170,"props":1471,"children":1473},{"className":1472},[],[1474],{"type":15,"value":343},{"type":15,"value":1476}," allows applications\nto specify that linking should perform an optimization pass; when this bit\nis specified, additional optimizations will be performed at link time, and\nthe resulting pipeline should perform equivalently to a pipeline created\nmonolithically.",{"type":10,"tag":11,"props":1478,"children":1479},{},[1480,1482,1487],{"type":15,"value":1481},"To perform link time optimizations,\n",{"type":10,"tag":170,"props":1483,"children":1485},{"className":1484},[],[1486],{"type":15,"value":1458},{"type":15,"value":1488}," must be\nspecified on all pipeline libraries that are being linked together.\nImplementations should retain any additional information needed to perform\noptimizations at the final link step when this bit is present.",{"type":10,"tag":11,"props":1490,"children":1491},{},[1492,1494,1499,1501,1506,1508,1513],{"type":15,"value":1493},"If the application created the final linked pipeline with pipeline layouts\nincluding the ",{"type":10,"tag":170,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":15,"value":803},{"type":15,"value":1500}," flag,\nthe final linked pipeline layout is the union of the layouts provided for\nshader stages.\nHowever, in the specific case that a final link is being performed between\nstages and ",{"type":10,"tag":170,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":15,"value":343},{"type":15,"value":1507}," is specified,\nthe application can override the pipeline layout with one that is compatible\nwith that union but does not have the\n",{"type":10,"tag":170,"props":1509,"children":1511},{"className":1510},[],[1512],{"type":15,"value":803},{"type":15,"value":1514}," flag set, allowing a\nmore optimal pipeline layout to be used when generating the final pipeline.",{"type":10,"tag":114,"props":1516,"children":1518},{"id":1517},"_deprecating_shader_modules",[1519],{"type":15,"value":1520},"Deprecating shader modules",{"type":10,"tag":11,"props":1522,"children":1523},{},[1524,1526,1533,1535,1540,1542,1549,1551,1557],{"type":15,"value":1525},"To make single-shader compilation consistent, shader modules will be\ndeprecated by allowing ",{"type":10,"tag":126,"props":1527,"children":1530},{"href":1528,"rel":1529},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderModuleCreateInfo.html",[130],[1531],{"type":15,"value":1532},"VkShaderModuleCreateInfo",{"type":15,"value":1534}," to be chained to\n",{"type":10,"tag":126,"props":1536,"children":1538},{"href":777,"rel":1537},[130],[1539],{"type":15,"value":781},{"type":15,"value":1541},", and allowing the\n",{"type":10,"tag":126,"props":1543,"children":1546},{"href":1544,"rel":1545},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderModule.html",[130],[1547],{"type":15,"value":1548},"VkShaderModule",{"type":15,"value":1550}," to be ",{"type":10,"tag":126,"props":1552,"children":1555},{"href":1553,"rel":1554},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NULL_HANDLE.html",[130],[1556],{"type":15,"value":1000},{"type":15,"value":1558}," in this case.\nApplications can continue to use shader modules as they are not\nbeing removed; but it’s strongly recommended to not use them.\nThe primary reason for this would be to allow bypassing what is in many\ncases a useless copy, along with potential wasted storage if they are\nretained.\nThere have been previous efforts to allow shader modules to be precompiled\nin some way, but this functionality is now being made available in a more\nreliable and portably agreed way, negating the need to focus efforts in\nthis area moving forward.",{"type":10,"tag":17,"props":1560,"children":1562},{"id":1561},"_examples",[1563],{"type":15,"value":1564},"Examples",{"type":10,"tag":114,"props":1566,"children":1568},{"id":1567},"_compilation",[1569],{"type":15,"value":1570},"Compilation",{"type":10,"tag":11,"props":1572,"children":1573},{},[1574],{"type":15,"value":1575},"Initial compilation can now be organized into separate chunks, allowing\nconsistent earlier compilation for applications that have this information\navailable separately, and potentially allows more multithreading\nopportunities for applications that do not.",{"type":10,"tag":11,"props":1577,"children":1578},{},[1579],{"type":15,"value":1580},"Below is an example of the information needed to compile a vertex shader:",{"type":10,"tag":162,"props":1582,"children":1584},{"className":164,"code":1583,"language":166,"meta":167,"style":167},"VkPipeline createVertexShader(\n VkDevice device,\n const uint32_t* pShader,\n size_t shaderSize,\n VkPipelineCache vertexShaderCache,\n VkPipelineLayout layout)\n{\n VkShaderModuleCreateInfo shaderModuleCreateInfo{};\n shaderModuleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;\n shaderModuleCreateInfo.codeSize = shaderSize;\n shaderModuleCreateInfo.pCode = pShader;\n\n VkGraphicsPipelineLibraryCreateInfoEXT libraryInfo{};\n libraryInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;\n libraryInfo.flags = VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT;\n\n VkPipelineShaderStageCreateInfo stageCreateInfo{};\n stageCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;\n stageCreateInfo.pNext = &shaderModuleCreateInfo;\n stageCreateInfo.stage = VK_SHADER_STAGE_VERTEX_BIT;\n stageCreateInfo.pName = \"main\";\n\n VkDynamicState vertexDynamicStates[2] = {\n VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,\n VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT };\n\n VkPipelineDynamicStateCreateInfo dynamicInfo{};\n dynamicInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;\n dynamicInfo.dynamicStateCount = 2;\n dynamicInfo.pDynamicStates = vertexDynamicStates;\n\n VkGraphicsPipelineCreateInfo vertexShaderCreateInfo{};\n vertexShaderCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;\n vertexShaderCreateInfo.pNext = &libraryInfo;\n vertexShaderCreateInfo.flags = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR |\n VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT;\n vertexShaderCreateInfo.stageCount = 1;\n vertexShaderCreateInfo.pStages = &stageCreateInfo;\n vertexShaderCreateInfo.layout = layout;\n vertexShaderCreateInfo.pDynamicState = &dynamicInfo;\n\n VkPipeline vertexShader;\n vkCreateGraphicsPipelines(\n device, vertexShaderCache, 1, &vertexShaderCreateInfo, NULL, &vertexShader);\n\n return vertexShader;\n}\n",[1585],{"type":10,"tag":170,"props":1586,"children":1587},{"__ignoreMap":167},[1588,1607,1625,1646,1663,1680,1698,1706,1714,1731,1748,1765,1772,1780,1797,1815,1823,1832,1850,1873,1891,1915,1923,1961,1970,1979,1987,1996,2014,2036,2054,2062,2071,2089,2111,2134,2143,2165,2187,2205,2227,2235,2244,2257,2303,2311,2325],{"type":10,"tag":174,"props":1589,"children":1590},{"class":176,"line":177},[1591,1596,1602],{"type":10,"tag":174,"props":1592,"children":1593},{"style":192},[1594],{"type":15,"value":1595},"VkPipeline ",{"type":10,"tag":174,"props":1597,"children":1599},{"style":1598},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[1600],{"type":15,"value":1601},"createVertexShader",{"type":10,"tag":174,"props":1603,"children":1604},{"style":192},[1605],{"type":15,"value":1606},"(\n",{"type":10,"tag":174,"props":1608,"children":1609},{"class":176,"line":198},[1610,1615,1621],{"type":10,"tag":174,"props":1611,"children":1612},{"style":192},[1613],{"type":15,"value":1614}," VkDevice ",{"type":10,"tag":174,"props":1616,"children":1618},{"style":1617},"--shiki-default:#953800;--shiki-dark:#FFA657",[1619],{"type":15,"value":1620},"device",{"type":10,"tag":174,"props":1622,"children":1623},{"style":192},[1624],{"type":15,"value":514},{"type":10,"tag":174,"props":1626,"children":1627},{"class":176,"line":207},[1628,1632,1637,1642],{"type":10,"tag":174,"props":1629,"children":1630},{"style":181},[1631],{"type":15,"value":1338},{"type":10,"tag":174,"props":1633,"children":1634},{"style":181},[1635],{"type":15,"value":1636}," uint32_t*",{"type":10,"tag":174,"props":1638,"children":1639},{"style":1617},[1640],{"type":15,"value":1641}," pShader",{"type":10,"tag":174,"props":1643,"children":1644},{"style":192},[1645],{"type":15,"value":514},{"type":10,"tag":174,"props":1647,"children":1648},{"class":176,"line":221},[1649,1654,1659],{"type":10,"tag":174,"props":1650,"children":1651},{"style":181},[1652],{"type":15,"value":1653}," size_t",{"type":10,"tag":174,"props":1655,"children":1656},{"style":1617},[1657],{"type":15,"value":1658}," shaderSize",{"type":10,"tag":174,"props":1660,"children":1661},{"style":192},[1662],{"type":15,"value":514},{"type":10,"tag":174,"props":1664,"children":1665},{"class":176,"line":230},[1666,1671,1676],{"type":10,"tag":174,"props":1667,"children":1668},{"style":192},[1669],{"type":15,"value":1670}," VkPipelineCache ",{"type":10,"tag":174,"props":1672,"children":1673},{"style":1617},[1674],{"type":15,"value":1675},"vertexShaderCache",{"type":10,"tag":174,"props":1677,"children":1678},{"style":192},[1679],{"type":15,"value":514},{"type":10,"tag":174,"props":1681,"children":1682},{"class":176,"line":320},[1683,1688,1693],{"type":10,"tag":174,"props":1684,"children":1685},{"style":192},[1686],{"type":15,"value":1687}," VkPipelineLayout ",{"type":10,"tag":174,"props":1689,"children":1690},{"style":1617},[1691],{"type":15,"value":1692},"layout",{"type":10,"tag":174,"props":1694,"children":1695},{"style":192},[1696],{"type":15,"value":1697},")\n",{"type":10,"tag":174,"props":1699,"children":1700},{"class":176,"line":469},[1701],{"type":10,"tag":174,"props":1702,"children":1703},{"style":192},[1704],{"type":15,"value":1705},"{\n",{"type":10,"tag":174,"props":1707,"children":1708},{"class":176,"line":487},[1709],{"type":10,"tag":174,"props":1710,"children":1711},{"style":192},[1712],{"type":15,"value":1713}," VkShaderModuleCreateInfo shaderModuleCreateInfo{};\n",{"type":10,"tag":174,"props":1715,"children":1716},{"class":176,"line":517},[1717,1722,1726],{"type":10,"tag":174,"props":1718,"children":1719},{"style":192},[1720],{"type":15,"value":1721}," shaderModuleCreateInfo.sType ",{"type":10,"tag":174,"props":1723,"children":1724},{"style":181},[1725],{"type":15,"value":498},{"type":10,"tag":174,"props":1727,"children":1728},{"style":192},[1729],{"type":15,"value":1730}," VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;\n",{"type":10,"tag":174,"props":1732,"children":1733},{"class":176,"line":543},[1734,1739,1743],{"type":10,"tag":174,"props":1735,"children":1736},{"style":192},[1737],{"type":15,"value":1738}," shaderModuleCreateInfo.codeSize ",{"type":10,"tag":174,"props":1740,"children":1741},{"style":181},[1742],{"type":15,"value":498},{"type":10,"tag":174,"props":1744,"children":1745},{"style":192},[1746],{"type":15,"value":1747}," shaderSize;\n",{"type":10,"tag":174,"props":1749,"children":1750},{"class":176,"line":569},[1751,1756,1760],{"type":10,"tag":174,"props":1752,"children":1753},{"style":192},[1754],{"type":15,"value":1755}," shaderModuleCreateInfo.pCode ",{"type":10,"tag":174,"props":1757,"children":1758},{"style":181},[1759],{"type":15,"value":498},{"type":10,"tag":174,"props":1761,"children":1762},{"style":192},[1763],{"type":15,"value":1764}," pShader;\n",{"type":10,"tag":174,"props":1766,"children":1767},{"class":176,"line":595},[1768],{"type":10,"tag":174,"props":1769,"children":1770},{"emptyLinePlaceholder":463},[1771],{"type":15,"value":466},{"type":10,"tag":174,"props":1773,"children":1774},{"class":176,"line":604},[1775],{"type":10,"tag":174,"props":1776,"children":1777},{"style":192},[1778],{"type":15,"value":1779}," VkGraphicsPipelineLibraryCreateInfoEXT libraryInfo{};\n",{"type":10,"tag":174,"props":1781,"children":1782},{"class":176,"line":612},[1783,1788,1792],{"type":10,"tag":174,"props":1784,"children":1785},{"style":192},[1786],{"type":15,"value":1787}," libraryInfo.sType ",{"type":10,"tag":174,"props":1789,"children":1790},{"style":181},[1791],{"type":15,"value":498},{"type":10,"tag":174,"props":1793,"children":1794},{"style":192},[1795],{"type":15,"value":1796}," VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;\n",{"type":10,"tag":174,"props":1798,"children":1800},{"class":176,"line":1799},15,[1801,1806,1810],{"type":10,"tag":174,"props":1802,"children":1803},{"style":192},[1804],{"type":15,"value":1805}," libraryInfo.flags ",{"type":10,"tag":174,"props":1807,"children":1808},{"style":181},[1809],{"type":15,"value":498},{"type":10,"tag":174,"props":1811,"children":1812},{"style":192},[1813],{"type":15,"value":1814}," VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT;\n",{"type":10,"tag":174,"props":1816,"children":1818},{"class":176,"line":1817},16,[1819],{"type":10,"tag":174,"props":1820,"children":1821},{"emptyLinePlaceholder":463},[1822],{"type":15,"value":466},{"type":10,"tag":174,"props":1824,"children":1826},{"class":176,"line":1825},17,[1827],{"type":10,"tag":174,"props":1828,"children":1829},{"style":192},[1830],{"type":15,"value":1831}," VkPipelineShaderStageCreateInfo stageCreateInfo{};\n",{"type":10,"tag":174,"props":1833,"children":1835},{"class":176,"line":1834},18,[1836,1841,1845],{"type":10,"tag":174,"props":1837,"children":1838},{"style":192},[1839],{"type":15,"value":1840}," stageCreateInfo.sType ",{"type":10,"tag":174,"props":1842,"children":1843},{"style":181},[1844],{"type":15,"value":498},{"type":10,"tag":174,"props":1846,"children":1847},{"style":192},[1848],{"type":15,"value":1849}," VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;\n",{"type":10,"tag":174,"props":1851,"children":1853},{"class":176,"line":1852},19,[1854,1859,1863,1868],{"type":10,"tag":174,"props":1855,"children":1856},{"style":192},[1857],{"type":15,"value":1858}," stageCreateInfo.pNext ",{"type":10,"tag":174,"props":1860,"children":1861},{"style":181},[1862],{"type":15,"value":498},{"type":10,"tag":174,"props":1864,"children":1865},{"style":181},[1866],{"type":15,"value":1867}," &",{"type":10,"tag":174,"props":1869,"children":1870},{"style":192},[1871],{"type":15,"value":1872},"shaderModuleCreateInfo;\n",{"type":10,"tag":174,"props":1874,"children":1876},{"class":176,"line":1875},20,[1877,1882,1886],{"type":10,"tag":174,"props":1878,"children":1879},{"style":192},[1880],{"type":15,"value":1881}," stageCreateInfo.stage ",{"type":10,"tag":174,"props":1883,"children":1884},{"style":181},[1885],{"type":15,"value":498},{"type":10,"tag":174,"props":1887,"children":1888},{"style":192},[1889],{"type":15,"value":1890}," VK_SHADER_STAGE_VERTEX_BIT;\n",{"type":10,"tag":174,"props":1892,"children":1894},{"class":176,"line":1893},21,[1895,1900,1904,1910],{"type":10,"tag":174,"props":1896,"children":1897},{"style":192},[1898],{"type":15,"value":1899}," stageCreateInfo.pName ",{"type":10,"tag":174,"props":1901,"children":1902},{"style":181},[1903],{"type":15,"value":498},{"type":10,"tag":174,"props":1905,"children":1907},{"style":1906},"--shiki-default:#0A3069;--shiki-dark:#A5D6FF",[1908],{"type":15,"value":1909}," \"main\"",{"type":10,"tag":174,"props":1911,"children":1912},{"style":192},[1913],{"type":15,"value":1914},";\n",{"type":10,"tag":174,"props":1916,"children":1918},{"class":176,"line":1917},22,[1919],{"type":10,"tag":174,"props":1920,"children":1921},{"emptyLinePlaceholder":463},[1922],{"type":15,"value":466},{"type":10,"tag":174,"props":1924,"children":1926},{"class":176,"line":1925},23,[1927,1932,1937,1942,1947,1952,1956],{"type":10,"tag":174,"props":1928,"children":1929},{"style":192},[1930],{"type":15,"value":1931}," VkDynamicState ",{"type":10,"tag":174,"props":1933,"children":1934},{"style":1617},[1935],{"type":15,"value":1936},"vertexDynamicStates",{"type":10,"tag":174,"props":1938,"children":1939},{"style":192},[1940],{"type":15,"value":1941},"[",{"type":10,"tag":174,"props":1943,"children":1944},{"style":506},[1945],{"type":15,"value":1946},"2",{"type":10,"tag":174,"props":1948,"children":1949},{"style":192},[1950],{"type":15,"value":1951},"] ",{"type":10,"tag":174,"props":1953,"children":1954},{"style":181},[1955],{"type":15,"value":498},{"type":10,"tag":174,"props":1957,"children":1958},{"style":192},[1959],{"type":15,"value":1960}," {\n",{"type":10,"tag":174,"props":1962,"children":1964},{"class":176,"line":1963},24,[1965],{"type":10,"tag":174,"props":1966,"children":1967},{"style":192},[1968],{"type":15,"value":1969}," VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,\n",{"type":10,"tag":174,"props":1971,"children":1973},{"class":176,"line":1972},25,[1974],{"type":10,"tag":174,"props":1975,"children":1976},{"style":192},[1977],{"type":15,"value":1978}," VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT };\n",{"type":10,"tag":174,"props":1980,"children":1982},{"class":176,"line":1981},26,[1983],{"type":10,"tag":174,"props":1984,"children":1985},{"emptyLinePlaceholder":463},[1986],{"type":15,"value":466},{"type":10,"tag":174,"props":1988,"children":1990},{"class":176,"line":1989},27,[1991],{"type":10,"tag":174,"props":1992,"children":1993},{"style":192},[1994],{"type":15,"value":1995}," VkPipelineDynamicStateCreateInfo dynamicInfo{};\n",{"type":10,"tag":174,"props":1997,"children":1999},{"class":176,"line":1998},28,[2000,2005,2009],{"type":10,"tag":174,"props":2001,"children":2002},{"style":192},[2003],{"type":15,"value":2004}," dynamicInfo.sType ",{"type":10,"tag":174,"props":2006,"children":2007},{"style":181},[2008],{"type":15,"value":498},{"type":10,"tag":174,"props":2010,"children":2011},{"style":192},[2012],{"type":15,"value":2013}," VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;\n",{"type":10,"tag":174,"props":2015,"children":2017},{"class":176,"line":2016},29,[2018,2023,2027,2032],{"type":10,"tag":174,"props":2019,"children":2020},{"style":192},[2021],{"type":15,"value":2022}," dynamicInfo.dynamicStateCount ",{"type":10,"tag":174,"props":2024,"children":2025},{"style":181},[2026],{"type":15,"value":498},{"type":10,"tag":174,"props":2028,"children":2029},{"style":506},[2030],{"type":15,"value":2031}," 2",{"type":10,"tag":174,"props":2033,"children":2034},{"style":192},[2035],{"type":15,"value":1914},{"type":10,"tag":174,"props":2037,"children":2039},{"class":176,"line":2038},30,[2040,2045,2049],{"type":10,"tag":174,"props":2041,"children":2042},{"style":192},[2043],{"type":15,"value":2044}," dynamicInfo.pDynamicStates ",{"type":10,"tag":174,"props":2046,"children":2047},{"style":181},[2048],{"type":15,"value":498},{"type":10,"tag":174,"props":2050,"children":2051},{"style":192},[2052],{"type":15,"value":2053}," vertexDynamicStates;\n",{"type":10,"tag":174,"props":2055,"children":2057},{"class":176,"line":2056},31,[2058],{"type":10,"tag":174,"props":2059,"children":2060},{"emptyLinePlaceholder":463},[2061],{"type":15,"value":466},{"type":10,"tag":174,"props":2063,"children":2065},{"class":176,"line":2064},32,[2066],{"type":10,"tag":174,"props":2067,"children":2068},{"style":192},[2069],{"type":15,"value":2070}," VkGraphicsPipelineCreateInfo vertexShaderCreateInfo{};\n",{"type":10,"tag":174,"props":2072,"children":2074},{"class":176,"line":2073},33,[2075,2080,2084],{"type":10,"tag":174,"props":2076,"children":2077},{"style":192},[2078],{"type":15,"value":2079}," vertexShaderCreateInfo.sType ",{"type":10,"tag":174,"props":2081,"children":2082},{"style":181},[2083],{"type":15,"value":498},{"type":10,"tag":174,"props":2085,"children":2086},{"style":192},[2087],{"type":15,"value":2088}," VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;\n",{"type":10,"tag":174,"props":2090,"children":2092},{"class":176,"line":2091},34,[2093,2098,2102,2106],{"type":10,"tag":174,"props":2094,"children":2095},{"style":192},[2096],{"type":15,"value":2097}," vertexShaderCreateInfo.pNext ",{"type":10,"tag":174,"props":2099,"children":2100},{"style":181},[2101],{"type":15,"value":498},{"type":10,"tag":174,"props":2103,"children":2104},{"style":181},[2105],{"type":15,"value":1867},{"type":10,"tag":174,"props":2107,"children":2108},{"style":192},[2109],{"type":15,"value":2110},"libraryInfo;\n",{"type":10,"tag":174,"props":2112,"children":2114},{"class":176,"line":2113},35,[2115,2120,2124,2129],{"type":10,"tag":174,"props":2116,"children":2117},{"style":192},[2118],{"type":15,"value":2119}," vertexShaderCreateInfo.flags ",{"type":10,"tag":174,"props":2121,"children":2122},{"style":181},[2123],{"type":15,"value":498},{"type":10,"tag":174,"props":2125,"children":2126},{"style":192},[2127],{"type":15,"value":2128}," VK_PIPELINE_CREATE_LIBRARY_BIT_KHR ",{"type":10,"tag":174,"props":2130,"children":2131},{"style":181},[2132],{"type":15,"value":2133},"|\n",{"type":10,"tag":174,"props":2135,"children":2137},{"class":176,"line":2136},36,[2138],{"type":10,"tag":174,"props":2139,"children":2140},{"style":192},[2141],{"type":15,"value":2142}," VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT;\n",{"type":10,"tag":174,"props":2144,"children":2146},{"class":176,"line":2145},37,[2147,2152,2156,2161],{"type":10,"tag":174,"props":2148,"children":2149},{"style":192},[2150],{"type":15,"value":2151}," vertexShaderCreateInfo.stageCount ",{"type":10,"tag":174,"props":2153,"children":2154},{"style":181},[2155],{"type":15,"value":498},{"type":10,"tag":174,"props":2157,"children":2158},{"style":506},[2159],{"type":15,"value":2160}," 1",{"type":10,"tag":174,"props":2162,"children":2163},{"style":192},[2164],{"type":15,"value":1914},{"type":10,"tag":174,"props":2166,"children":2168},{"class":176,"line":2167},38,[2169,2174,2178,2182],{"type":10,"tag":174,"props":2170,"children":2171},{"style":192},[2172],{"type":15,"value":2173}," vertexShaderCreateInfo.pStages ",{"type":10,"tag":174,"props":2175,"children":2176},{"style":181},[2177],{"type":15,"value":498},{"type":10,"tag":174,"props":2179,"children":2180},{"style":181},[2181],{"type":15,"value":1867},{"type":10,"tag":174,"props":2183,"children":2184},{"style":192},[2185],{"type":15,"value":2186},"stageCreateInfo;\n",{"type":10,"tag":174,"props":2188,"children":2190},{"class":176,"line":2189},39,[2191,2196,2200],{"type":10,"tag":174,"props":2192,"children":2193},{"style":192},[2194],{"type":15,"value":2195}," vertexShaderCreateInfo.layout ",{"type":10,"tag":174,"props":2197,"children":2198},{"style":181},[2199],{"type":15,"value":498},{"type":10,"tag":174,"props":2201,"children":2202},{"style":192},[2203],{"type":15,"value":2204}," layout;\n",{"type":10,"tag":174,"props":2206,"children":2208},{"class":176,"line":2207},40,[2209,2214,2218,2222],{"type":10,"tag":174,"props":2210,"children":2211},{"style":192},[2212],{"type":15,"value":2213}," vertexShaderCreateInfo.pDynamicState ",{"type":10,"tag":174,"props":2215,"children":2216},{"style":181},[2217],{"type":15,"value":498},{"type":10,"tag":174,"props":2219,"children":2220},{"style":181},[2221],{"type":15,"value":1867},{"type":10,"tag":174,"props":2223,"children":2224},{"style":192},[2225],{"type":15,"value":2226},"dynamicInfo;\n",{"type":10,"tag":174,"props":2228,"children":2230},{"class":176,"line":2229},41,[2231],{"type":10,"tag":174,"props":2232,"children":2233},{"emptyLinePlaceholder":463},[2234],{"type":15,"value":466},{"type":10,"tag":174,"props":2236,"children":2238},{"class":176,"line":2237},42,[2239],{"type":10,"tag":174,"props":2240,"children":2241},{"style":192},[2242],{"type":15,"value":2243}," VkPipeline vertexShader;\n",{"type":10,"tag":174,"props":2245,"children":2247},{"class":176,"line":2246},43,[2248,2253],{"type":10,"tag":174,"props":2249,"children":2250},{"style":1598},[2251],{"type":15,"value":2252}," vkCreateGraphicsPipelines",{"type":10,"tag":174,"props":2254,"children":2255},{"style":192},[2256],{"type":15,"value":1606},{"type":10,"tag":174,"props":2258,"children":2260},{"class":176,"line":2259},44,[2261,2266,2271,2275,2280,2285,2290,2294,2298],{"type":10,"tag":174,"props":2262,"children":2263},{"style":192},[2264],{"type":15,"value":2265}," device, vertexShaderCache, ",{"type":10,"tag":174,"props":2267,"children":2268},{"style":506},[2269],{"type":15,"value":2270},"1",{"type":10,"tag":174,"props":2272,"children":2273},{"style":192},[2274],{"type":15,"value":641},{"type":10,"tag":174,"props":2276,"children":2277},{"style":181},[2278],{"type":15,"value":2279},"&",{"type":10,"tag":174,"props":2281,"children":2282},{"style":192},[2283],{"type":15,"value":2284},"vertexShaderCreateInfo, ",{"type":10,"tag":174,"props":2286,"children":2287},{"style":506},[2288],{"type":15,"value":2289},"NULL",{"type":10,"tag":174,"props":2291,"children":2292},{"style":192},[2293],{"type":15,"value":641},{"type":10,"tag":174,"props":2295,"children":2296},{"style":181},[2297],{"type":15,"value":2279},{"type":10,"tag":174,"props":2299,"children":2300},{"style":192},[2301],{"type":15,"value":2302},"vertexShader);\n",{"type":10,"tag":174,"props":2304,"children":2306},{"class":176,"line":2305},45,[2307],{"type":10,"tag":174,"props":2308,"children":2309},{"emptyLinePlaceholder":463},[2310],{"type":15,"value":466},{"type":10,"tag":174,"props":2312,"children":2314},{"class":176,"line":2313},46,[2315,2320],{"type":10,"tag":174,"props":2316,"children":2317},{"style":181},[2318],{"type":15,"value":2319}," return",{"type":10,"tag":174,"props":2321,"children":2322},{"style":192},[2323],{"type":15,"value":2324}," vertexShader;\n",{"type":10,"tag":174,"props":2326,"children":2328},{"class":176,"line":2327},47,[2329],{"type":10,"tag":174,"props":2330,"children":2331},{"style":192},[2332],{"type":15,"value":2333},"}\n",{"type":10,"tag":706,"props":2335,"children":2336},{},[2337],{"type":10,"tag":11,"props":2338,"children":2339},{},[2340,2342,2349],{"type":15,"value":2341},"This example makes use of\n",{"type":10,"tag":126,"props":2343,"children":2346},{"href":2344,"rel":2345},"https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_dynamic_rendering.html",[130],[2347],{"type":15,"value":2348},"VK_KHR_dynamic_rendering",{"type":15,"value":2350}," to\navoid render pass interactions.\nIf that extension is not available, a render pass object and the\ncorresponding subpass will also need to be provided.",{"type":10,"tag":114,"props":2352,"children":2354},{"id":2353},"_linking_2",[2355],{"type":15,"value":1279},{"type":10,"tag":11,"props":2357,"children":2358},{},[2359],{"type":15,"value":2360},"Linking is relatively straightforward - pipeline libraries in, executable\npipeline out, with the option of optimizing the pipeline or not.",{"type":10,"tag":162,"props":2362,"children":2364},{"className":164,"code":2363,"language":166,"meta":167,"style":167},"VkPipeline linkExecutable(\n VkDevice device,\n VkPipeline* pLibraries,\n size_t libraryCount,\n VkPipelineCache executableCache,\n bool optimized)\n{\n VkPipelineLibraryCreateInfoKHR linkingInfo{};\n linkingInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;\n linkingInfo.libraryCount = libraryCount;\n linkingInfo.pLibraries = pLibraries;\n\n VkGraphicsPipelineCreateInfo executablePipelineCreateInfo{};\n executablePipelineCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;\n executablePipelineCreateInfo.pNext = &linkingInfo;\n executablePipelineCreateInfo.flags |= optimized ?\n VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT : 0;\n\n VkPipeline executable = VK_NULL_HANDLE;\n\n vkCreateGraphicsPipelines(\n device, executableCache, 1, & executablePipelineCreateInfo, NULL, &executable);\n\n return executable;\n}\n",[2365],{"type":10,"tag":170,"props":2366,"children":2367},{"__ignoreMap":167},[2368,2384,2399,2420,2436,2452,2469,2476,2484,2501,2518,2535,2542,2550,2566,2587,2610,2632,2639,2656,2663,2674,2716,2723,2735],{"type":10,"tag":174,"props":2369,"children":2370},{"class":176,"line":177},[2371,2375,2380],{"type":10,"tag":174,"props":2372,"children":2373},{"style":192},[2374],{"type":15,"value":1595},{"type":10,"tag":174,"props":2376,"children":2377},{"style":1598},[2378],{"type":15,"value":2379},"linkExecutable",{"type":10,"tag":174,"props":2381,"children":2382},{"style":192},[2383],{"type":15,"value":1606},{"type":10,"tag":174,"props":2385,"children":2386},{"class":176,"line":198},[2387,2391,2395],{"type":10,"tag":174,"props":2388,"children":2389},{"style":192},[2390],{"type":15,"value":1614},{"type":10,"tag":174,"props":2392,"children":2393},{"style":1617},[2394],{"type":15,"value":1620},{"type":10,"tag":174,"props":2396,"children":2397},{"style":192},[2398],{"type":15,"value":514},{"type":10,"tag":174,"props":2400,"children":2401},{"class":176,"line":207},[2402,2407,2411,2416],{"type":10,"tag":174,"props":2403,"children":2404},{"style":192},[2405],{"type":15,"value":2406}," VkPipeline",{"type":10,"tag":174,"props":2408,"children":2409},{"style":181},[2410],{"type":15,"value":1378},{"type":10,"tag":174,"props":2412,"children":2413},{"style":1617},[2414],{"type":15,"value":2415}," pLibraries",{"type":10,"tag":174,"props":2417,"children":2418},{"style":192},[2419],{"type":15,"value":514},{"type":10,"tag":174,"props":2421,"children":2422},{"class":176,"line":221},[2423,2427,2432],{"type":10,"tag":174,"props":2424,"children":2425},{"style":181},[2426],{"type":15,"value":1653},{"type":10,"tag":174,"props":2428,"children":2429},{"style":1617},[2430],{"type":15,"value":2431}," libraryCount",{"type":10,"tag":174,"props":2433,"children":2434},{"style":192},[2435],{"type":15,"value":514},{"type":10,"tag":174,"props":2437,"children":2438},{"class":176,"line":230},[2439,2443,2448],{"type":10,"tag":174,"props":2440,"children":2441},{"style":192},[2442],{"type":15,"value":1670},{"type":10,"tag":174,"props":2444,"children":2445},{"style":1617},[2446],{"type":15,"value":2447},"executableCache",{"type":10,"tag":174,"props":2449,"children":2450},{"style":192},[2451],{"type":15,"value":514},{"type":10,"tag":174,"props":2453,"children":2454},{"class":176,"line":320},[2455,2460,2465],{"type":10,"tag":174,"props":2456,"children":2457},{"style":181},[2458],{"type":15,"value":2459}," bool",{"type":10,"tag":174,"props":2461,"children":2462},{"style":1617},[2463],{"type":15,"value":2464}," optimized",{"type":10,"tag":174,"props":2466,"children":2467},{"style":192},[2468],{"type":15,"value":1697},{"type":10,"tag":174,"props":2470,"children":2471},{"class":176,"line":469},[2472],{"type":10,"tag":174,"props":2473,"children":2474},{"style":192},[2475],{"type":15,"value":1705},{"type":10,"tag":174,"props":2477,"children":2478},{"class":176,"line":487},[2479],{"type":10,"tag":174,"props":2480,"children":2481},{"style":192},[2482],{"type":15,"value":2483}," VkPipelineLibraryCreateInfoKHR linkingInfo{};\n",{"type":10,"tag":174,"props":2485,"children":2486},{"class":176,"line":517},[2487,2492,2496],{"type":10,"tag":174,"props":2488,"children":2489},{"style":192},[2490],{"type":15,"value":2491}," linkingInfo.sType ",{"type":10,"tag":174,"props":2493,"children":2494},{"style":181},[2495],{"type":15,"value":498},{"type":10,"tag":174,"props":2497,"children":2498},{"style":192},[2499],{"type":15,"value":2500}," VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;\n",{"type":10,"tag":174,"props":2502,"children":2503},{"class":176,"line":543},[2504,2509,2513],{"type":10,"tag":174,"props":2505,"children":2506},{"style":192},[2507],{"type":15,"value":2508}," linkingInfo.libraryCount ",{"type":10,"tag":174,"props":2510,"children":2511},{"style":181},[2512],{"type":15,"value":498},{"type":10,"tag":174,"props":2514,"children":2515},{"style":192},[2516],{"type":15,"value":2517}," libraryCount;\n",{"type":10,"tag":174,"props":2519,"children":2520},{"class":176,"line":569},[2521,2526,2530],{"type":10,"tag":174,"props":2522,"children":2523},{"style":192},[2524],{"type":15,"value":2525}," linkingInfo.pLibraries ",{"type":10,"tag":174,"props":2527,"children":2528},{"style":181},[2529],{"type":15,"value":498},{"type":10,"tag":174,"props":2531,"children":2532},{"style":192},[2533],{"type":15,"value":2534}," pLibraries;\n",{"type":10,"tag":174,"props":2536,"children":2537},{"class":176,"line":595},[2538],{"type":10,"tag":174,"props":2539,"children":2540},{"emptyLinePlaceholder":463},[2541],{"type":15,"value":466},{"type":10,"tag":174,"props":2543,"children":2544},{"class":176,"line":604},[2545],{"type":10,"tag":174,"props":2546,"children":2547},{"style":192},[2548],{"type":15,"value":2549}," VkGraphicsPipelineCreateInfo executablePipelineCreateInfo{};\n",{"type":10,"tag":174,"props":2551,"children":2552},{"class":176,"line":612},[2553,2558,2562],{"type":10,"tag":174,"props":2554,"children":2555},{"style":192},[2556],{"type":15,"value":2557}," executablePipelineCreateInfo.sType ",{"type":10,"tag":174,"props":2559,"children":2560},{"style":181},[2561],{"type":15,"value":498},{"type":10,"tag":174,"props":2563,"children":2564},{"style":192},[2565],{"type":15,"value":2088},{"type":10,"tag":174,"props":2567,"children":2568},{"class":176,"line":1799},[2569,2574,2578,2582],{"type":10,"tag":174,"props":2570,"children":2571},{"style":192},[2572],{"type":15,"value":2573}," executablePipelineCreateInfo.pNext ",{"type":10,"tag":174,"props":2575,"children":2576},{"style":181},[2577],{"type":15,"value":498},{"type":10,"tag":174,"props":2579,"children":2580},{"style":181},[2581],{"type":15,"value":1867},{"type":10,"tag":174,"props":2583,"children":2584},{"style":192},[2585],{"type":15,"value":2586},"linkingInfo;\n",{"type":10,"tag":174,"props":2588,"children":2589},{"class":176,"line":1817},[2590,2595,2600,2605],{"type":10,"tag":174,"props":2591,"children":2592},{"style":192},[2593],{"type":15,"value":2594}," executablePipelineCreateInfo.flags ",{"type":10,"tag":174,"props":2596,"children":2597},{"style":181},[2598],{"type":15,"value":2599},"|=",{"type":10,"tag":174,"props":2601,"children":2602},{"style":192},[2603],{"type":15,"value":2604}," optimized ",{"type":10,"tag":174,"props":2606,"children":2607},{"style":181},[2608],{"type":15,"value":2609},"?\n",{"type":10,"tag":174,"props":2611,"children":2612},{"class":176,"line":1825},[2613,2618,2623,2628],{"type":10,"tag":174,"props":2614,"children":2615},{"style":192},[2616],{"type":15,"value":2617}," VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT ",{"type":10,"tag":174,"props":2619,"children":2620},{"style":181},[2621],{"type":15,"value":2622},":",{"type":10,"tag":174,"props":2624,"children":2625},{"style":506},[2626],{"type":15,"value":2627}," 0",{"type":10,"tag":174,"props":2629,"children":2630},{"style":192},[2631],{"type":15,"value":1914},{"type":10,"tag":174,"props":2633,"children":2634},{"class":176,"line":1834},[2635],{"type":10,"tag":174,"props":2636,"children":2637},{"emptyLinePlaceholder":463},[2638],{"type":15,"value":466},{"type":10,"tag":174,"props":2640,"children":2641},{"class":176,"line":1852},[2642,2647,2651],{"type":10,"tag":174,"props":2643,"children":2644},{"style":192},[2645],{"type":15,"value":2646}," VkPipeline executable ",{"type":10,"tag":174,"props":2648,"children":2649},{"style":181},[2650],{"type":15,"value":498},{"type":10,"tag":174,"props":2652,"children":2653},{"style":192},[2654],{"type":15,"value":2655}," VK_NULL_HANDLE;\n",{"type":10,"tag":174,"props":2657,"children":2658},{"class":176,"line":1875},[2659],{"type":10,"tag":174,"props":2660,"children":2661},{"emptyLinePlaceholder":463},[2662],{"type":15,"value":466},{"type":10,"tag":174,"props":2664,"children":2665},{"class":176,"line":1893},[2666,2670],{"type":10,"tag":174,"props":2667,"children":2668},{"style":1598},[2669],{"type":15,"value":2252},{"type":10,"tag":174,"props":2671,"children":2672},{"style":192},[2673],{"type":15,"value":1606},{"type":10,"tag":174,"props":2675,"children":2676},{"class":176,"line":1917},[2677,2682,2686,2690,2694,2699,2703,2707,2711],{"type":10,"tag":174,"props":2678,"children":2679},{"style":192},[2680],{"type":15,"value":2681}," device, executableCache, ",{"type":10,"tag":174,"props":2683,"children":2684},{"style":506},[2685],{"type":15,"value":2270},{"type":10,"tag":174,"props":2687,"children":2688},{"style":192},[2689],{"type":15,"value":641},{"type":10,"tag":174,"props":2691,"children":2692},{"style":181},[2693],{"type":15,"value":2279},{"type":10,"tag":174,"props":2695,"children":2696},{"style":192},[2697],{"type":15,"value":2698}," executablePipelineCreateInfo, ",{"type":10,"tag":174,"props":2700,"children":2701},{"style":506},[2702],{"type":15,"value":2289},{"type":10,"tag":174,"props":2704,"children":2705},{"style":192},[2706],{"type":15,"value":641},{"type":10,"tag":174,"props":2708,"children":2709},{"style":181},[2710],{"type":15,"value":2279},{"type":10,"tag":174,"props":2712,"children":2713},{"style":192},[2714],{"type":15,"value":2715},"executable);\n",{"type":10,"tag":174,"props":2717,"children":2718},{"class":176,"line":1925},[2719],{"type":10,"tag":174,"props":2720,"children":2721},{"emptyLinePlaceholder":463},[2722],{"type":15,"value":466},{"type":10,"tag":174,"props":2724,"children":2725},{"class":176,"line":1963},[2726,2730],{"type":10,"tag":174,"props":2727,"children":2728},{"style":181},[2729],{"type":15,"value":2319},{"type":10,"tag":174,"props":2731,"children":2732},{"style":192},[2733],{"type":15,"value":2734}," executable;\n",{"type":10,"tag":174,"props":2736,"children":2737},{"class":176,"line":1972},[2738],{"type":10,"tag":174,"props":2739,"children":2740},{"style":192},[2741],{"type":15,"value":2333},{"type":10,"tag":706,"props":2743,"children":2744},{},[2745,2750,2755],{"type":10,"tag":11,"props":2746,"children":2747},{},[2748],{"type":15,"value":2749},"The behavior of the pipeline cache in this scenario is subject to specific\nbehavior depending on implementation properties and whether fast or\noptimized linking is being used.\nThis is spelled out in the spec, but summarized briefly again here:",{"type":10,"tag":11,"props":2751,"children":2752},{},[2753],{"type":15,"value":2754},"If fast linking is being performed, the implementation should only lookup\ninto the cache if it is expected that will be faster than linking.\nIf linking is faster, then the cache lookup and any writes to the cache should be skipped.\nThe aim of this is to ensure that fast linking is always as fast as\npossible.\nIf a cache lookup is performed, optimized pipelines in the cache should be\nreturned preferentially to any fast-linked pipelines.",{"type":10,"tag":11,"props":2756,"children":2757},{},[2758],{"type":15,"value":2759},"If optimized linking is being performed, the implementation should not\ngenerate a hit on a suboptimal fast linked pipeline, instead creating a new\npipeline and corresponding cache entry.",{"type":10,"tag":17,"props":2761,"children":2763},{"id":2762},"_issues",[2764],{"type":15,"value":2765},"Issues",{"type":10,"tag":114,"props":2767,"children":2769},{"id":2768},"_resolved_should_the_pre_rasterization_stages_be_separated",[2770],{"type":15,"value":2771},"RESOLVED: Should the pre-rasterization stages be separated?",{"type":10,"tag":11,"props":2773,"children":2774},{},[2775],{"type":15,"value":2776},"While splitting the geometry stages may be possible, it’s a significant\namount of additional work for many vendors, the advantage for most\ndevelopers is unclear, and it would be difficult to make some of the\nguarantees in this extension.",{"type":10,"tag":114,"props":2778,"children":2780},{"id":2779},"_resolved_what_is_the_expected_usage_model",[2781],{"type":15,"value":2782},"RESOLVED: What is the expected usage model?",{"type":10,"tag":11,"props":2784,"children":2785},{},[2786,2788,2793],{"type":15,"value":2787},"When a novel shader/stage combination is seen that requires compilation, it\nshould be compiled into a separate pipeline library as early as possible;\nthis should be possible alongside usual material/object loading\n(e.g. texture/mesh streaming).\nIf an application has its own material cache, the library should be cached\nthere.\nApplications should still use pipeline caches to amortize compilation\nacross similar stage blobs but should avoid mixing different stage types in\nthe same ",{"type":10,"tag":126,"props":2789,"children":2791},{"href":635,"rel":2790},[130],[2792],{"type":15,"value":639},{"type":15,"value":2794},", to avoid unnecessary lookup overhead.",{"type":10,"tag":11,"props":2796,"children":2797},{},[2798,2800,2805],{"type":15,"value":2799},"Basic linking should then be done as early as the application is able.\nApplications should ideally store/cache this pipeline with relevant objects.\nUsing a ",{"type":10,"tag":126,"props":2801,"children":2803},{"href":635,"rel":2802},[130],[2804],{"type":15,"value":639},{"type":15,"value":2806}," for this suboptimal pipeline is recommended;\nimplementations where this would provide no benefit should ignore the cache\nlookup request for fast linking.",{"type":10,"tag":11,"props":2808,"children":2809},{},[2810],{"type":15,"value":2811},"Once a basic link is done, the application should schedule a task for a\nseparate thread to create an optimized pipeline.\nThis should use pipeline caches in the same manner as existing monolithic\ncompilation, sharing this cache with fast-linked pipelines.\nImplementations should prefer returning optimized pipelines from these\ncaches.\nApplications should switch to the optimized pipeline as soon as they are\navailable.",{"type":10,"tag":114,"props":2813,"children":2815},{"id":2814},"_resolved_why_is_there_suggested_behavior_for_the_implementation_of_pipeline_caches_instead_of_letting_the_caching_be_driven_by_the_application",[2816],{"type":15,"value":2817},"RESOLVED: Why is there suggested behavior for the implementation of pipeline caches instead of letting the caching be driven by the application?",{"type":10,"tag":11,"props":2819,"children":2820},{},[2821],{"type":15,"value":2822},"Work to change the way pipelines are cached is ongoing; to avoid scope creep\nthe minimum set of features required to ensure things worked were added.\nA future extension may change how a lot of this works, so it was undesirable to\ndesign something that would be thrown away later.",{"type":10,"tag":114,"props":2824,"children":2826},{"id":2825},"_resolved_what_are_the_downsides_to_using_unoptimized_pipelines",[2827],{"type":15,"value":2828},"RESOLVED: What are the downsides to using unoptimized pipelines?",{"type":10,"tag":11,"props":2830,"children":2831},{},[2832],{"type":15,"value":2833},"A fast-linked pipeline may have a significant device performance penalty\ncompared to the final pipeline on some implementations.\nSome vendors may have a negligible performance penalty; others will have\nperformance penalties differing based on which shader stages are compiled\ntogether.\nA rough estimate given by vendors is that it could be as bad as a 50%\npenalty in the general case, with outliers performing even worse.",{"type":10,"tag":11,"props":2835,"children":2836},{},[2837],{"type":15,"value":2838},"As general advice, applications should be aiming to keep the amount of work\nin each frame performed by unoptimized pipelines relatively low (\u003C10%);\nprofiling may be necessary to identify problematic areas.\nDevelopers are strongly encouraged create optimized pipelines as soon as\nthey are able to replace the linked pipeline.\nRelying completely on fast linked pipelines could result in unacceptable\nperformance degradation on some implementations.",{"type":10,"tag":114,"props":2840,"children":2842},{"id":2841},"_resolved_are_there_any_interactions_with_specialization_constants",[2843],{"type":15,"value":2844},"RESOLVED: Are there any interactions with specialization constants?",{"type":10,"tag":11,"props":2846,"children":2847},{},[2848],{"type":15,"value":2849},"No. This extension doesn’t change how specialization constants work – they\nwork as they do for existing pipelines.\nIf they’re provided, implementations are free to specialize the pipeline or\nnot, and cache pipelines that are specialized, unspecialized, or both.\nSpecialization constants must be provided alongside the shader stages using\nthem and cannot be provided at link time.\nThis may be something we want to address in a future extension.",{"type":10,"tag":114,"props":2851,"children":2853},{"id":2852},"_resolved_are_there_any_interface_matching_requirements_that_will_need_to_change_like_ssos_in_opengles",[2854],{"type":15,"value":2855},"RESOLVED: Are there any interface matching requirements that will need to change, like SSOs in OpenGL/ES?",{"type":10,"tag":11,"props":2857,"children":2858},{},[2859,2861,2866],{"type":15,"value":2860},"Some implementations require the interpolation decorations in the last\ngeometry shader stage if pipeline libraries are used, and this is\nadvertised by the\n",{"type":10,"tag":170,"props":2862,"children":2864},{"className":2863},[],[2865],{"type":15,"value":356},{"type":15,"value":2867}," property.\nIt is expected that these implementations are serving markets where OpenGL\nES is dominant, where this requirement was never dropped for separate\nshader objects, unlike OpenGL.",{"type":10,"tag":114,"props":2869,"children":2871},{"id":2870},"_resolved_should_we_allow_passing_spir_v_directly_into_pipeline_creation",[2872],{"type":15,"value":2873},"RESOLVED: Should we allow passing SPIR-V directly into pipeline creation?",{"type":10,"tag":11,"props":2875,"children":2876},{},[2877],{"type":15,"value":2878},"Yes. This simplifies compilation, avoids an unnecessary copy, and brings developers and implementations onto the same page.",{"type":10,"tag":114,"props":2880,"children":2882},{"id":2881},"_resolved_should_we_advertise_a_property_for_free_link_vs_fast_link",[2883],{"type":15,"value":2884},"RESOLVED: Should we advertise a property for “free link” vs. “fast link”?",{"type":10,"tag":11,"props":2886,"children":2887},{},[2888,2890,2895],{"type":15,"value":2889},"Yes, as developers may want to adjust the way they manage pipelines.\nIf linking is more or less free, the expectation is that applications may\nlink pipelines on demand when recording draw calls.\nIf linking is going to take more time, they may try to more aggressively\npre-cache pipelines.\nThis has been added as the ",{"type":10,"tag":170,"props":2891,"children":2893},{"className":2892},[],[2894],{"type":15,"value":335},{"type":15,"value":2896},"\nproperty.",{"type":10,"tag":11,"props":2898,"children":2899},{},[2900],{"type":15,"value":2901},"Implementation and developer guidance is that if this feature bit is\nadvertised, applications should be able to link on demand, so the cost of\nlinking should be comparable to recording commands in a command buffer.",{"type":10,"tag":114,"props":2903,"children":2905},{"id":2904},"_resolved_does_anyone_need_the_depthstencil_format_to_be_provided_with_the_depth_bias_state",[2906],{"type":15,"value":2907},"RESOLVED: Does anyone need the depth/stencil format to be provided with the depth bias state?",{"type":10,"tag":11,"props":2909,"children":2910},{},[2911],{"type":15,"value":2912},"The depth format affects how depth bias is applied, but these are currently provided in separate parts of the pipeline.\nNobody has claimed this to be a problem.",{"type":10,"tag":114,"props":2914,"children":2916},{"id":2915},"_resolved_with_the_recommendation_to_create_an_optimized_pipeline_as_well_as_a_fast_linked_pipeline_will_this_lead_to_additional_memory_consumption",[2917],{"type":15,"value":2918},"RESOLVED: With the recommendation to create an optimized pipeline as well as a fast linked pipeline, will this lead to additional memory consumption?",{"type":10,"tag":11,"props":2920,"children":2921},{},[2922],{"type":15,"value":2923},"Caches containing pipeline libraries will necessarily increase the total memory consumption of compiled pipelines, as applications will generally try to keep these available while pipeline could be streamed in/out.\nImplementations may be able to use data in the library caches for the final pipelines in some circumstances, which could help mitigate it - but this is not guaranteed and will vary by vendor.",{"type":10,"tag":11,"props":2925,"children":2926},{},[2927],{"type":15,"value":2928},"Fast-linked pipelines should not contribute to the total memory consumption if applications destroy the fast-linked pipeline once an optimized version exists.",{"type":10,"tag":11,"props":2930,"children":2931},{},[2932],{"type":15,"value":2933},"Improvements to pipeline caches allowing selective eviction of individual caches could help with memory management here, but as this intersects with other known pipeline cache problems, this should be dealt with in a separate extension.",{"type":10,"tag":114,"props":2935,"children":2937},{"id":2936},"_resolved_should_the_link_time_optimization_bits_apply_to_other_pipeline_libraries_e_g_ray_tracing",[2938],{"type":15,"value":2939},"RESOLVED: Should the link time optimization bits apply to other pipeline libraries (e.g. ray tracing)?",{"type":10,"tag":11,"props":2941,"children":2942},{},[2943],{"type":15,"value":2944},"Yes, but it will not necessarily be subject to the same quality guarantees. Ray tracing pipeline libraries were not designed with this directly in mind, so while implementations should make use of these bits as best they can, it is not possible to make the same quality guarantees as for graphics pipelines.",{"type":10,"tag":11,"props":2946,"children":2947},{},[2948],{"type":15,"value":2949},"Any future extensions using the pipeline library interface should be aware of these interactions and try to follow the intent of these bits as much as possible.",{"type":10,"tag":114,"props":2951,"children":2953},{"id":2952},"_resolved_does_the_shader_module_deprecation_apply_to_other_pipelines",[2954],{"type":15,"value":2955},"RESOLVED: Does the shader module deprecation apply to other pipelines?",{"type":10,"tag":11,"props":2957,"children":2958},{},[2959],{"type":15,"value":2960},"Yes.",{"type":10,"tag":114,"props":2962,"children":2964},{"id":2963},"_resolved_should_vkpipelinedepthstencilstatecreateinfo_be_part_of_the_fragment_shader_state_or_fragment_output_interface_state",[2965,2967,2972],{"type":15,"value":2966},"RESOLVED: Should ",{"type":10,"tag":170,"props":2968,"children":2970},{"className":2969},[],[2971],{"type":15,"value":1012},{"type":15,"value":2973}," be part of the fragment shader state or fragment output interface state?",{"type":10,"tag":11,"props":2975,"children":2976},{},[2977],{"type":15,"value":2978},"Some vendors will make use of this information if it is available and would rather not see it move - however notably all of this state can be made dynamic. Applications wanting to avoid setting this state with the fragment shader library should use this dynamic state.",{"type":10,"tag":114,"props":2980,"children":2982},{"id":2981},"_resolved_should_vkpipelinemultisamplestatecreateinfo_be_required_even_when_the_fragment_shader_does_not_make_use_of_multisampling_shader_features",[2983,2984,2989],{"type":15,"value":2966},{"type":10,"tag":170,"props":2985,"children":2987},{"className":2986},[],[2988],{"type":15,"value":984},{"type":15,"value":2990}," be required, even when the fragment shader does not make use of multisampling shader features?",{"type":10,"tag":11,"props":2992,"children":2993},{},[2994],{"type":15,"value":2995},"The fragment shader library only needs this information when sample shading is enabled.",{"type":10,"tag":114,"props":2997,"children":2999},{"id":2998},"_resolved_should_vkpipelinemultisamplestatecreateinfo_be_part_of_the_fragment_output_interface_instead",[3000,3001,3006],{"type":15,"value":2966},{"type":10,"tag":170,"props":3002,"children":3004},{"className":3003},[],[3005],{"type":15,"value":984},{"type":15,"value":3007}," be part of the fragment output interface instead?",{"type":10,"tag":11,"props":3009,"children":3010},{},[3011],{"type":15,"value":3012},"Moving it to the output interface removes the need to create multiple fragment shader libraries for different MSAA rates, which some applications do as a part of dynamic performance tuning.\nThis only works when used in conjunction with dynamic rendering; when render pass objects are used, the sample rate will effectively be sourced from any subpass attachments due to validation constraints.\nThis could be made to work with subpasses with no attachments, but the additional complexity of adding that path had no clear benefit, so is disallowed.",{"type":10,"tag":114,"props":3014,"children":3016},{"id":3015},"_resolved_should_we_add_an_explicit_result_code_to_pipeline_creation_to_indicate_that_a_pipeline_compiled_with_link_time_optimization_has_been_returned",[3017],{"type":15,"value":3018},"RESOLVED: Should we add an explicit result code to pipeline creation to indicate that a pipeline compiled with link time optimization has been returned?",{"type":10,"tag":11,"props":3020,"children":3021},{},[3022],{"type":15,"value":3023},"No, as the complexity of handling this does not clearly translate to significant application wins.",{"type":10,"tag":114,"props":3025,"children":3027},{"id":3026},"_resolved_can_pipeline_caches_return_optimized_pipelines_without_the_vk_pipeline_layout_create_independent_sets_bit_ext_set",[3028,3030,3035],{"type":15,"value":3029},"RESOLVED: Can pipeline caches return optimized pipelines without the ",{"type":10,"tag":170,"props":3031,"children":3033},{"className":3032},[],[3034],{"type":15,"value":803},{"type":15,"value":3036}," set?",{"type":10,"tag":11,"props":3038,"children":3039},{},[3040],{"type":15,"value":3041},"Not unconditionally - if an implementation does not do anything with that flag then yes, but there is a functional difference then it cannot. I.e. the same as other pipeline state.",{"type":10,"tag":3043,"props":3044,"children":3045},"style",{},[3046],{"type":15,"value":3047},"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":167,"searchDepth":198,"depth":198,"links":3049},[3050,3051,3052,3061,3065],{"id":19,"depth":198,"text":22},{"id":58,"depth":198,"text":61},{"id":109,"depth":198,"text":112,"children":3053},[3054,3055,3056,3057,3058,3059,3060],{"id":116,"depth":207,"text":119},{"id":152,"depth":207,"text":155},{"id":250,"depth":207,"text":253},{"id":361,"depth":207,"text":364},{"id":1202,"depth":207,"text":1205},{"id":1276,"depth":207,"text":1279},{"id":1517,"depth":207,"text":1520},{"id":1561,"depth":198,"text":1564,"children":3062},[3063,3064],{"id":1567,"depth":207,"text":1570},{"id":2353,"depth":207,"text":1279},{"id":2762,"depth":198,"text":2765,"children":3066},[3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3081,3083,3085,3086],{"id":2768,"depth":207,"text":2771},{"id":2779,"depth":207,"text":2782},{"id":2814,"depth":207,"text":2817},{"id":2825,"depth":207,"text":2828},{"id":2841,"depth":207,"text":2844},{"id":2852,"depth":207,"text":2855},{"id":2870,"depth":207,"text":2873},{"id":2881,"depth":207,"text":2884},{"id":2904,"depth":207,"text":2907},{"id":2915,"depth":207,"text":2918},{"id":2936,"depth":207,"text":2939},{"id":2952,"depth":207,"text":2955},{"id":2963,"depth":207,"text":3080},"RESOLVED: Should VkPipelineDepthStencilStateCreateInfo be part of the fragment shader state or fragment output interface state?",{"id":2981,"depth":207,"text":3082},"RESOLVED: Should VkPipelineMultisampleStateCreateInfo be required, even when the fragment shader does not make use of multisampling shader features?",{"id":2998,"depth":207,"text":3084},"RESOLVED: Should VkPipelineMultisampleStateCreateInfo be part of the fragment output interface instead?",{"id":3015,"depth":207,"text":3018},{"id":3026,"depth":207,"text":3087},"RESOLVED: Can pipeline caches return optimized pipelines without the VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT set?","markdown",[3090,3095,3098,3101,3104,3107,3110,3113,3115,3118,3121,3124,3127,3130,3133,3136,3139,3142,3145,3148,3151,3154,3157,3160,3163,3166,3169,3172,3175,3178,3181,3184,3187,3190,3193,3196,3199,3202,3205,3208,3211,3214,3217,3220,3223,3226,3228,3231,3234,3238,3242,3245,3248,3251,3254,3257,3260,3263,3266],{"index":3091,"title":3092,"id":3093,"appendix":3094},0,"Preamble","preamble",false,{"index":177,"title":3096,"id":3097,"appendix":3094},"Introduction","introduction",{"index":198,"title":3099,"id":3100,"appendix":3094},"Fundamentals","fundamentals",{"index":207,"title":3102,"id":3103,"appendix":3094},"Initialization","initialization",{"index":221,"title":3105,"id":3106,"appendix":3094},"Devices and Queues","devsandqueues",{"index":230,"title":3108,"id":3109,"appendix":3094},"Command Buffers","commandbuffers",{"index":320,"title":3111,"id":3112,"appendix":3094},"Synchronization and Cache Control","synchronization",{"index":469,"title":3114,"id":992,"appendix":3094},"Render Pass",{"index":487,"title":3116,"id":3117,"appendix":3094},"Shaders","shaders",{"index":517,"title":3119,"id":3120,"appendix":3094},"Pipelines","pipelines",{"index":543,"title":3122,"id":3123,"appendix":3094},"Memory Allocation","memory",{"index":569,"title":3125,"id":3126,"appendix":3094},"Resource Creation","resources",{"index":595,"title":3128,"id":3129,"appendix":3094},"Samplers","samplers",{"index":604,"title":3131,"id":3132,"appendix":3094},"Resource Descriptors","descriptorsets",{"index":612,"title":3134,"id":3135,"appendix":3094},"Shader Interfaces","interfaces",{"index":1799,"title":3137,"id":3138,"appendix":3094},"Image Operations","textures",{"index":1817,"title":3140,"id":3141,"appendix":3094},"Fragment Density Map Operations","fragmentdensitymapops",{"index":1825,"title":3143,"id":3144,"appendix":3094},"Queries","queries",{"index":1834,"title":3146,"id":3147,"appendix":3094},"Clear Commands","clears",{"index":1852,"title":3149,"id":3150,"appendix":3094},"Copy Commands","copies",{"index":1875,"title":3152,"id":3153,"appendix":3094},"Drawing Commands","drawing",{"index":1893,"title":3155,"id":3156,"appendix":3094},"Fixed-Function Vertex Processing","fxvertex",{"index":1917,"title":3158,"id":3159,"appendix":3094},"Tessellation","tessellation",{"index":1925,"title":3161,"id":3162,"appendix":3094},"Geometry Shading","geometry",{"index":1963,"title":3164,"id":3165,"appendix":3094},"Mesh Shading","mesh",{"index":1972,"title":3167,"id":3168,"appendix":3094},"Cluster Culling Shading","cluster-culling",{"index":1981,"title":3170,"id":3171,"appendix":3094},"Fixed-Function Vertex Post-Processing","vertexpostproc",{"index":1989,"title":3173,"id":3174,"appendix":3094},"Rasterization","primsrast",{"index":1998,"title":3176,"id":3177,"appendix":3094},"Fragment Operations","fragops",{"index":2016,"title":3179,"id":3180,"appendix":3094},"The Framebuffer","framebuffer",{"index":2038,"title":3182,"id":3183,"appendix":3094},"Dispatching Commands","dispatch",{"index":2056,"title":3185,"id":3186,"appendix":3094},"Device-Generated Commands","device-generated-commands",{"index":2064,"title":3188,"id":3189,"appendix":3094},"Sparse Resources","sparsememory",{"index":2073,"title":3191,"id":3192,"appendix":3094},"Window System Integration (WSI)","wsi",{"index":2091,"title":3194,"id":3195,"appendix":3094},"Deferred Host Operations","deferred-host-operations",{"index":2113,"title":3197,"id":3198,"appendix":3094},"Private Data","private-data",{"index":2136,"title":3200,"id":3201,"appendix":3094},"Acceleration Structures","acceleration-structure",{"index":2145,"title":3203,"id":3204,"appendix":3094},"Micromap","micromap",{"index":2167,"title":3206,"id":3207,"appendix":3094},"Ray Traversal","ray-traversal",{"index":2189,"title":3209,"id":3210,"appendix":3094},"Ray Tracing","ray-tracing",{"index":2207,"title":3212,"id":3213,"appendix":3094},"Memory Decompression","memory-decompression",{"index":2229,"title":3215,"id":3216,"appendix":3094},"Video Coding","video-coding",{"index":2237,"title":3218,"id":3219,"appendix":3094},"Optical Flow","opticalflow",{"index":2246,"title":3221,"id":3222,"appendix":3094},"Execution Graphs","executiongraphs",{"index":2259,"title":3224,"id":3225,"appendix":3094},"Extending Vulkan","extendingvulkan",{"index":2305,"title":155,"id":3227,"appendix":3094},"features",{"index":2313,"title":3229,"id":3230,"appendix":3094},"Limits","limits",{"index":2327,"title":3232,"id":3233,"appendix":3094},"Formats","formats",{"index":3235,"title":3236,"id":3237,"appendix":3094},48,"Additional Capabilities","capabilities",{"index":3239,"title":3240,"id":3241,"appendix":3094},49,"Debugging","debugging",{"index":3091,"title":3243,"id":3244,"appendix":463},"Vulkan Environment for SPIR-V","spirvenv",{"index":177,"title":3246,"id":3247,"appendix":463},"Memory Model","memory-model",{"index":198,"title":3249,"id":3250,"appendix":463},"Compressed Image Formats","compressed_image_formats",{"index":207,"title":3252,"id":3253,"appendix":463},"Core Revisions (Informative)","versions",{"index":221,"title":3255,"id":3256,"appendix":463},"Layers & Extensions (Informative)","extensions",{"index":230,"title":3258,"id":3259,"appendix":463},"API Boilerplate","boilerplate",{"index":320,"title":3261,"id":3262,"appendix":463},"Invariance","invariance",{"index":469,"title":3264,"id":3265,"appendix":463},"Lexicon","lexicon",{"index":487,"title":3267,"id":3268,"appendix":463},"Credits (Informative)","credits",[3270,3277,3281,3286,3290,3295,3298,3301,3304,3308,3312,3315,3318,3321,3323,3325,3328,3331,3335,3337,3341,3343,3346,3348,3351,3359,3363,3369,3373,3378,3380,3384,3390,3396,3402,3404,3407,3413,3416,3420,3426,3430,3434,3439,3443,3446,3449,3455,3458,3461,3465,3469,3473,3476,3478,3482,3487,3493,3496,3500,3503,3509,3512,3516,3519,3523,3526,3530,3533,3538,3542,3545,3550,3553,3556,3559,3563,3568,3573,3577,3581,3585,3589,3593,3597,3601,3604,3607,3611,3614,3617,3620,3624,3629,3633,3636,3640,3645,3649,3654,3657,3660,3665,3670,3674,3677,3681,3686,3689,3694,3699,3702,3705,3709,3713,3717,3722,3726,3729,3734,3738,3741,3745,3749,3753,3756,3758,3762,3765,3768,3771,3774,3777,3780,3783,3786,3789,3793,3797,3800,3803,3806,3809,3812,3815,3819,3823,3827,3830,3834,3837,3840,3843,3845,3849,3854,3858,3862,3864,3868,3871,3878,3882,3886,3890,3896,3899,3903,3907,3910,3913,3917,3922,3928,3932,3934,3939,3942,3947,3951,3956,3960,3964,3966,3969,3972,3974,3979,3982,3985,3990,3994,3998,4003,4007,4011,4013,4015,4018,4020,4023,4025,4029,4033,4035,4039,4042,4046,4049,4051,4054,4058,4060,4064,4067,4070,4073,4077,4080,4083,4085,4088,4090,4093,4097,4100,4102,4104,4106,4108,4112,4114,4117,4122,4126,4129,4131,4134,4136,4140,4143,4146,4148,4152,4155,4160,4164,4167,4171,4174,4176,4180,4184,4186,4191,4194,4198,4201,4204,4207,4209,4212,4216,4219,4223,4226,4230,4234,4237,4240,4243,4246,4250,4252,4255,4257,4262,4263,4267,4270,4273,4276,4279,4281,4285,4288,4291,4294,4298,4300,4302,4306,4308,4311,4315,4319,4321,4325,4328,4331,4334,4337,4341,4346,4351,4355,4361,4365,4368,4372,4376,4379,4383,4387,4390,4394,4397,4402,4406,4408,4414,4417,4420,4423,4427,4430,4434,4438,4442,4444,4447,4449,4452,4454,4456,4459,4462,4465,4468,4471,4474,4476,4480,4484,4488,4492,4495,4498,4502,4505,4509,4511,4515,4519,4522,4525,4528,4531,4534,4537,4540,4543,4546,4549,4552,4555,4558,4561,4565,4568,4572,4576,4579,4582,4585,4588,4591,4594,4598,4601,4604,4610,4614,4618,4622],{"number":3271,"type":1620,"author":3272,"provisional":463,"depends":3273,"platform":3274,"contact":3275,"extension":3276,"proposal":463},135,"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":3278,"type":1620,"author":3272,"provisional":3094,"contact":3279,"extension":3280,"proposal":463},477,"Stu Smith","VK_AMD_anti_lag",{"number":3282,"type":1620,"author":3272,"provisional":3094,"specialuse":3283,"contact":3284,"extension":3285,"proposal":3094},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":3287,"type":1620,"author":3272,"provisional":3094,"depends":3288,"contact":3275,"extension":3289,"proposal":3094},230,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","VK_AMD_device_coherent_memory",{"number":3291,"type":1620,"author":3272,"provisional":3094,"depends":3292,"contact":3293,"extension":3294,"proposal":3094},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":2091,"type":1620,"author":3272,"promotedto":3296,"provisional":3094,"contact":3284,"extension":3297,"proposal":3094},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":1981,"type":1620,"author":3272,"provisional":3094,"contact":3299,"extension":3300,"proposal":3094},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":2145,"type":1620,"author":3272,"deprecatedby":3302,"provisional":3094,"contact":3299,"extension":3303,"proposal":3094},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":3305,"type":1620,"author":3272,"deprecatedby":3302,"provisional":3094,"contact":3306,"extension":3307,"proposal":3094},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":3309,"type":1620,"author":3272,"provisional":3094,"contact":3310,"extension":3311,"proposal":3094},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":3313,"type":1620,"author":3272,"provisional":3094,"contact":3293,"extension":3314,"proposal":3094},137,"VK_AMD_mixed_attachment_samples",{"number":2136,"type":1620,"author":3272,"obsoletedby":3316,"provisional":3094,"contact":3293,"extension":3317,"proposal":3094},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":3319,"type":1620,"author":3272,"provisional":3094,"contact":3293,"extension":3320,"proposal":3094},184,"VK_AMD_pipeline_compiler_control",{"number":1852,"type":1620,"author":3272,"provisional":3094,"contact":3284,"extension":3322,"proposal":3094},"VK_AMD_rasterization_order",{"number":2167,"type":1620,"author":3272,"provisional":3094,"contact":3299,"extension":3324,"proposal":3094},"VK_AMD_shader_ballot",{"number":3326,"type":1620,"author":3272,"provisional":3094,"depends":3288,"contact":3310,"extension":3327,"proposal":3094},186,"VK_AMD_shader_core_properties",{"number":3329,"type":1620,"author":3272,"provisional":3094,"depends":3327,"contact":3293,"extension":3330,"proposal":3094},228,"VK_AMD_shader_core_properties2",{"number":3332,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3275,"extension":3334,"proposal":463},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":1917,"type":1620,"author":3272,"provisional":3094,"contact":3306,"extension":3336,"proposal":3094},"VK_AMD_shader_explicit_vertex_parameter",{"number":3338,"type":1620,"author":3272,"provisional":3094,"contact":3339,"extension":3340,"proposal":3094},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":2327,"type":1620,"author":3272,"provisional":3094,"contact":3299,"extension":3342,"proposal":3094},"VK_AMD_shader_image_load_store_lod",{"number":2246,"type":1620,"author":3272,"provisional":3094,"specialuse":3283,"contact":3344,"extension":3345,"proposal":3094},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":1893,"type":1620,"author":3272,"provisional":3094,"contact":3306,"extension":3347,"proposal":3094},"VK_AMD_shader_trinary_minmax",{"number":2237,"type":1620,"author":3272,"provisional":3094,"depends":3288,"contact":3349,"extension":3350,"proposal":3094},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":3352,"type":1620,"author":3353,"provisional":3094,"depends":3354,"platform":3355,"specialuse":3356,"contact":3357,"extension":3358,"proposal":463},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":3360,"type":1620,"author":3353,"provisional":3094,"depends":3361,"platform":3355,"contact":3362,"extension":3354,"proposal":3094},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":3364,"type":1620,"author":3365,"promotedto":3366,"provisional":3094,"depends":3288,"contact":3367,"extension":3368,"proposal":3094},343,"ARM","VK_EXT_rasterization_order_attachment_access","Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_rasterization_order_attachment_access",{"number":3370,"type":1620,"author":3365,"provisional":3094,"depends":3371,"contact":3367,"extension":3372,"proposal":463},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":3374,"type":1620,"author":3365,"provisional":3094,"depends":3375,"contact":3376,"extension":3377,"proposal":3094},418,"VK_ARM_shader_core_builtins","Kevin Petit @kpet","VK_ARM_scheduling_controls",{"number":3379,"type":1620,"author":3365,"provisional":3094,"depends":3288,"contact":3376,"extension":3375,"proposal":3094},498,{"number":3381,"type":1620,"author":3365,"provisional":3094,"depends":3382,"contact":3367,"extension":3383,"proposal":3094},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":3385,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3388,"extension":3389,"proposal":3094},341,"VK_VERSION_1_3","vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":3391,"type":3392,"author":3333,"provisional":3094,"depends":3393,"contact":3394,"extension":3395,"proposal":3094},286,"instance","VK_EXT_direct_mode_display","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":3397,"type":3392,"author":3398,"provisional":3094,"depends":3393,"platform":3399,"contact":3400,"extension":3401,"proposal":3094},90,"NV","xlib_xrandr","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":3403,"proposal":3094},"VK_EXT_application_parameters",{"number":3405,"type":1620,"author":3365,"provisional":3094,"depends":3288,"contact":3367,"extension":3406,"proposal":3094},68,"VK_EXT_astc_decode_mode",{"number":3408,"type":1620,"author":3333,"provisional":3094,"depends":3409,"ratified":3410,"contact":3411,"extension":3412,"proposal":463},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":3414,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3388,"extension":3415,"proposal":463},340,"VK_EXT_attachment_feedback_loop_layout",{"number":3417,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":3419,"proposal":3094},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":3421,"type":1620,"author":3333,"provisional":3094,"depends":3422,"specialuse":3423,"contact":3424,"extension":3425,"proposal":3094},412,"VK_EXT_custom_border_color","glemulation,d3demulation","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":3427,"type":1620,"author":3398,"deprecatedby":3428,"provisional":3094,"depends":3288,"contact":3418,"extension":3429,"proposal":3094},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":3431,"type":1620,"author":3333,"promotedto":3432,"provisional":3094,"depends":3288,"contact":3284,"extension":3433,"proposal":463},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":3435,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3436,"contact":3437,"extension":3438,"proposal":3094},382,"vulkan,vulkansc","Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":3440,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":3441,"extension":3442,"proposal":3094},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":3444,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3410,"contact":3424,"extension":3445,"proposal":3094},102,"VK_EXT_conservative_rasterization",{"number":3447,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3436,"specialuse":3423,"contact":3448,"extension":3422,"proposal":3094},288,"Liam Middlebrook @liam-middlebrook",{"number":1925,"type":1620,"author":3450,"promotedto":3451,"provisional":3094,"depends":3452,"specialuse":3241,"contact":3453,"extension":3454,"proposal":3094},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":595,"type":3392,"author":3456,"deprecatedby":3451,"provisional":3094,"specialuse":3241,"contact":3457,"extension":3452,"proposal":3094},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":3459,"type":3392,"author":3333,"provisional":3094,"specialuse":3241,"contact":3460,"extension":3451,"proposal":3094},129,"Mark Young @marky-lunarg",{"number":3462,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3463,"contact":3388,"extension":3464,"proposal":463},284,"d3demulation","VK_EXT_depth_bias_control",{"number":3466,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3467,"extension":3468,"proposal":3094},422,"Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":3470,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3356,"contact":3471,"extension":3472,"proposal":3094},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":3474,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3436,"specialuse":3463,"contact":3424,"extension":3475,"proposal":3094},103,"VK_EXT_depth_clip_enable",{"number":612,"type":1620,"author":3398,"provisional":3094,"ratified":3436,"contact":3424,"extension":3477,"proposal":3094},"VK_EXT_depth_range_unrestricted",{"number":3479,"type":1620,"author":3333,"provisional":3094,"depends":3480,"contact":3275,"extension":3481,"proposal":463},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":3483,"type":1620,"author":3398,"promotedto":3484,"provisional":3094,"depends":3485,"contact":3418,"extension":3486,"proposal":3094},162,"VK_VERSION_1_2","(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3),VK_VERSION_1_1","VK_EXT_descriptor_indexing",{"number":3488,"type":1620,"author":3333,"provisional":3094,"depends":3489,"specialuse":3490,"contact":3491,"extension":3492,"proposal":3094},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":3494,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3491,"extension":3495,"proposal":463},342,"VK_EXT_device_fault",{"number":3497,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3283,"contact":3498,"extension":3499,"proposal":3094},285,"Yiwei Zhang @zhangyiwei","VK_EXT_device_memory_report",{"number":3501,"type":3392,"author":3398,"provisional":3094,"depends":3502,"contact":3400,"extension":3393,"proposal":3094},89,"VK_KHR_display",{"number":3504,"type":3392,"author":3333,"provisional":3094,"depends":3505,"platform":3506,"contact":3507,"extension":3508,"proposal":3094},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":3510,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3436,"contact":3424,"extension":3511,"proposal":3094},100,"VK_EXT_discard_rectangles",{"number":3513,"type":1620,"author":3398,"provisional":3094,"depends":3514,"ratified":3410,"contact":3400,"extension":3515,"proposal":3094},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":3517,"type":3392,"author":3398,"provisional":3094,"depends":3502,"ratified":3410,"contact":3400,"extension":3518,"proposal":3094},91,"VK_EXT_display_surface_counter",{"number":3520,"type":1620,"author":3333,"provisional":3094,"depends":3521,"ratified":3410,"contact":3424,"extension":3522,"proposal":463},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":3524,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3424,"extension":3525,"proposal":3094},268,"VK_EXT_extended_dynamic_state",{"number":3527,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3528,"extension":3529,"proposal":3094},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":3531,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3410,"contact":3424,"extension":3532,"proposal":463},456,"VK_EXT_extended_dynamic_state3",{"number":3534,"type":1620,"author":3333,"provisional":3094,"depends":3535,"ratified":3410,"contact":3536,"extension":3537,"proposal":463},454,"VK_KHR_external_memory,VK_VERSION_1_1","Lina Versace @versalinyaa","VK_EXT_external_memory_acquire_unmodified",{"number":3539,"type":1620,"author":3333,"provisional":3094,"depends":3540,"ratified":3436,"contact":3536,"extension":3541,"proposal":3094},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":3543,"type":1620,"author":3333,"provisional":3094,"depends":3535,"ratified":3436,"contact":3284,"extension":3544,"proposal":3094},179,"VK_EXT_external_memory_host",{"number":3546,"type":1620,"author":3547,"provisional":3094,"ratified":3410,"contact":3548,"extension":3549,"proposal":3094},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":3551,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3548,"extension":3552,"proposal":3094},219,"VK_EXT_fragment_density_map",{"number":3554,"type":1620,"author":3333,"provisional":3094,"depends":3552,"contact":3548,"extension":3555,"proposal":3094},333,"VK_EXT_fragment_density_map2",{"number":3557,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3424,"extension":3558,"proposal":3094},252,"VK_EXT_fragment_shader_interlock",{"number":3560,"type":1620,"author":3333,"provisional":3094,"ratified":3410,"contact":3561,"extension":3562,"proposal":463},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":3564,"type":1620,"author":3333,"provisional":3094,"depends":3565,"platform":3566,"ratified":3410,"contact":3400,"extension":3567,"proposal":3094},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":3569,"type":1620,"author":3333,"promotedto":3570,"provisional":3094,"contact":3571,"extension":3572,"proposal":3094},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":3574,"type":1620,"author":3333,"promotedto":3570,"provisional":3094,"depends":3575,"contact":3498,"extension":3576,"proposal":3094},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":3578,"type":1620,"author":3272,"provisional":3094,"depends":3579,"contact":3275,"extension":3580,"proposal":463},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":3582,"type":1620,"author":3456,"provisional":3094,"depends":3583,"ratified":3436,"contact":3457,"extension":3584,"proposal":3094},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":3586,"type":3392,"author":3333,"provisional":3094,"depends":3505,"contact":3587,"extension":3588,"proposal":3094},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":3590,"type":1620,"author":3333,"provisional":3094,"depends":3591,"ratified":3410,"contact":3471,"extension":3592,"proposal":463},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":3594,"type":1620,"author":3333,"promotedto":3484,"provisional":3094,"depends":3288,"contact":3595,"extension":3596,"proposal":3094},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":3598,"type":1620,"author":3333,"provisional":3094,"depends":3599,"specialuse":3356,"contact":3411,"extension":3600,"proposal":3094},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":3602,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3367,"extension":3603,"proposal":463},339,"VK_EXT_image_compression_control",{"number":3605,"type":1620,"author":3333,"provisional":3094,"depends":3603,"contact":3367,"extension":3606,"proposal":3094},438,"VK_EXT_image_compression_control_swapchain",{"number":3608,"type":1620,"author":3333,"provisional":3094,"depends":3609,"ratified":3410,"contact":3536,"extension":3610,"proposal":3094},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":3612,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3467,"extension":3613,"proposal":3094},336,"VK_EXT_image_robustness",{"number":3615,"type":1620,"author":3333,"provisional":3094,"depends":3599,"specialuse":3463,"contact":3411,"extension":3616,"proposal":463},419,"VK_EXT_image_sliced_view_of_3d",{"number":3618,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3388,"extension":3619,"proposal":3094},392,"VK_EXT_image_view_min_lod",{"number":3621,"type":1620,"author":3333,"promotedto":3622,"provisional":3094,"depends":3288,"contact":3424,"extension":3623,"proposal":3094},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":3625,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3626,"contact":3627,"extension":3628,"proposal":3094},139,"(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1),VK_VERSION_1_1","Daniel Rakos @aqnuep","VK_EXT_inline_uniform_block",{"number":3630,"type":3392,"author":3333,"provisional":3094,"ratified":3410,"contact":3631,"extension":3632,"proposal":463},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":3634,"type":1620,"author":3333,"provisional":3094,"depends":3288,"specialuse":3356,"contact":3471,"extension":3635,"proposal":463},466,"VK_EXT_legacy_dithering",{"number":3637,"type":1620,"author":3333,"provisional":3094,"depends":3638,"ratified":3410,"specialuse":3356,"contact":3411,"extension":3639,"proposal":463},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":3641,"type":1620,"author":3333,"promotedto":3642,"provisional":3094,"depends":3288,"specialuse":3643,"contact":3418,"extension":3644,"proposal":3094},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":3646,"type":1620,"author":3333,"promotedto":3647,"provisional":3094,"ratified":3410,"contact":3471,"extension":3648,"proposal":3094},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":3650,"type":1620,"author":3333,"provisional":3094,"depends":3651,"ratified":3410,"contact":3652,"extension":3653,"proposal":463},273,"VK_KHR_map_memory2","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":3655,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":3656,"proposal":3094},238,"VK_EXT_memory_budget",{"number":3658,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":3659,"proposal":3094},239,"VK_EXT_memory_priority",{"number":3661,"type":1620,"author":3333,"provisional":3094,"depends":3662,"contact":3663,"extension":3664,"proposal":463},329,"VK_KHR_spirv_1_4","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":3666,"type":1620,"author":3333,"provisional":3094,"platform":3667,"contact":3668,"extension":3669,"proposal":463},312,"metal","Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":3671,"type":3392,"author":3333,"provisional":3094,"depends":3505,"platform":3667,"contact":3672,"extension":3673,"proposal":3094},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":3675,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3411,"extension":3676,"proposal":3094},393,"VK_EXT_multi_draw",{"number":3678,"type":1620,"author":3333,"provisional":3094,"depends":3679,"contact":3471,"extension":3680,"proposal":463},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":3682,"type":1620,"author":3333,"provisional":3094,"depends":3683,"specialuse":3463,"contact":3684,"extension":3685,"proposal":463},495,"VK_KHR_maintenance3","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":3687,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3424,"extension":3688,"proposal":3094},452,"VK_EXT_nested_command_buffer",{"number":3690,"type":1620,"author":3333,"provisional":3094,"depends":3288,"specialuse":3691,"contact":3692,"extension":3693,"proposal":463},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":3695,"type":1620,"author":3333,"provisional":3094,"depends":3696,"ratified":3410,"contact":3697,"extension":3698,"proposal":463},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness","VK_EXT_opacity_micromap",{"number":3700,"type":1620,"author":3333,"provisional":3094,"depends":3659,"contact":3424,"extension":3701,"proposal":3094},413,"VK_EXT_pageable_device_local_memory",{"number":3703,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3436,"contact":3293,"extension":3704,"proposal":3094},213,"VK_EXT_pci_bus_info",{"number":3706,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3707,"extension":3708,"proposal":3094},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":3710,"type":1620,"author":3272,"promotedto":3386,"provisional":3094,"depends":3288,"contact":3711,"extension":3712,"proposal":3094},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":3714,"type":1620,"author":3456,"promotedto":3386,"provisional":3094,"specialuse":3283,"contact":3715,"extension":3716,"proposal":3094},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":3718,"type":1620,"author":3333,"provisional":3094,"depends":3719,"contact":3720,"extension":3721,"proposal":463},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":3723,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3724,"extension":3725,"proposal":3094},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":3727,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3471,"extension":3728,"proposal":463},467,"VK_EXT_pipeline_protected_access",{"number":3730,"type":1620,"author":3731,"provisional":3094,"depends":3288,"contact":3732,"extension":3733,"proposal":3094},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":3735,"type":1620,"author":3398,"provisional":3094,"ratified":3410,"contact":3736,"extension":3737,"proposal":3094},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":3739,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3356,"contact":3471,"extension":3740,"proposal":3094},357,"VK_EXT_primitive_topology_list_restart",{"number":3742,"type":1620,"author":3333,"provisional":3094,"depends":3743,"specialuse":3356,"contact":3471,"extension":3744,"proposal":463},383,"VK_EXT_transform_feedback","VK_EXT_primitives_generated_query",{"number":3746,"type":1620,"author":3398,"promotedto":3386,"provisional":3094,"depends":3288,"contact":3747,"extension":3748,"proposal":3094},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":3750,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3356,"contact":3751,"extension":3752,"proposal":3094},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":3754,"type":1620,"author":3333,"provisional":3094,"depends":3535,"ratified":3436,"contact":3536,"extension":3755,"proposal":3094},127,"VK_EXT_queue_family_foreign",{"number":3757,"type":1620,"author":3365,"provisional":3094,"depends":3288,"contact":3367,"extension":3366,"proposal":463},464,{"number":3759,"type":1620,"author":3333,"provisional":3094,"depends":3760,"contact":3367,"extension":3761,"proposal":3094},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":3763,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3436,"contact":3448,"extension":3764,"proposal":3094},287,"VK_EXT_robustness2",{"number":3766,"type":1620,"author":3272,"provisional":3094,"depends":3288,"ratified":3436,"contact":3284,"extension":3767,"proposal":3094},144,"VK_EXT_sample_locations",{"number":3769,"type":1620,"author":3398,"promotedto":3484,"provisional":3094,"depends":3288,"contact":3418,"extension":3770,"proposal":3094},131,"VK_EXT_sampler_filter_minmax",{"number":3772,"type":1620,"author":3333,"promotedto":3484,"provisional":3094,"depends":3288,"contact":3275,"extension":3773,"proposal":3094},222,"VK_EXT_scalar_block_layout",{"number":3775,"type":1620,"author":3333,"promotedto":3484,"provisional":3094,"contact":3284,"extension":3776,"proposal":3094},247,"VK_EXT_separate_stencil_usage",{"number":3778,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3436,"contact":3528,"extension":3779,"proposal":3094},261,"VK_EXT_shader_atomic_float",{"number":3781,"type":1620,"author":3333,"provisional":3094,"depends":3779,"ratified":3410,"contact":3652,"extension":3782,"proposal":3094},274,"VK_EXT_shader_atomic_float2",{"number":3784,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3418,"extension":3785,"proposal":3094},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":3787,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3275,"extension":3788,"proposal":3094},235,"VK_EXT_shader_image_atomic_int64",{"number":3790,"type":1620,"author":3333,"provisional":3094,"depends":3791,"contact":3720,"extension":3792,"proposal":463},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":3794,"type":1620,"author":3333,"provisional":3094,"depends":3521,"ratified":3410,"contact":3795,"extension":3796,"proposal":463},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":3798,"type":1620,"author":3333,"provisional":3094,"ratified":3410,"contact":3376,"extension":3799,"proposal":463},565,"VK_EXT_shader_replicated_composites",{"number":3801,"type":1620,"author":3333,"provisional":3094,"ratified":3436,"contact":3299,"extension":3802,"proposal":3094},141,"VK_EXT_shader_stencil_export",{"number":3804,"type":1620,"author":3398,"deprecatedby":3484,"provisional":3094,"contact":3736,"extension":3805,"proposal":3094},65,"VK_EXT_shader_subgroup_ballot",{"number":3807,"type":1620,"author":3398,"deprecatedby":3382,"provisional":3094,"contact":3736,"extension":3808,"proposal":3094},66,"VK_EXT_shader_subgroup_vote",{"number":3810,"type":1620,"author":3333,"provisional":3094,"depends":3386,"ratified":3410,"contact":3367,"extension":3811,"proposal":463},396,"VK_EXT_shader_tile_image",{"number":3813,"type":1620,"author":3398,"promotedto":3484,"provisional":3094,"contact":3736,"extension":3814,"proposal":3094},163,"VK_EXT_shader_viewport_index_layer",{"number":3816,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3382,"ratified":3387,"contact":3817,"extension":3818,"proposal":3094},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":3820,"type":1620,"author":3333,"provisional":3094,"depends":3288,"contact":3821,"extension":3822,"proposal":463},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":3824,"type":3392,"author":3333,"provisional":3094,"depends":3825,"contact":3471,"extension":3826,"proposal":463},275,"VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":3828,"type":3392,"author":3456,"provisional":3094,"depends":3505,"contact":3457,"extension":3829,"proposal":3094},105,"VK_EXT_swapchain_colorspace",{"number":3831,"type":1620,"author":3333,"provisional":3094,"depends":3832,"contact":3471,"extension":3833,"proposal":463},276,"VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":3835,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3418,"extension":3836,"proposal":3094},282,"VK_EXT_texel_buffer_alignment",{"number":3838,"type":1620,"author":3365,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3387,"contact":3367,"extension":3839,"proposal":3094},67,"VK_EXT_texture_compression_astc_hdr",{"number":3841,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"contact":3275,"extension":3842,"proposal":3094},246,"VK_EXT_tooling_info",{"number":2016,"type":1620,"author":3398,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3844,"contact":3424,"extension":3743,"proposal":3094},"glemulation,d3demulation,devtools",{"number":3846,"type":1620,"author":3456,"provisional":3094,"contact":3847,"extension":3848,"proposal":3094},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":3850,"type":3392,"author":3851,"deprecatedby":3632,"provisional":3094,"specialuse":3241,"contact":3852,"extension":3853,"proposal":3094},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":3855,"type":3392,"author":3456,"deprecatedby":3632,"provisional":3094,"specialuse":3241,"contact":3856,"extension":3857,"proposal":3094},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":3859,"type":1620,"author":3398,"promotedto":3860,"provisional":3094,"depends":3288,"contact":3441,"extension":3861,"proposal":3094},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":3863,"type":1620,"author":3333,"provisional":3094,"depends":3288,"ratified":3410,"contact":3424,"extension":3638,"proposal":3094},353,{"number":3865,"type":1620,"author":3333,"promotedto":3386,"provisional":3094,"depends":3760,"ratified":3387,"contact":3866,"extension":3867,"proposal":3094},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":3869,"type":1620,"author":3333,"provisional":3094,"depends":3760,"ratified":3436,"contact":3424,"extension":3870,"proposal":3094},253,"VK_EXT_ycbcr_image_arrays",{"number":3872,"type":1620,"author":3873,"provisional":3094,"depends":3874,"platform":3875,"contact":3876,"extension":3877,"proposal":3094},367,"FUCHSIA","VK_FUCHSIA_external_memory+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","fuchsia","John Rosasco @rosasco","VK_FUCHSIA_buffer_collection",{"number":3879,"type":1620,"author":3873,"provisional":3094,"depends":3880,"platform":3875,"contact":3876,"extension":3881,"proposal":3094},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":3883,"type":1620,"author":3873,"provisional":3094,"depends":3884,"platform":3875,"contact":3876,"extension":3885,"proposal":3094},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":3887,"type":3392,"author":3873,"provisional":3094,"depends":3505,"platform":3875,"contact":3888,"extension":3889,"proposal":3094},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":3891,"type":1620,"author":3892,"provisional":3094,"depends":3893,"platform":3894,"contact":3715,"extension":3895,"proposal":3094},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":3897,"type":3392,"author":3892,"provisional":3094,"depends":3505,"platform":3894,"contact":3715,"extension":3898,"proposal":3094},50,"VK_GGP_stream_descriptor_surface",{"number":3900,"type":1620,"author":3456,"provisional":3094,"contact":3901,"extension":3902,"proposal":3094},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":3904,"type":1620,"author":3456,"provisional":3094,"depends":3583,"contact":3905,"extension":3906,"proposal":3094},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":3908,"type":1620,"author":3456,"provisional":3094,"contact":3901,"extension":3909,"proposal":3094},224,"VK_GOOGLE_hlsl_functionality1",{"number":3911,"type":3392,"author":3456,"provisional":3094,"depends":3505,"specialuse":3356,"contact":3471,"extension":3912,"proposal":463},434,"VK_GOOGLE_surfaceless_query",{"number":3914,"type":1620,"author":3456,"provisional":3094,"contact":3915,"extension":3916,"proposal":3094},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":3918,"type":1620,"author":3919,"provisional":3094,"depends":3288,"contact":3920,"extension":3921,"proposal":463},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":3923,"type":1620,"author":3924,"provisional":3094,"depends":3925,"contact":3926,"extension":3927,"proposal":463},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":3929,"type":1620,"author":3919,"provisional":3094,"depends":3930,"contact":3926,"extension":3931,"proposal":3094},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":1817,"type":1620,"author":3731,"provisional":3094,"contact":3275,"extension":3933,"proposal":3094},"VK_IMG_filter_cubic",{"number":3935,"type":1620,"author":3731,"deprecatedby":3936,"provisional":3094,"contact":3937,"extension":3938,"proposal":3094},55,null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":3940,"type":1620,"author":3731,"provisional":3094,"depends":3288,"specialuse":3356,"contact":3561,"extension":3941,"proposal":3094},111,"VK_IMG_relaxed_line_rasterization",{"number":3943,"type":1620,"author":3944,"provisional":3094,"specialuse":3283,"contact":3945,"extension":3946,"proposal":3094},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":3948,"type":1620,"author":3944,"provisional":3094,"depends":3288,"contact":3949,"extension":3950,"proposal":3094},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":3952,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":3954,"ratified":3410,"contact":3367,"extension":3955,"proposal":3094},84,"KHR","(VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class),VK_VERSION_1_1","VK_KHR_16bit_storage",{"number":3957,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3954,"ratified":3410,"contact":3958,"extension":3959,"proposal":3094},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":3961,"type":1620,"author":3953,"provisional":3094,"depends":3962,"ratified":3410,"contact":3736,"extension":3963,"proposal":3094},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":517,"type":3392,"author":3953,"provisional":3094,"depends":3505,"platform":3355,"ratified":3410,"contact":3362,"extension":3965,"proposal":3094},"VK_KHR_android_surface",{"number":3967,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3275,"extension":3968,"proposal":3094},158,"VK_KHR_bind_memory2",{"number":3970,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3971,"ratified":3410,"contact":3418,"extension":3428,"proposal":3094},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":3973,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":3627,"extension":3432,"proposal":3094},544,{"number":3975,"type":1620,"author":3953,"provisional":3094,"depends":3976,"ratified":3410,"contact":3977,"extension":3978,"proposal":463},512,"VK_KHR_get_physical_device_properties2","Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":3980,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"contact":3376,"extension":3981,"proposal":463},507,"VK_KHR_cooperative_matrix",{"number":3983,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3436,"contact":3548,"extension":3984,"proposal":3094},338,"VK_KHR_copy_commands2",{"number":3986,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3987,"ratified":3410,"contact":3988,"extension":3989,"proposal":3094},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":3991,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":3992,"ratified":3410,"contact":3400,"extension":3993,"proposal":3094},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":3995,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":3996,"extension":3997,"proposal":3094},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":3999,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":4000,"ratified":3410,"contact":4001,"extension":4002,"proposal":3094},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":4004,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":4005,"extension":4006,"proposal":3094},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":4008,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":4009,"ratified":3410,"contact":3418,"extension":4010,"proposal":3094},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":4012,"type":3392,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3418,"extension":4009,"proposal":3094},71,{"number":207,"type":3392,"author":3953,"provisional":3094,"depends":3505,"ratified":3436,"contact":4014,"extension":3502,"proposal":3094},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":221,"type":1620,"author":3953,"provisional":3094,"depends":4016,"ratified":3436,"contact":3400,"extension":4017,"proposal":3094},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":4019,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"ratified":3410,"contact":3424,"extension":3296,"proposal":3094},170,{"number":4021,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3284,"extension":4022,"proposal":3094},197,"VK_KHR_driver_properties",{"number":2305,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":4024,"ratified":3410,"contact":3275,"extension":2348,"proposal":463},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2",{"number":4026,"type":1620,"author":3272,"provisional":3094,"depends":4027,"ratified":3410,"contact":3275,"extension":4028,"proposal":463},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":4030,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":4031,"ratified":3410,"contact":3362,"extension":4032,"proposal":3094},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":4034,"type":3392,"author":3953,"promotedto":3382,"provisional":3094,"depends":3288,"ratified":3410,"contact":3362,"extension":4031,"proposal":3094},113,{"number":4036,"type":1620,"author":3953,"provisional":3094,"depends":4037,"ratified":3436,"contact":3362,"extension":4038,"proposal":3094},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":4040,"type":1620,"author":3953,"provisional":3094,"depends":4032,"platform":3566,"ratified":3410,"contact":3362,"extension":4041,"proposal":3094},115,"VK_KHR_external_fence_win32",{"number":4043,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":4044,"ratified":3410,"contact":3400,"extension":4045,"proposal":3094},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":4047,"type":3392,"author":3953,"promotedto":3382,"provisional":3094,"depends":3288,"ratified":3410,"contact":3400,"extension":4048,"proposal":3094},72,"VK_KHR_external_memory_capabilities",{"number":4050,"type":1620,"author":3953,"provisional":3094,"depends":3535,"ratified":3436,"contact":3400,"extension":3540,"proposal":3094},75,{"number":4052,"type":1620,"author":3953,"provisional":3094,"depends":3535,"platform":3566,"ratified":3410,"contact":3400,"extension":4053,"proposal":3094},74,"VK_KHR_external_memory_win32",{"number":4055,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":4056,"ratified":3410,"contact":3400,"extension":4057,"proposal":3094},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":4059,"type":3392,"author":3953,"promotedto":3382,"provisional":3094,"depends":3288,"ratified":3410,"contact":3400,"extension":4056,"proposal":3094},77,{"number":4061,"type":1620,"author":3953,"provisional":3094,"depends":4062,"ratified":3436,"contact":3400,"extension":4063,"proposal":3094},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":4065,"type":1620,"author":3953,"provisional":3094,"depends":4057,"platform":3566,"ratified":3410,"contact":3400,"extension":4066,"proposal":3094},79,"VK_KHR_external_semaphore_win32",{"number":4068,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3410,"contact":3945,"extension":4069,"proposal":3094},361,"VK_KHR_format_feature_flags2",{"number":4071,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"contact":3279,"extension":4072,"proposal":463},323,"VK_KHR_fragment_shader_barycentric",{"number":4074,"type":1620,"author":3953,"provisional":3094,"depends":4075,"ratified":3436,"contact":3275,"extension":4076,"proposal":463},227,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_create_renderpass2),VK_VERSION_1_2","VK_KHR_fragment_shading_rate",{"number":4078,"type":3392,"author":3953,"provisional":3094,"depends":3502,"ratified":3436,"contact":3400,"extension":4079,"proposal":3094},122,"VK_KHR_get_display_properties2",{"number":4081,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3652,"extension":4082,"proposal":3094},147,"VK_KHR_get_memory_requirements2",{"number":4084,"type":3392,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3418,"extension":3976,"proposal":3094},60,{"number":4086,"type":3392,"author":3953,"provisional":3094,"depends":3505,"ratified":3436,"contact":3400,"extension":4087,"proposal":3094},120,"VK_KHR_get_surface_capabilities2",{"number":4089,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":3275,"extension":3570,"proposal":3094},189,{"number":4091,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"ratified":3410,"contact":3652,"extension":4092,"proposal":3094},148,"VK_KHR_image_format_list",{"number":4094,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":4095,"ratified":3410,"contact":3988,"extension":4096,"proposal":3094},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":4098,"type":1620,"author":3953,"provisional":3094,"depends":3583,"ratified":3436,"contact":3905,"extension":4099,"proposal":3094},85,"VK_KHR_incremental_present",{"number":4101,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":3424,"extension":3622,"proposal":3094},534,{"number":4103,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":3424,"extension":3642,"proposal":3094},535,{"number":4105,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":3471,"extension":3647,"proposal":463},527,{"number":4107,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3424,"extension":3316,"proposal":3094},70,{"number":4109,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":4110,"extension":4111,"proposal":3094},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":4113,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":3683,"proposal":3094},169,{"number":4115,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3382,"ratified":3410,"contact":3424,"extension":4116,"proposal":3094},414,"VK_KHR_maintenance4",{"number":4118,"type":1620,"author":3953,"provisional":3094,"depends":4119,"ratified":3410,"contact":4120,"extension":4121,"proposal":463},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","Stu Smith @stu-s","VK_KHR_maintenance5",{"number":4123,"type":1620,"author":3953,"provisional":3094,"depends":3382,"ratified":3410,"contact":4124,"extension":4125,"proposal":463},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":4127,"type":1620,"author":3953,"provisional":3094,"depends":3382,"ratified":3410,"contact":3411,"extension":4128,"proposal":463},563,"VK_KHR_maintenance7",{"number":4130,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":3652,"extension":3651,"proposal":463},272,{"number":4132,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":4133,"proposal":3094},54,"VK_KHR_multiview",{"extension":4135,"proposal":3094},"VK_KHR_object_refresh",{"number":4137,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"specialuse":3283,"contact":4138,"extension":4139,"proposal":3094},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":4141,"type":1620,"author":3953,"provisional":3094,"depends":4121,"ratified":3410,"contact":4120,"extension":4142,"proposal":463},484,"VK_KHR_pipeline_binary",{"number":4144,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"specialuse":3283,"contact":3652,"extension":4145,"proposal":3094},270,"VK_KHR_pipeline_executable_properties",{"number":4147,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":3663,"extension":142,"proposal":3094},291,{"number":4149,"type":3392,"author":3953,"provisional":3094,"ratified":3410,"contact":4150,"extension":4151,"proposal":3094},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":4153,"type":1620,"author":3953,"provisional":463,"depends":3288,"platform":3274,"ratified":3410,"contact":3668,"extension":4154,"proposal":3094},164,"VK_KHR_portability_subset",{"number":4156,"type":1620,"author":3953,"provisional":3094,"depends":4157,"ratified":3410,"contact":4158,"extension":4159,"proposal":3094},295,"VK_KHR_swapchain+VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Keith Packard @keithp","VK_KHR_present_id",{"number":4161,"type":1620,"author":3953,"provisional":3094,"depends":4162,"ratified":3410,"contact":4158,"extension":4163,"proposal":3094},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":4165,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":4166,"proposal":3094},81,"VK_KHR_push_descriptor",{"number":4168,"type":1620,"author":3953,"provisional":3094,"depends":4169,"ratified":3410,"contact":3736,"extension":4170,"proposal":3094},349,"VK_KHR_spirv_1_4+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":4172,"type":1620,"author":3953,"provisional":3094,"depends":3963,"ratified":3410,"contact":3736,"extension":4173,"proposal":3094},387,"VK_KHR_ray_tracing_maintenance1",{"number":4175,"type":1620,"author":3953,"provisional":3094,"depends":4169,"ratified":3410,"contact":3736,"extension":133,"proposal":3094},348,{"number":4177,"type":1620,"author":3953,"provisional":3094,"depends":3963,"ratified":3410,"contact":4178,"extension":4179,"proposal":463},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":4181,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":4182,"extension":4183,"proposal":3094},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":1799,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"ratified":3410,"contact":3275,"extension":4185,"proposal":3094},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":4187,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":4188,"ratified":3410,"contact":4189,"extension":4190,"proposal":3094},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":4192,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":4075,"ratified":3410,"contact":3424,"extension":4193,"proposal":3094},242,"VK_KHR_separate_depth_stencil_layouts",{"number":4195,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":4196,"extension":4197,"proposal":3094},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":4199,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":4196,"extension":4200,"proposal":3094},182,"VK_KHR_shader_clock",{"number":4202,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3736,"extension":4203,"proposal":3094},64,"VK_KHR_shader_draw_parameters",{"number":4205,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"contact":3376,"extension":4206,"proposal":463},545,"VK_KHR_shader_expect_assume",{"number":4208,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3958,"extension":3302,"proposal":3094},83,{"number":4210,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3958,"extension":4211,"proposal":3094},198,"VK_KHR_shader_float_controls",{"number":4213,"type":1620,"author":3953,"provisional":3094,"depends":4214,"ratified":3410,"contact":3467,"extension":4215,"proposal":463},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":4217,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3410,"contact":3376,"extension":4218,"proposal":463},281,"VK_KHR_shader_integer_dot_product",{"number":4220,"type":1620,"author":3953,"provisional":3094,"depends":3382,"ratified":3410,"contact":4221,"extension":4222,"proposal":463},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":4224,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"ratified":3410,"contact":3453,"extension":4225,"proposal":3094},294,"VK_KHR_shader_non_semantic_info",{"number":4227,"type":1620,"author":3953,"provisional":3094,"depends":4228,"ratified":3410,"contact":3275,"extension":4229,"proposal":463},236,"VK_VERSION_1_1+VK_KHR_vulkan_memory_model+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":4231,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":4232,"extension":4233,"proposal":463},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":4235,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3382,"ratified":3410,"contact":3817,"extension":4236,"proposal":3094},176,"VK_KHR_shader_subgroup_extended_types",{"number":4238,"type":1620,"author":3953,"provisional":3094,"ratified":3410,"contact":3376,"extension":4239,"proposal":463},417,"VK_KHR_shader_subgroup_rotate",{"number":4241,"type":1620,"author":3953,"provisional":3094,"depends":3382,"ratified":3410,"contact":4221,"extension":4242,"proposal":3094},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":4244,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3436,"contact":3362,"extension":4245,"proposal":3094},216,"VK_KHR_shader_terminate_invocation",{"number":4247,"type":1620,"author":3953,"provisional":3094,"depends":4248,"ratified":3436,"contact":4138,"extension":4249,"proposal":3094},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":4251,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":4214,"ratified":3410,"contact":3362,"extension":3662,"proposal":3094},237,{"number":4253,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"ratified":3410,"contact":3958,"extension":4254,"proposal":3094},132,"VK_KHR_storage_buffer_storage_class",{"number":177,"type":3392,"author":3953,"provisional":3094,"ratified":3436,"contact":4256,"extension":3505,"proposal":3094},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":4258,"type":3392,"author":3953,"provisional":3094,"depends":4259,"ratified":3410,"contact":4260,"extension":4261,"proposal":3094},240,"VK_VERSION_1_1+VK_KHR_get_surface_capabilities2","Sandeep Shinde @sashinde","VK_KHR_surface_protected_capabilities",{"number":198,"type":1620,"author":3953,"provisional":3094,"depends":3505,"ratified":3436,"contact":4256,"extension":3583,"proposal":3094},{"number":4264,"type":1620,"author":3953,"provisional":3094,"depends":4265,"ratified":3436,"contact":3284,"extension":4266,"proposal":3094},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":4268,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3436,"contact":3275,"extension":4269,"proposal":3094},315,"VK_KHR_synchronization2",{"number":4271,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3652,"extension":4272,"proposal":3094},208,"VK_KHR_timeline_semaphore",{"number":4274,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3467,"extension":4275,"proposal":3094},254,"VK_KHR_uniform_buffer_standard_layout",{"number":4277,"type":1620,"author":3953,"promotedto":3382,"provisional":3094,"depends":3954,"ratified":3410,"contact":3362,"extension":4278,"proposal":3094},121,"VK_KHR_variable_pointers",{"number":4280,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3436,"contact":3471,"extension":3860,"proposal":463},526,{"number":4282,"type":1620,"author":3953,"provisional":3094,"depends":4283,"ratified":3410,"contact":3627,"extension":4284,"proposal":463},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":2229,"type":1620,"author":3953,"provisional":3094,"depends":4283,"ratified":3410,"contact":4286,"extension":4287,"proposal":463},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":4289,"type":1620,"author":3953,"provisional":3094,"depends":4283,"ratified":3410,"contact":4286,"extension":4290,"proposal":463},188,"VK_KHR_video_decode_h265",{"number":1972,"type":1620,"author":3953,"provisional":3094,"depends":4292,"ratified":3410,"contact":4293,"extension":4283,"proposal":463},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":2189,"type":1620,"author":3953,"provisional":3094,"depends":4295,"ratified":3410,"contact":4296,"extension":4297,"proposal":463},"VK_KHR_video_encode_queue","Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_encode_h264",{"number":2207,"type":1620,"author":3953,"provisional":3094,"depends":4295,"ratified":3410,"contact":4296,"extension":4299,"proposal":463},"VK_KHR_video_encode_h265",{"number":4301,"type":1620,"author":3953,"provisional":3094,"depends":4292,"ratified":3410,"contact":4296,"extension":4295,"proposal":463},300,{"number":4303,"type":1620,"author":3953,"provisional":3094,"depends":4304,"ratified":3410,"contact":3627,"extension":4305,"proposal":463},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":1963,"type":1620,"author":3953,"provisional":3094,"depends":4307,"ratified":3410,"contact":3866,"extension":4304,"proposal":463},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":4309,"type":1620,"author":3953,"promotedto":3484,"provisional":3094,"depends":3288,"ratified":3410,"contact":3418,"extension":4310,"proposal":3094},212,"VK_KHR_vulkan_memory_model",{"number":469,"type":3392,"author":3953,"provisional":3094,"depends":3505,"platform":4312,"ratified":3410,"contact":4313,"extension":4314,"proposal":3094},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":4316,"type":1620,"author":3953,"provisional":3094,"depends":4053,"platform":3566,"ratified":3410,"contact":4317,"extension":4318,"proposal":3094},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":543,"type":3392,"author":3953,"provisional":3094,"depends":3505,"platform":3566,"ratified":3410,"contact":4313,"extension":4320,"proposal":3094},"VK_KHR_win32_surface",{"number":4322,"type":1620,"author":3953,"provisional":3094,"depends":3288,"ratified":3410,"contact":4323,"extension":4324,"proposal":3094},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":320,"type":3392,"author":3953,"provisional":3094,"depends":3505,"platform":4326,"ratified":3410,"contact":4313,"extension":4327,"proposal":3094},"xcb","VK_KHR_xcb_surface",{"number":230,"type":3392,"author":3953,"provisional":3094,"depends":3505,"platform":4329,"ratified":3410,"contact":4313,"extension":4330,"proposal":3094},"xlib","VK_KHR_xlib_surface",{"number":4332,"type":1620,"author":3953,"promotedto":3386,"provisional":3094,"depends":3288,"ratified":3410,"contact":4221,"extension":4333,"proposal":3094},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":4335,"type":3392,"author":3851,"provisional":3094,"contact":4150,"extension":4336,"proposal":463},460,"VK_LUNARG_direct_driver_loading",{"number":4338,"type":1620,"author":4339,"provisional":3094,"depends":3288,"specialuse":3463,"contact":3720,"extension":4340,"proposal":3094},576,"MESA","VK_MESA_image_alignment_control",{"number":4342,"type":1620,"author":4343,"provisional":3094,"depends":3288,"contact":4344,"extension":4345,"proposal":463},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":4347,"type":3392,"author":4348,"deprecatedby":3673,"provisional":3094,"depends":3505,"platform":4349,"contact":3668,"extension":4350,"proposal":3094},123,"MVK","ios","VK_MVK_ios_surface",{"number":4352,"type":3392,"author":4348,"deprecatedby":3673,"provisional":3094,"depends":3505,"platform":4353,"contact":3668,"extension":4354,"proposal":3094},124,"macos","VK_MVK_macos_surface",{"number":4356,"type":3392,"author":4357,"provisional":3094,"depends":3505,"platform":4358,"contact":4359,"extension":4360,"proposal":3094},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":2038,"type":1620,"author":4362,"provisional":3094,"contact":4363,"extension":4364,"proposal":3094},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":2056,"type":1620,"author":4362,"provisional":3094,"contact":4366,"extension":4367,"proposal":3094},"Eric Werness @ewerness-nv","VK_NVX_image_view_handle",{"number":4369,"type":1620,"author":4362,"provisional":3094,"depends":4370,"contact":3418,"extension":4371,"proposal":3094},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":4373,"type":1620,"author":3398,"provisional":3094,"depends":3393,"platform":3566,"contact":4374,"extension":4375,"proposal":3094},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":4377,"type":1620,"author":3398,"provisional":3094,"contact":4366,"extension":4378,"proposal":3094},88,"VK_NV_clip_space_w_scaling",{"number":4380,"type":1620,"author":3398,"provisional":3094,"contact":4381,"extension":4382,"proposal":3094},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":4384,"type":1620,"author":3398,"promotedto":3978,"provisional":3094,"depends":3288,"contact":4385,"extension":4386,"proposal":3094},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":4388,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":3418,"extension":4389,"proposal":3094},250,"VK_NV_cooperative_matrix",{"number":4391,"type":1620,"author":3398,"provisional":3094,"depends":4392,"contact":3528,"extension":4393,"proposal":3094},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":4395,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":3736,"extension":4396,"proposal":3094},51,"VK_NV_corner_sampled_image",{"number":4398,"type":1620,"author":3398,"provisional":3094,"depends":4399,"contact":4400,"extension":4401,"proposal":3094},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":4403,"type":1620,"author":3398,"provisional":463,"contact":4404,"extension":4405,"proposal":3094},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":1989,"type":1620,"author":3398,"deprecatedby":3993,"provisional":3094,"contact":3418,"extension":4407,"proposal":3094},"VK_NV_dedicated_allocation",{"number":4409,"type":1620,"author":4410,"provisional":3094,"depends":4411,"contact":4412,"extension":4413,"proposal":3094},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":4415,"type":1620,"author":3398,"provisional":3094,"depends":3382,"contact":3424,"extension":4416,"proposal":3094},547,"VK_NV_descriptor_pool_overallocation",{"number":4418,"type":1620,"author":4410,"provisional":3094,"depends":3288,"contact":4412,"extension":4419,"proposal":3094},207,"VK_NV_device_diagnostic_checkpoints",{"number":4421,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4400,"extension":4422,"proposal":3094},301,"VK_NV_device_diagnostics_config",{"number":4424,"type":1620,"author":3398,"provisional":3094,"depends":4425,"contact":3663,"extension":4426,"proposal":3094},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_device_generated_commands",{"number":4428,"type":1620,"author":3398,"provisional":3094,"depends":4426,"contact":3528,"extension":4429,"proposal":3094},429,"VK_NV_device_generated_commands_compute",{"number":4431,"type":1620,"author":3398,"provisional":463,"depends":3698,"platform":3274,"contact":4432,"extension":4433,"proposal":3094},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":4435,"type":1620,"author":3398,"provisional":3094,"contact":4436,"extension":4437,"proposal":3094},493,"Russell Chou @russellcnv","VK_NV_extended_sparse_address_space",{"number":4439,"type":1620,"author":3398,"deprecatedby":4045,"provisional":3094,"depends":4440,"contact":3400,"extension":4441,"proposal":3094},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":4443,"type":3392,"author":3398,"deprecatedby":4048,"provisional":3094,"contact":3400,"extension":4440,"proposal":3094},56,{"number":4445,"type":1620,"author":3398,"provisional":3094,"depends":3535,"contact":4317,"extension":4446,"proposal":3094},372,"VK_NV_external_memory_rdma",{"extension":4448,"proposal":3094},"VK_NV_external_memory_sci_buf",{"number":4450,"type":1620,"author":3398,"deprecatedby":4053,"provisional":3094,"depends":4441,"platform":3566,"contact":3400,"extension":4451,"proposal":3094},58,"VK_NV_external_memory_win32",{"extension":4453,"proposal":3094},"VK_NV_external_sci_sync",{"extension":4455,"proposal":3094},"VK_NV_external_sci_sync2",{"number":4457,"type":1620,"author":3398,"provisional":3094,"contact":3418,"extension":4458,"proposal":3094},154,"VK_NV_fill_rectangle",{"number":4460,"type":1620,"author":3398,"provisional":3094,"contact":3418,"extension":4461,"proposal":3094},150,"VK_NV_fragment_coverage_to_color",{"number":4463,"type":1620,"author":3398,"promotedto":4072,"provisional":3094,"depends":3288,"contact":4385,"extension":4464,"proposal":3094},204,"VK_NV_fragment_shader_barycentric",{"number":4466,"type":1620,"author":3398,"provisional":3094,"depends":4076,"contact":4385,"extension":4467,"proposal":3094},327,"VK_NV_fragment_shading_rate_enums",{"number":4469,"type":1620,"author":3398,"provisional":3094,"contact":3418,"extension":4470,"proposal":3094},153,"VK_NV_framebuffer_mixed_samples",{"number":4472,"type":1620,"author":3398,"provisional":3094,"contact":3736,"extension":4473,"proposal":3094},96,"VK_NV_geometry_shader_passthrough",{"number":604,"type":1620,"author":3398,"deprecatedby":3936,"provisional":3094,"contact":3424,"extension":4475,"proposal":3094},"VK_NV_glsl_shader",{"number":4477,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4478,"extension":4479,"proposal":3094},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":4481,"type":1620,"author":4410,"provisional":3094,"depends":3288,"contact":4482,"extension":4483,"proposal":3094},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":4485,"type":1620,"author":3398,"provisional":3094,"contact":4486,"extension":4487,"proposal":3094},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":4489,"type":1620,"author":3398,"provisional":3094,"depends":4490,"contact":4486,"extension":4491,"proposal":3094},506,"VK_VERSION_1_2,VK_KHR_timeline_semaphore","VK_NV_low_latency2",{"number":4493,"type":1620,"author":3398,"provisional":3094,"depends":4392,"contact":3528,"extension":4494,"proposal":3094},428,"VK_NV_memory_decompression",{"number":4496,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":3663,"extension":4497,"proposal":3094},203,"VK_NV_mesh_shader",{"number":4499,"type":1620,"author":3398,"provisional":3094,"depends":4500,"contact":4317,"extension":4501,"proposal":3094},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":4503,"type":1620,"author":3398,"provisional":3094,"depends":4125,"contact":3424,"extension":4504,"proposal":3094},517,"VK_NV_per_stage_descriptor_set",{"number":4506,"type":1620,"author":3398,"provisional":3094,"depends":3565,"contact":4507,"extension":4508,"proposal":3094},293,"Liya Li @liyli","VK_NV_present_barrier",{"extension":4510,"proposal":3094},"VK_NV_private_vendor_info",{"number":4512,"type":1620,"author":3398,"provisional":3094,"contact":4513,"extension":4514,"proposal":3094},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":4516,"type":1620,"author":3398,"deprecatedby":133,"provisional":3094,"depends":4517,"contact":4366,"extension":4518,"proposal":3094},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":4520,"type":1620,"author":3398,"provisional":3094,"depends":133,"contact":4366,"extension":4521,"proposal":3094},491,"VK_NV_ray_tracing_invocation_reorder",{"number":4523,"type":1620,"author":3398,"provisional":3094,"depends":133,"contact":4178,"extension":4524,"proposal":3094},328,"VK_NV_ray_tracing_motion_blur",{"number":4526,"type":1620,"author":3398,"provisional":3094,"contact":3528,"extension":4527,"proposal":463},569,"VK_NV_ray_tracing_validation",{"number":4529,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4400,"extension":4530,"proposal":3094},167,"VK_NV_representative_fragment_test",{"number":4532,"type":1620,"author":3398,"provisional":3094,"contact":3424,"extension":4533,"proposal":3094},95,"VK_NV_sample_mask_override_coverage",{"number":4535,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4385,"extension":4536,"proposal":3094},206,"VK_NV_scissor_exclusive",{"number":4538,"type":1620,"author":3398,"provisional":3094,"contact":3418,"extension":4539,"proposal":3094},564,"VK_NV_shader_atomic_float16_vector",{"number":4541,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4385,"extension":4542,"proposal":3094},205,"VK_NV_shader_image_footprint",{"number":4544,"type":1620,"author":3398,"provisional":3094,"depends":3382,"contact":3736,"extension":4545,"proposal":3094},155,"VK_NV_shader_sm_builtins",{"number":4547,"type":1620,"author":3398,"provisional":3094,"depends":3382,"contact":3418,"extension":4548,"proposal":3094},199,"VK_NV_shader_subgroup_partitioned",{"number":4550,"type":1620,"author":3398,"provisional":3094,"depends":3288,"contact":4385,"extension":4551,"proposal":3094},165,"VK_NV_shading_rate_image",{"number":4553,"type":1620,"author":3398,"provisional":3094,"contact":3736,"extension":4554,"proposal":3094},97,"VK_NV_viewport_array2",{"number":4556,"type":1620,"author":3398,"provisional":3094,"contact":3424,"extension":4557,"proposal":3094},99,"VK_NV_viewport_swizzle",{"number":4559,"type":1620,"author":3398,"promotedto":4318,"provisional":3094,"depends":4451,"platform":3566,"contact":4317,"extension":4560,"proposal":3094},59,"VK_NV_win32_keyed_mutex",{"number":4562,"type":1620,"author":3547,"provisional":3094,"depends":4563,"contact":3548,"extension":4564,"proposal":3094},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":4566,"type":1620,"author":3547,"provisional":3094,"depends":3549,"contact":3548,"extension":4567,"proposal":3094},520,"VK_QCOM_filter_cubic_weights",{"number":4569,"type":1620,"author":3547,"provisional":3094,"depends":4570,"contact":3548,"extension":4571,"proposal":3094},426,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map","VK_QCOM_fragment_density_map_offset",{"number":4573,"type":1620,"author":3547,"provisional":3094,"depends":4574,"contact":3548,"extension":4575,"proposal":463},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":4577,"type":1620,"author":3547,"provisional":3094,"depends":4575,"contact":3548,"extension":4578,"proposal":3094},519,"VK_QCOM_image_processing2",{"number":4580,"type":1620,"author":3547,"provisional":3094,"contact":3548,"extension":4581,"proposal":3094},511,"VK_QCOM_multiview_per_view_render_areas",{"number":4583,"type":1620,"author":3547,"provisional":3094,"depends":3288,"contact":3548,"extension":4584,"proposal":3094},489,"VK_QCOM_multiview_per_view_viewports",{"number":4586,"type":1620,"author":3547,"provisional":3094,"contact":3548,"extension":4587,"proposal":3094},172,"VK_QCOM_render_pass_shader_resolve",{"number":4589,"type":1620,"author":3547,"provisional":3094,"contact":3548,"extension":4590,"proposal":3094},302,"VK_QCOM_render_pass_store_ops",{"number":4592,"type":1620,"author":3547,"provisional":3094,"contact":3548,"extension":4593,"proposal":3094},283,"VK_QCOM_render_pass_transform",{"number":4595,"type":1620,"author":3547,"provisional":3094,"depends":4596,"contact":3548,"extension":4597,"proposal":3094},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":4599,"type":1620,"author":3547,"provisional":3094,"depends":3288,"contact":3548,"extension":4600,"proposal":463},485,"VK_QCOM_tile_properties",{"number":4602,"type":1620,"author":3547,"provisional":3094,"contact":3548,"extension":4603,"proposal":3094},521,"VK_QCOM_ycbcr_degamma",{"number":4605,"type":1620,"author":4606,"provisional":3094,"depends":3361,"platform":4607,"contact":4608,"extension":4609,"proposal":3094},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":4611,"type":3392,"author":4606,"provisional":3094,"depends":3505,"platform":4607,"contact":4612,"extension":4613,"proposal":3094},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":4615,"type":1620,"author":4616,"provisional":3094,"depends":3288,"contact":3491,"extension":4617,"proposal":3094},486,"SEC","VK_SEC_amigo_profiling",{"number":4619,"type":1620,"author":4620,"provisional":3094,"depends":3288,"specialuse":3463,"contact":3720,"extension":4621,"proposal":3094},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":4623,"type":1620,"author":4620,"promotedto":3685,"provisional":3094,"depends":3683,"specialuse":3463,"contact":3684,"extension":4624,"proposal":3094},352,"VK_VALVE_mutable_descriptor_type",1725732647839]