[{"data":1,"prerenderedAt":5945},["ShallowReactive",2],{"$flTTP1ACxoY3JWxDGBY-XekRsZsxpvIpMBaq215gW9ag":3,"$fGGa3jm2fyiZgwLdx4RmmiEvaouuONKLYoKH9T7IQulI":263,"$faZHkLaZmFtIrhNCsC_ZN7AEUnFgFJ1W-J0HzKlGaxDw":1866},[4,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,236,239,242,245,248,251,254,257,260],{"index":5,"title":6,"id":7,"appendix":8},0,"Preamble","preamble",false,{"index":10,"title":11,"id":12,"appendix":8},1,"Introduction","introduction",{"index":14,"title":15,"id":16,"appendix":8},2,"Fundamentals","fundamentals",{"index":18,"title":19,"id":20,"appendix":8},3,"Initialization","initialization",{"index":22,"title":23,"id":24,"appendix":8},4,"Devices and Queues","devsandqueues",{"index":26,"title":27,"id":28,"appendix":8},5,"Command Buffers","commandbuffers",{"index":30,"title":31,"id":32,"appendix":8},6,"Synchronization and Cache Control","synchronization",{"index":34,"title":35,"id":36,"appendix":8},7,"Render Pass","renderpass",{"index":38,"title":39,"id":40,"appendix":8},8,"Shaders","shaders",{"index":42,"title":43,"id":44,"appendix":8},9,"Pipelines","pipelines",{"index":46,"title":47,"id":48,"appendix":8},10,"Memory Allocation","memory",{"index":50,"title":51,"id":52,"appendix":8},11,"Resource Creation","resources",{"index":54,"title":55,"id":56,"appendix":8},12,"Images","images",{"index":58,"title":59,"id":60,"appendix":8},13,"Samplers","samplers",{"index":62,"title":63,"id":64,"appendix":8},14,"Resource Descriptors","descriptors",{"index":66,"title":67,"id":68,"appendix":8},15,"Descriptor Heaps","descriptorheaps",{"index":70,"title":71,"id":72,"appendix":8},16,"Shader Interfaces","interfaces",{"index":74,"title":75,"id":76,"appendix":8},17,"Image Operations","textures",{"index":78,"title":79,"id":80,"appendix":8},18,"Fragment Density Map Operations","fragmentdensitymapops",{"index":82,"title":83,"id":84,"appendix":8},19,"Tensor Operations","tensors",{"index":86,"title":87,"id":88,"appendix":8},20,"Queries","queries",{"index":90,"title":91,"id":92,"appendix":8},21,"Clear Commands","clears",{"index":94,"title":95,"id":96,"appendix":8},22,"Copy Commands","copies",{"index":98,"title":99,"id":100,"appendix":8},23,"Drawing Commands","drawing",{"index":102,"title":103,"id":104,"appendix":8},24,"Fixed-Function Vertex Processing","fxvertex",{"index":106,"title":107,"id":108,"appendix":8},25,"Tessellation","tessellation",{"index":110,"title":111,"id":112,"appendix":8},26,"Geometry Shading","geometry",{"index":114,"title":115,"id":116,"appendix":8},27,"Mesh Shading","mesh",{"index":118,"title":119,"id":120,"appendix":8},28,"Cluster Culling Shading","cluster-culling",{"index":122,"title":123,"id":124,"appendix":8},29,"Fixed-Function Vertex Post-Processing","vertexpostproc",{"index":126,"title":127,"id":128,"appendix":8},30,"Rasterization","primsrast",{"index":130,"title":131,"id":132,"appendix":8},31,"Fragment Operations","fragops",{"index":134,"title":135,"id":136,"appendix":8},32,"The Framebuffer","framebuffer",{"index":138,"title":139,"id":140,"appendix":8},33,"Dispatching Commands","dispatch",{"index":142,"title":143,"id":144,"appendix":8},34,"Device-Generated Commands","device-generated-commands",{"index":146,"title":147,"id":148,"appendix":8},35,"Sparse Resources","sparsememory",{"index":150,"title":151,"id":152,"appendix":8},36,"Window System Integration (WSI)","wsi",{"index":154,"title":155,"id":156,"appendix":8},37,"Deferred Host Operations","deferred-host-operations",{"index":158,"title":159,"id":160,"appendix":8},38,"Private Data","private-data",{"index":162,"title":163,"id":164,"appendix":8},39,"Acceleration Structures","acceleration-structure",{"index":166,"title":167,"id":168,"appendix":8},40,"Compressed triangle data","compressed-triangle-data",{"index":170,"title":171,"id":172,"appendix":8},41,"Micromap","micromap",{"index":174,"title":175,"id":176,"appendix":8},42,"Ray Traversal","ray-traversal",{"index":178,"title":179,"id":180,"appendix":8},43,"Ray Tracing","ray-tracing",{"index":182,"title":183,"id":184,"appendix":8},44,"Memory Decompression","memory-decompression",{"index":186,"title":187,"id":188,"appendix":8},45,"Video Coding","video-coding",{"index":190,"title":191,"id":192,"appendix":8},46,"Optical Flow","opticalflow",{"index":194,"title":195,"id":196,"appendix":8},47,"Execution Graphs","executiongraphs",{"index":198,"title":199,"id":200,"appendix":8},48,"External Compute Queues","external-compute-queues",{"index":202,"title":203,"id":204,"appendix":8},49,"Data graphs","graphs",{"index":206,"title":207,"id":208,"appendix":8},50,"Extending Vulkan","extendingvulkan",{"index":210,"title":211,"id":212,"appendix":8},51,"Features","features",{"index":214,"title":215,"id":216,"appendix":8},52,"Limits","limits",{"index":218,"title":219,"id":220,"appendix":8},53,"Formats","formats",{"index":222,"title":223,"id":224,"appendix":8},54,"Additional Capabilities","capabilities",{"index":226,"title":227,"id":228,"appendix":8},55,"Debugging","debugging",{"index":5,"title":230,"id":231,"appendix":232},"Vulkan Environment for SPIR-V","spirvenv",true,{"index":10,"title":234,"id":235,"appendix":232},"Memory Model","memory-model",{"index":14,"title":237,"id":238,"appendix":232},"Compressed Image Formats","compressed_image_formats",{"index":18,"title":240,"id":241,"appendix":232},"Core Revisions (Informative)","versions",{"index":22,"title":243,"id":244,"appendix":232},"Layers & Extensions (Informative)","extensions",{"index":26,"title":246,"id":247,"appendix":232},"Vulkan Roadmap Milestones","roadmap",{"index":30,"title":249,"id":250,"appendix":232},"Legacy and Superseded Functionality","legacy",{"index":34,"title":252,"id":253,"appendix":232},"API Boilerplate","boilerplate",{"index":38,"title":255,"id":256,"appendix":232},"Invariance","invariance",{"index":42,"title":258,"id":259,"appendix":232},"Lexicon","lexicon",{"index":46,"title":261,"id":262,"appendix":232},"Credits (Informative)","credits",[264,272,277,282,287,290,295,298,301,304,308,312,315,318,321,323,325,328,331,335,337,341,343,346,348,351,359,363,369,373,376,381,385,389,393,395,399,402,406,411,418,424,426,430,436,439,443,448,452,456,460,464,467,470,473,479,482,485,489,493,498,502,505,507,512,515,520,526,529,533,537,540,546,549,553,556,560,563,567,570,574,578,581,586,591,594,597,602,605,609,614,619,623,627,631,635,640,644,648,651,654,658,661,664,667,671,676,680,683,687,692,696,701,704,708,711,716,720,724,727,731,736,739,744,748,751,754,758,762,766,771,775,778,783,787,792,796,799,803,807,811,814,816,821,825,829,832,835,838,841,844,847,850,853,856,859,862,866,870,873,876,879,882,885,888,891,894,898,902,907,910,915,918,921,924,927,929,933,938,942,946,950,952,956,959,962,969,973,977,981,987,989,993,997,1000,1003,1007,1012,1017,1023,1027,1029,1033,1036,1041,1045,1050,1054,1058,1060,1063,1066,1068,1072,1075,1078,1082,1087,1091,1095,1097,1102,1106,1110,1112,1114,1117,1119,1122,1125,1129,1133,1135,1139,1142,1146,1149,1151,1154,1158,1160,1164,1167,1170,1173,1177,1180,1183,1186,1189,1191,1194,1198,1201,1203,1206,1208,1210,1212,1215,1219,1222,1225,1229,1233,1236,1239,1241,1244,1246,1248,1252,1256,1259,1262,1266,1269,1274,1279,1281,1285,1289,1292,1296,1299,1301,1305,1309,1311,1313,1318,1321,1325,1328,1331,1334,1337,1339,1342,1346,1349,1352,1356,1359,1363,1367,1370,1373,1376,1379,1382,1386,1389,1392,1394,1396,1401,1402,1405,1409,1412,1415,1418,1421,1424,1426,1430,1433,1436,1439,1443,1447,1449,1451,1454,1458,1460,1464,1467,1469,1472,1476,1480,1482,1486,1489,1492,1495,1498,1502,1507,1512,1516,1522,1526,1528,1532,1536,1539,1542,1546,1550,1554,1557,1560,1563,1567,1569,1574,1578,1580,1586,1589,1592,1595,1599,1602,1606,1611,1614,1617,1621,1623,1626,1628,1631,1633,1635,1638,1641,1644,1647,1650,1653,1655,1659,1663,1667,1671,1674,1677,1681,1684,1688,1692,1696,1698,1702,1706,1710,1713,1716,1719,1722,1725,1728,1731,1734,1737,1740,1743,1746,1749,1752,1755,1760,1763,1766,1769,1772,1776,1779,1783,1787,1790,1793,1796,1799,1802,1805,1809,1814,1817,1820,1823,1829,1833,1837,1841,1846,1850,1854,1857,1861],{"number":265,"type":266,"author":267,"provisional":232,"depends":268,"platform":269,"contact":270,"extension":271,"proposal":232},479,"device","AMD","VK_KHR_acceleration_structure+(VK_KHR_maintenance5,VK_VERSION_1_4)","provisional","Stu Smith @stu-s","VK_AMDX_dense_geometry_format",{"number":273,"type":266,"author":267,"provisional":232,"depends":274,"platform":269,"contact":275,"extension":276,"proposal":232},135,"((VK_KHR_synchronization2+VK_KHR_spirv_1_4+VK_EXT_extended_dynamic_state),VK_VERSION_1_3)+VK_KHR_maintenance5+VK_KHR_pipeline_library","Tobias Hector @tobski","VK_AMDX_shader_enqueue",{"number":278,"type":266,"author":267,"provisional":8,"depends":279,"contact":280,"extension":281,"proposal":232},477,"VK_KHR_get_physical_device_properties2,VK_VERSION_1_1","Stu Smith","VK_AMD_anti_lag",{"number":283,"type":266,"author":267,"provisional":8,"specialuse":284,"contact":285,"extension":286,"proposal":8},180,"devtools","Daniel Rakos @drakos-amd","VK_AMD_buffer_marker",{"number":288,"type":266,"author":267,"provisional":8,"depends":279,"contact":275,"extension":289,"proposal":8},230,"VK_AMD_device_coherent_memory",{"number":291,"type":266,"author":267,"provisional":8,"depends":292,"contact":293,"extension":294,"proposal":8},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":142,"type":266,"author":267,"promotedto":296,"provisional":8,"contact":285,"extension":297,"proposal":8},"VK_KHR_draw_indirect_count","VK_AMD_draw_indirect_count",{"number":110,"type":266,"author":267,"provisional":8,"contact":299,"extension":300,"proposal":8},"Dominik Witczak @dominikwitczakamd","VK_AMD_gcn_shader",{"number":154,"type":266,"author":267,"deprecatedby":302,"provisional":8,"contact":299,"extension":303,"proposal":8},"VK_KHR_shader_float16_int8","VK_AMD_gpu_shader_half_float",{"number":305,"type":266,"author":267,"deprecatedby":302,"provisional":8,"contact":306,"extension":307,"proposal":8},133,"Qun Lin @linqun","VK_AMD_gpu_shader_int16",{"number":309,"type":266,"author":267,"provisional":8,"contact":310,"extension":311,"proposal":8},190,"Martin Dinkov @mdinkov","VK_AMD_memory_overallocation_behavior",{"number":313,"type":266,"author":267,"provisional":8,"contact":293,"extension":314,"proposal":8},137,"VK_AMD_mixed_attachment_samples",{"number":150,"type":266,"author":267,"obsoletedby":316,"provisional":8,"contact":293,"extension":317,"proposal":8},"VK_KHR_maintenance1","VK_AMD_negative_viewport_height",{"number":319,"type":266,"author":267,"provisional":8,"contact":293,"extension":320,"proposal":8},184,"VK_AMD_pipeline_compiler_control",{"number":82,"type":266,"author":267,"provisional":8,"contact":285,"extension":322,"proposal":8},"VK_AMD_rasterization_order",{"number":158,"type":266,"author":267,"provisional":8,"contact":299,"extension":324,"proposal":8},"VK_AMD_shader_ballot",{"number":326,"type":266,"author":267,"provisional":8,"depends":279,"contact":310,"extension":327,"proposal":8},186,"VK_AMD_shader_core_properties",{"number":329,"type":266,"author":267,"provisional":8,"depends":327,"contact":293,"extension":330,"proposal":8},228,"VK_AMD_shader_core_properties2",{"number":332,"type":266,"author":333,"provisional":8,"depends":279,"contact":275,"extension":334,"proposal":232},322,"EXT","VK_AMD_shader_early_and_late_fragment_tests",{"number":94,"type":266,"author":267,"provisional":8,"contact":306,"extension":336,"proposal":8},"VK_AMD_shader_explicit_vertex_parameter",{"number":338,"type":266,"author":267,"provisional":8,"contact":339,"extension":340,"proposal":8},138,"Aaron Hagan @AaronHaganAMD","VK_AMD_shader_fragment_mask",{"number":194,"type":266,"author":267,"provisional":8,"contact":299,"extension":342,"proposal":8},"VK_AMD_shader_image_load_store_lod",{"number":178,"type":266,"author":267,"provisional":8,"specialuse":284,"contact":344,"extension":345,"proposal":8},"Jaakko Konttinen @jaakkoamd","VK_AMD_shader_info",{"number":90,"type":266,"author":267,"provisional":8,"contact":306,"extension":347,"proposal":8},"VK_AMD_shader_trinary_minmax",{"number":174,"type":266,"author":267,"provisional":8,"depends":279,"contact":349,"extension":350,"proposal":8},"Rex Xu @amdrexu","VK_AMD_texture_gather_bias_lod",{"number":352,"type":266,"author":353,"provisional":8,"depends":354,"platform":355,"specialuse":356,"contact":357,"extension":358,"proposal":232},469,"ANDROID","VK_ANDROID_external_memory_android_hardware_buffer","android","glemulation","Chris Forbes @chrisforbes","VK_ANDROID_external_format_resolve",{"number":360,"type":266,"author":353,"provisional":8,"depends":361,"platform":355,"contact":362,"extension":354,"proposal":8},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":364,"type":266,"author":365,"provisional":8,"depends":366,"contact":367,"extension":368,"proposal":8},508,"ARM","VK_VERSION_1_3+VK_KHR_maintenance5+VK_KHR_deferred_host_operations","Kevin Petit @kpet","VK_ARM_data_graph",{"number":370,"type":266,"author":365,"provisional":8,"depends":279,"contact":371,"extension":372,"proposal":8},610,"Jan-Harald Fredriksen @janharaldfredriksen-arm","VK_ARM_format_pack",{"number":374,"type":266,"author":365,"provisional":8,"depends":279,"specialuse":284,"contact":371,"extension":375,"proposal":232},606,"VK_ARM_performance_counters_by_region",{"number":377,"type":266,"author":365,"provisional":8,"depends":378,"contact":379,"extension":380,"proposal":232},597,"VK_EXT_opacity_micromap","Mathieu Robart @mathieurobart-arm","VK_ARM_pipeline_opacity_micromap",{"number":382,"type":266,"author":365,"promotedto":383,"provisional":8,"depends":279,"contact":371,"extension":384,"proposal":8},343,"VK_EXT_rasterization_order_attachment_access","VK_ARM_rasterization_order_attachment_access",{"number":386,"type":266,"author":365,"provisional":8,"depends":387,"contact":371,"extension":388,"proposal":232},425,"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_ARM_render_pass_striped",{"number":390,"type":266,"author":365,"provisional":8,"depends":391,"contact":367,"extension":392,"proposal":8},418,"VK_ARM_shader_core_builtins","VK_ARM_scheduling_controls",{"number":394,"type":266,"author":365,"provisional":8,"depends":279,"contact":367,"extension":391,"proposal":8},498,{"number":396,"type":266,"author":365,"provisional":8,"depends":397,"contact":371,"extension":398,"proposal":8},416,"VK_VERSION_1_1","VK_ARM_shader_core_properties",{"number":400,"type":266,"author":365,"provisional":8,"depends":279,"specialuse":284,"contact":371,"extension":401,"proposal":232},608,"VK_ARM_shader_instrumentation",{"number":403,"type":266,"author":365,"provisional":8,"depends":404,"contact":367,"extension":405,"proposal":232},461,"VK_VERSION_1_3","VK_ARM_tensors",{"number":407,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":408,"contact":409,"extension":410,"proposal":8},341,"vulkansc","Joshua Ashton @Joshua-Ashton","VK_EXT_4444_formats",{"number":412,"type":413,"author":333,"provisional":8,"depends":414,"ratified":415,"contact":416,"extension":417,"proposal":8},286,"instance","VK_EXT_direct_mode_display","vulkan","Drew DeVault sir@cmpwn.com","VK_EXT_acquire_drm_display",{"number":419,"type":413,"author":420,"provisional":8,"depends":414,"platform":421,"ratified":415,"contact":422,"extension":423,"proposal":8},90,"NV","xlib_xrandr","James Jones @cubanismo","VK_EXT_acquire_xlib_display",{"extension":425,"proposal":8},"VK_EXT_application_parameters",{"number":427,"type":266,"author":365,"provisional":8,"depends":279,"ratified":428,"contact":371,"extension":429,"proposal":8},68,"vulkan,vulkansc","VK_EXT_astc_decode_mode",{"number":431,"type":266,"author":333,"provisional":8,"depends":432,"ratified":415,"specialuse":433,"contact":434,"extension":435,"proposal":232},525,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_attachment_feedback_loop_layout","glemulation,d3demulation","Mike Blumenkrantz @zmike","VK_EXT_attachment_feedback_loop_dynamic_state",{"number":437,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":433,"contact":409,"extension":438,"proposal":232},340,"VK_EXT_attachment_feedback_loop_layout",{"number":440,"type":266,"author":420,"provisional":8,"depends":279,"ratified":428,"contact":441,"extension":442,"proposal":8},149,"Jeff Bolz @jeffbolznv","VK_EXT_blend_operation_advanced",{"number":444,"type":266,"author":333,"provisional":8,"depends":445,"ratified":415,"specialuse":433,"contact":446,"extension":447,"proposal":8},412,"VK_EXT_custom_border_color","Piers Daniell @pdaniell-nv","VK_EXT_border_color_swizzle",{"number":449,"type":266,"author":420,"deprecatedby":450,"provisional":8,"depends":279,"contact":441,"extension":451,"proposal":8},245,"VK_KHR_buffer_device_address","VK_EXT_buffer_device_address",{"number":453,"type":266,"author":333,"promotedto":454,"provisional":8,"depends":279,"contact":285,"extension":455,"proposal":232},185,"VK_KHR_calibrated_timestamps","VK_EXT_calibrated_timestamps",{"number":457,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":458,"extension":459,"proposal":8},382,"Sharif Elcott @selcott","VK_EXT_color_write_enable",{"number":461,"type":266,"author":420,"provisional":8,"depends":279,"ratified":415,"contact":462,"extension":463,"proposal":8},82,"Vikram Kushwaha @vkushwaha","VK_EXT_conditional_rendering",{"number":465,"type":266,"author":420,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":466,"proposal":8},102,"VK_EXT_conservative_rasterization",{"number":468,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"specialuse":433,"contact":469,"extension":445,"proposal":8},288,"Liam Middlebrook @liam-middlebrook",{"number":471,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":434,"extension":472,"proposal":232},629,"VK_EXT_custom_resolve",{"number":98,"type":266,"author":474,"promotedto":475,"provisional":8,"depends":476,"specialuse":228,"contact":477,"extension":478,"proposal":8},"Baldur Karlsson","VK_EXT_debug_utils","VK_EXT_debug_report","Baldur Karlsson @baldurk","VK_EXT_debug_marker",{"number":54,"type":413,"author":480,"deprecatedby":475,"provisional":8,"specialuse":228,"contact":481,"extension":476,"proposal":8},"GOOGLE","Courtney Goeltzenleuchter @courtney-g",{"number":483,"type":413,"author":333,"provisional":8,"ratified":428,"specialuse":228,"contact":484,"extension":475,"proposal":8},129,"Mark Young @marky-lunarg",{"number":486,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":487,"contact":409,"extension":488,"proposal":232},284,"d3demulation","VK_EXT_depth_bias_control",{"number":490,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":491,"extension":492,"proposal":232},583,"Jules Blok @jules","VK_EXT_depth_clamp_control",{"number":494,"type":266,"author":333,"promotedto":495,"provisional":8,"depends":279,"ratified":415,"contact":496,"extension":497,"proposal":8},422,"VK_KHR_depth_clamp_zero_one","Graeme Leese @gnl21","VK_EXT_depth_clamp_zero_one",{"number":499,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":356,"contact":500,"extension":501,"proposal":8},356,"Shahbaz Youssefi @syoussefi","VK_EXT_depth_clip_control",{"number":503,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"specialuse":487,"contact":446,"extension":504,"proposal":8},103,"VK_EXT_depth_clip_enable",{"number":62,"type":266,"author":420,"provisional":8,"ratified":428,"contact":446,"extension":506,"proposal":8},"VK_EXT_depth_range_unrestricted",{"number":508,"type":266,"author":333,"deprecatedby":509,"provisional":8,"depends":510,"ratified":415,"contact":275,"extension":511,"proposal":232},317,"VK_EXT_descriptor_heap","((((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":513,"type":266,"author":333,"provisional":8,"depends":514,"ratified":415,"contact":275,"extension":509,"proposal":232},136,"VK_KHR_maintenance5+(VK_KHR_buffer_device_address,VK_VERSION_1_2)",{"number":516,"type":266,"author":420,"promotedto":517,"provisional":8,"depends":518,"ratified":415,"contact":441,"extension":519,"proposal":8},162,"VK_VERSION_1_2","(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance3),VK_VERSION_1_1","VK_EXT_descriptor_indexing",{"number":521,"type":266,"author":333,"provisional":8,"depends":522,"ratified":415,"specialuse":523,"contact":524,"extension":525,"proposal":8},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":527,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":524,"extension":528,"proposal":232},342,"VK_EXT_device_fault",{"number":530,"type":266,"author":333,"provisional":8,"depends":531,"ratified":415,"contact":434,"extension":532,"proposal":232},573,"((VK_KHR_buffer_device_address,VK_VERSION_1_2)+VK_KHR_maintenance5),VK_VERSION_1_3","VK_EXT_device_generated_commands",{"number":534,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":284,"contact":535,"extension":536,"proposal":8},285,"Yiwei Zhang @zzyiwei","VK_EXT_device_memory_report",{"number":538,"type":413,"author":420,"provisional":8,"depends":539,"ratified":428,"contact":422,"extension":414,"proposal":8},89,"VK_KHR_display",{"number":541,"type":413,"author":333,"provisional":8,"depends":542,"platform":543,"ratified":415,"contact":544,"extension":545,"proposal":8},347,"VK_KHR_surface","directfb","Nicolas Caramelli @caramelli","VK_EXT_directfb_surface",{"number":547,"type":266,"author":420,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":548,"proposal":8},100,"VK_EXT_discard_rectangles",{"number":550,"type":266,"author":420,"provisional":8,"depends":551,"ratified":428,"contact":422,"extension":552,"proposal":8},92,"VK_EXT_display_surface_counter+VK_KHR_swapchain","VK_EXT_display_control",{"number":554,"type":413,"author":420,"provisional":8,"depends":539,"ratified":428,"contact":422,"extension":555,"proposal":8},91,"VK_EXT_display_surface_counter",{"number":557,"type":266,"author":333,"provisional":8,"depends":558,"ratified":415,"contact":446,"extension":559,"proposal":232},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":561,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":562,"proposal":8},268,"VK_EXT_extended_dynamic_state",{"number":564,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":428,"contact":565,"extension":566,"proposal":8},378,"Vikram Kushwaha @vkushwaha-nv","VK_EXT_extended_dynamic_state2",{"number":568,"type":266,"author":420,"provisional":8,"depends":279,"ratified":415,"contact":446,"extension":569,"proposal":232},456,"VK_EXT_extended_dynamic_state3",{"number":571,"type":266,"author":333,"provisional":8,"depends":572,"ratified":415,"contact":422,"extension":573,"proposal":232},454,"VK_KHR_external_memory,VK_VERSION_1_1","VK_EXT_external_memory_acquire_unmodified",{"number":575,"type":266,"author":333,"provisional":8,"depends":576,"ratified":428,"contact":422,"extension":577,"proposal":8},126,"VK_KHR_external_memory_fd","VK_EXT_external_memory_dma_buf",{"number":579,"type":266,"author":333,"provisional":8,"depends":572,"ratified":428,"contact":285,"extension":580,"proposal":8},179,"VK_EXT_external_memory_host",{"number":582,"type":266,"author":333,"provisional":8,"depends":572,"platform":583,"ratified":415,"contact":584,"extension":585,"proposal":232},603,"metal","Aitor Camacho Larrondo @aitor-lunarg","VK_EXT_external_memory_metal",{"number":587,"type":266,"author":588,"provisional":8,"ratified":428,"contact":589,"extension":590,"proposal":8},171,"QCOM","Matthew Netsch @mnetsch","VK_EXT_filter_cubic",{"number":592,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":589,"extension":593,"proposal":8},219,"VK_EXT_fragment_density_map",{"number":595,"type":266,"author":333,"provisional":8,"depends":593,"ratified":415,"contact":589,"extension":596,"proposal":8},333,"VK_EXT_fragment_density_map2",{"number":598,"type":266,"author":333,"provisional":8,"depends":599,"ratified":415,"contact":600,"extension":601,"proposal":232},620,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map+(VK_KHR_create_renderpass2,VK_VERSION_1_2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)","Connor Abbott @cwabbott0","VK_EXT_fragment_density_map_offset",{"number":603,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":604,"proposal":8},252,"VK_EXT_fragment_shader_interlock",{"number":606,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":607,"extension":608,"proposal":232},376,"James Fitzpatrick @jamesfitzpatrick","VK_EXT_frame_boundary",{"number":610,"type":266,"author":333,"provisional":8,"depends":611,"platform":612,"ratified":415,"contact":422,"extension":613,"proposal":8},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":615,"type":266,"author":333,"promotedto":616,"provisional":8,"contact":617,"extension":618,"proposal":8},175,"VK_KHR_global_priority","Andres Rodriguez @lostgoat","VK_EXT_global_priority",{"number":620,"type":266,"author":333,"promotedto":616,"provisional":8,"depends":621,"contact":535,"extension":622,"proposal":8},389,"VK_EXT_global_priority+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_global_priority_query",{"number":624,"type":266,"author":267,"provisional":8,"depends":625,"ratified":415,"contact":275,"extension":626,"proposal":232},321,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_pipeline_library","VK_EXT_graphics_pipeline_library",{"number":628,"type":266,"author":480,"provisional":8,"depends":629,"ratified":428,"contact":481,"extension":630,"proposal":8},106,"VK_KHR_swapchain","VK_EXT_hdr_metadata",{"number":632,"type":413,"author":333,"provisional":8,"depends":542,"ratified":428,"contact":633,"extension":634,"proposal":8},257,"Lisa Wu @chengtianww","VK_EXT_headless_surface",{"number":636,"type":266,"author":333,"promotedto":637,"provisional":8,"depends":638,"ratified":415,"contact":500,"extension":639,"proposal":232},271,"VK_VERSION_1_4","((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":641,"type":266,"author":333,"promotedto":517,"provisional":8,"depends":279,"contact":642,"extension":643,"proposal":8},262,"Bas Nieuwenhuizen @BNieuwenhuizen","VK_EXT_host_query_reset",{"number":645,"type":266,"author":333,"provisional":8,"depends":646,"ratified":415,"specialuse":356,"contact":434,"extension":647,"proposal":8},394,"(VK_KHR_maintenance1+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","VK_EXT_image_2d_view_of_3d",{"number":649,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":371,"extension":650,"proposal":232},339,"VK_EXT_image_compression_control",{"number":652,"type":266,"author":333,"provisional":8,"depends":650,"ratified":415,"contact":371,"extension":653,"proposal":8},438,"VK_EXT_image_compression_control_swapchain",{"number":655,"type":266,"author":333,"provisional":8,"depends":656,"ratified":428,"contact":422,"extension":657,"proposal":8},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":659,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":408,"contact":496,"extension":660,"proposal":8},336,"VK_EXT_image_robustness",{"number":662,"type":266,"author":333,"provisional":8,"depends":646,"ratified":415,"specialuse":487,"contact":434,"extension":663,"proposal":232},419,"VK_EXT_image_sliced_view_of_3d",{"number":665,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":409,"extension":666,"proposal":8},392,"VK_EXT_image_view_min_lod",{"number":668,"type":266,"author":333,"promotedto":669,"provisional":8,"depends":279,"contact":446,"extension":670,"proposal":8},266,"VK_KHR_index_type_uint8","VK_EXT_index_type_uint8",{"number":672,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":673,"contact":674,"extension":675,"proposal":8},139,"(VK_KHR_get_physical_device_properties2+VK_KHR_maintenance1),VK_VERSION_1_1","Daniel Rakos @aqnuep","VK_EXT_inline_uniform_block",{"number":677,"type":413,"author":333,"provisional":8,"ratified":428,"contact":678,"extension":679,"proposal":232},497,"Christophe Riccio @christophe","VK_EXT_layer_settings",{"number":681,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":356,"contact":500,"extension":682,"proposal":232},466,"VK_EXT_legacy_dithering",{"number":684,"type":266,"author":333,"provisional":8,"depends":685,"ratified":415,"specialuse":356,"contact":434,"extension":686,"proposal":232},496,"VK_EXT_vertex_input_dynamic_state","VK_EXT_legacy_vertex_attributes",{"number":688,"type":266,"author":333,"promotedto":689,"provisional":8,"depends":279,"specialuse":690,"contact":441,"extension":691,"proposal":8},260,"VK_KHR_line_rasterization","cadsupport","VK_EXT_line_rasterization",{"number":693,"type":266,"author":333,"promotedto":694,"provisional":8,"ratified":415,"contact":500,"extension":695,"proposal":8},401,"VK_KHR_load_store_op_none","VK_EXT_load_store_op_none",{"number":697,"type":266,"author":333,"provisional":8,"depends":698,"ratified":415,"contact":699,"extension":700,"proposal":232},273,"VK_KHR_map_memory2,VK_VERSION_1_4","Faith Ekstrand @gfxstrand","VK_EXT_map_memory_placed",{"number":702,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":441,"extension":703,"proposal":8},238,"VK_EXT_memory_budget",{"number":705,"type":266,"author":333,"provisional":8,"depends":706,"ratified":415,"contact":565,"extension":707,"proposal":232},551,"VK_KHR_get_physical_device_properties2+VK_KHR_buffer_device_address","VK_EXT_memory_decompression",{"number":709,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":710,"proposal":8},239,"VK_EXT_memory_priority",{"number":712,"type":266,"author":333,"provisional":8,"depends":713,"ratified":415,"contact":714,"extension":715,"proposal":232},329,"VK_KHR_spirv_1_4,VK_VERSION_1_2","Christoph Kubisch @pixeljetstream","VK_EXT_mesh_shader",{"number":717,"type":266,"author":333,"provisional":8,"platform":583,"ratified":415,"contact":718,"extension":719,"proposal":232},312,"Bill Hollings @billhollings","VK_EXT_metal_objects",{"number":721,"type":413,"author":333,"provisional":8,"depends":542,"platform":583,"ratified":415,"contact":722,"extension":723,"proposal":8},218,"Dzmitry Malyshau @kvark","VK_EXT_metal_surface",{"number":725,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":434,"extension":726,"proposal":8},393,"VK_EXT_multi_draw",{"number":728,"type":266,"author":333,"provisional":8,"depends":729,"ratified":415,"contact":500,"extension":730,"proposal":232},377,"(VK_KHR_create_renderpass2+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_EXT_multisampled_render_to_single_sampled",{"number":732,"type":266,"author":333,"provisional":8,"depends":733,"ratified":415,"specialuse":487,"contact":734,"extension":735,"proposal":232},495,"VK_KHR_maintenance3,VK_VERSION_1_1","Joshua Ashton @Joshua-Ashton,Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_mutable_descriptor_type",{"number":737,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":446,"extension":738,"proposal":8},452,"VK_EXT_nested_command_buffer",{"number":740,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":741,"contact":742,"extension":743,"proposal":232},423,"d3demulation,glemulation","Georg Lehmann @DadSchoorse","VK_EXT_non_seamless_cube_map",{"number":745,"type":266,"author":333,"provisional":8,"depends":746,"ratified":415,"contact":747,"extension":378,"proposal":232},397,"VK_KHR_acceleration_structure+(VK_KHR_synchronization2,VK_VERSION_1_3)","Christoph Kubisch @pixeljetstream, Eric Werness",{"number":749,"type":266,"author":333,"provisional":8,"depends":710,"ratified":415,"contact":446,"extension":750,"proposal":8},413,"VK_EXT_pageable_device_local_memory",{"number":752,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":293,"extension":753,"proposal":8},213,"VK_EXT_pci_bus_info",{"number":755,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":756,"extension":757,"proposal":8},354,"Simon Ser @emersion","VK_EXT_physical_device_drm",{"number":759,"type":266,"author":267,"promotedto":404,"provisional":8,"depends":279,"contact":760,"extension":761,"proposal":8},298,"Gregory Grebe @grgrebe_amd","VK_EXT_pipeline_creation_cache_control",{"number":763,"type":266,"author":480,"promotedto":404,"provisional":8,"specialuse":284,"contact":764,"extension":765,"proposal":8},193,"Jean-Francois Roy @jfroy","VK_EXT_pipeline_creation_feedback",{"number":767,"type":266,"author":333,"provisional":8,"depends":768,"ratified":415,"contact":769,"extension":770,"proposal":232},499,"VK_KHR_ray_tracing_pipeline+VK_KHR_pipeline_library","Hans-Kristian Arntzen @HansKristian-Work","VK_EXT_pipeline_library_group_handles",{"number":772,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":773,"extension":774,"proposal":8},373,"Mukund Keshava @mkeshavanv","VK_EXT_pipeline_properties",{"number":776,"type":266,"author":333,"promotedto":637,"provisional":8,"depends":279,"ratified":415,"contact":500,"extension":777,"proposal":232},467,"VK_EXT_pipeline_protected_access",{"number":779,"type":266,"author":780,"promotedto":637,"provisional":8,"depends":279,"ratified":415,"contact":781,"extension":782,"proposal":8},69,"IMG","Jarred Davies","VK_EXT_pipeline_robustness",{"number":784,"type":266,"author":420,"provisional":8,"ratified":428,"contact":785,"extension":786,"proposal":8},156,"Daniel Koch @dgkoch","VK_EXT_post_depth_coverage",{"number":788,"type":266,"author":333,"promotedto":789,"provisional":8,"depends":629,"ratified":415,"contact":790,"extension":791,"proposal":232},362,"VK_KHR_present_mode_fifo_latest_ready","Lionel Duc @nvlduc","VK_EXT_present_mode_fifo_latest_ready",{"number":793,"type":266,"author":333,"provisional":8,"depends":794,"ratified":415,"contact":790,"extension":795,"proposal":232},209,"VK_KHR_swapchain+VK_KHR_present_id2+VK_KHR_get_surface_capabilities2+VK_KHR_calibrated_timestamps","VK_EXT_present_timing",{"number":797,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":356,"contact":500,"extension":798,"proposal":8},357,"VK_EXT_primitive_topology_list_restart",{"number":800,"type":266,"author":333,"provisional":8,"depends":801,"ratified":415,"specialuse":356,"contact":500,"extension":802,"proposal":232},383,"VK_EXT_transform_feedback","VK_EXT_primitives_generated_query",{"number":804,"type":266,"author":420,"promotedto":404,"provisional":8,"depends":279,"contact":805,"extension":806,"proposal":8},296,"Matthew Rusch @mattruschnv","VK_EXT_private_data",{"number":808,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"specialuse":356,"contact":809,"extension":810,"proposal":8},255,"Jesse Hall @jessehall","VK_EXT_provoking_vertex",{"number":812,"type":266,"author":333,"provisional":8,"depends":572,"ratified":428,"contact":422,"extension":813,"proposal":8},127,"VK_EXT_queue_family_foreign",{"number":815,"type":266,"author":365,"provisional":8,"depends":279,"ratified":415,"contact":371,"extension":383,"proposal":232},464,{"number":817,"type":266,"author":333,"provisional":8,"depends":818,"ratified":415,"contact":819,"extension":820,"proposal":232},582,"VK_KHR_ray_tracing_pipeline","Eric Werness @ewerness-nv","VK_EXT_ray_tracing_invocation_reorder",{"number":822,"type":266,"author":333,"provisional":8,"depends":823,"ratified":415,"contact":371,"extension":824,"proposal":8},345,"VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1","VK_EXT_rgba10x6_formats",{"number":826,"type":266,"author":333,"promotedto":827,"provisional":8,"depends":279,"ratified":428,"contact":469,"extension":828,"proposal":8},287,"VK_KHR_robustness2","VK_EXT_robustness2",{"number":830,"type":266,"author":267,"provisional":8,"depends":279,"ratified":428,"contact":285,"extension":831,"proposal":8},144,"VK_EXT_sample_locations",{"number":833,"type":266,"author":420,"promotedto":517,"provisional":8,"depends":279,"contact":441,"extension":834,"proposal":8},131,"VK_EXT_sampler_filter_minmax",{"number":836,"type":266,"author":333,"promotedto":517,"provisional":8,"depends":279,"contact":275,"extension":837,"proposal":8},222,"VK_EXT_scalar_block_layout",{"number":839,"type":266,"author":333,"promotedto":517,"provisional":8,"contact":285,"extension":840,"proposal":8},247,"VK_EXT_separate_stencil_usage",{"number":842,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":843,"proposal":232},628,"VK_EXT_shader_64bit_indexing",{"number":845,"type":266,"author":420,"provisional":8,"depends":279,"ratified":428,"contact":565,"extension":846,"proposal":8},261,"VK_EXT_shader_atomic_float",{"number":848,"type":266,"author":333,"provisional":8,"depends":846,"ratified":415,"contact":699,"extension":849,"proposal":8},274,"VK_EXT_shader_atomic_float2",{"number":851,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":408,"contact":441,"extension":852,"proposal":8},277,"VK_EXT_shader_demote_to_helper_invocation",{"number":854,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":855,"proposal":232},568,"VK_EXT_shader_float8",{"number":857,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":275,"extension":858,"proposal":8},235,"VK_EXT_shader_image_atomic_int64",{"number":860,"type":266,"author":333,"provisional":8,"depends":517,"ratified":415,"contact":441,"extension":861,"proposal":232},636,"VK_EXT_shader_long_vector",{"number":863,"type":266,"author":333,"provisional":8,"depends":864,"ratified":415,"contact":769,"extension":865,"proposal":232},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":867,"type":266,"author":333,"provisional":8,"depends":558,"ratified":415,"contact":868,"extension":869,"proposal":232},483,"Daniel Story @daniel-story","VK_EXT_shader_object",{"number":871,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":872,"proposal":232},565,"VK_EXT_shader_replicated_composites",{"number":874,"type":266,"author":333,"provisional":8,"ratified":428,"contact":299,"extension":875,"proposal":8},141,"VK_EXT_shader_stencil_export",{"number":877,"type":266,"author":420,"deprecatedby":517,"provisional":8,"contact":785,"extension":878,"proposal":8},65,"VK_EXT_shader_subgroup_ballot",{"number":880,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":881,"proposal":8},663,"VK_EXT_shader_subgroup_partitioned",{"number":883,"type":266,"author":420,"deprecatedby":397,"provisional":8,"contact":785,"extension":884,"proposal":8},66,"VK_EXT_shader_subgroup_vote",{"number":886,"type":266,"author":333,"provisional":8,"depends":404,"ratified":415,"contact":371,"extension":887,"proposal":232},396,"VK_EXT_shader_tile_image",{"number":889,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":446,"extension":890,"proposal":232},643,"VK_EXT_shader_uniform_buffer_unsized_array",{"number":892,"type":266,"author":420,"promotedto":517,"provisional":8,"contact":785,"extension":893,"proposal":8},163,"VK_EXT_shader_viewport_index_layer",{"number":895,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":397,"ratified":408,"contact":896,"extension":897,"proposal":8},226,"Neil Henning @sheredom","VK_EXT_subgroup_size_control",{"number":899,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":900,"extension":901,"proposal":232},459,"Ting Wei @catweiting","VK_EXT_subpass_merge_feedback",{"number":903,"type":413,"author":333,"promotedto":904,"provisional":8,"depends":905,"ratified":415,"contact":500,"extension":906,"proposal":232},275,"VK_KHR_surface_maintenance1","VK_KHR_surface+VK_KHR_get_surface_capabilities2","VK_EXT_surface_maintenance1",{"number":908,"type":413,"author":480,"provisional":8,"depends":542,"ratified":428,"contact":481,"extension":909,"proposal":8},105,"VK_EXT_swapchain_colorspace",{"number":911,"type":266,"author":333,"promotedto":912,"provisional":8,"depends":913,"ratified":415,"contact":500,"extension":914,"proposal":232},276,"VK_KHR_swapchain_maintenance1","VK_KHR_swapchain+VK_EXT_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","VK_EXT_swapchain_maintenance1",{"number":916,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":279,"ratified":408,"contact":441,"extension":917,"proposal":8},282,"VK_EXT_texel_buffer_alignment",{"number":919,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":371,"extension":920,"proposal":232},289,"VK_EXT_texture_compression_astc_3d",{"number":922,"type":266,"author":365,"promotedto":404,"provisional":8,"depends":279,"ratified":408,"contact":371,"extension":923,"proposal":8},67,"VK_EXT_texture_compression_astc_hdr",{"number":925,"type":266,"author":333,"promotedto":404,"provisional":8,"contact":275,"extension":926,"proposal":8},246,"VK_EXT_tooling_info",{"number":122,"type":266,"author":420,"provisional":8,"depends":279,"ratified":415,"specialuse":928,"contact":446,"extension":801,"proposal":8},"glemulation,d3demulation,devtools",{"number":930,"type":266,"author":480,"provisional":8,"ratified":415,"contact":931,"extension":932,"proposal":8},161,"Cort Stratton @cdwfs","VK_EXT_validation_cache",{"number":934,"type":413,"author":935,"deprecatedby":679,"provisional":8,"ratified":415,"specialuse":228,"contact":936,"extension":937,"proposal":8},248,"LUNARG","Karl Schultz @karl-lunarg","VK_EXT_validation_features",{"number":939,"type":413,"author":480,"deprecatedby":679,"provisional":8,"specialuse":228,"contact":940,"extension":941,"proposal":8},62,"Tobin Ehlis @tobine","VK_EXT_validation_flags",{"number":943,"type":266,"author":420,"promotedto":944,"provisional":8,"depends":279,"contact":462,"extension":945,"proposal":8},191,"VK_KHR_vertex_attribute_divisor","VK_EXT_vertex_attribute_divisor",{"number":947,"type":266,"author":333,"promotedto":948,"provisional":8,"depends":279,"contact":446,"extension":949,"proposal":8},609,"VK_KHR_maintenance9","VK_EXT_vertex_attribute_robustness",{"number":951,"type":266,"author":333,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":685,"proposal":8},353,{"number":953,"type":266,"author":333,"promotedto":404,"provisional":8,"depends":823,"ratified":408,"contact":954,"extension":955,"proposal":8},331,"Tony Zlatinski @tzlatinski","VK_EXT_ycbcr_2plane_444_formats",{"number":957,"type":266,"author":333,"provisional":8,"depends":823,"ratified":428,"contact":446,"extension":958,"proposal":8},253,"VK_EXT_ycbcr_image_arrays",{"number":960,"type":266,"author":333,"provisional":8,"depends":279,"ratified":415,"contact":434,"extension":961,"proposal":232},621,"VK_EXT_zero_initialize_device_memory",{"number":963,"type":266,"author":964,"provisional":8,"depends":965,"platform":966,"contact":967,"extension":968,"proposal":8},367,"FUCHSIA","VK_FUCHSIA_external_memory+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","fuchsia","John Rosasco @rosasco","VK_FUCHSIA_buffer_collection",{"number":970,"type":266,"author":964,"provisional":8,"depends":971,"platform":966,"contact":967,"extension":972,"proposal":8},365,"(VK_KHR_external_memory_capabilities+VK_KHR_external_memory),VK_VERSION_1_1","VK_FUCHSIA_external_memory",{"number":974,"type":266,"author":964,"provisional":8,"depends":975,"platform":966,"contact":967,"extension":976,"proposal":8},366,"VK_KHR_external_semaphore_capabilities+VK_KHR_external_semaphore","VK_FUCHSIA_external_semaphore",{"number":978,"type":413,"author":964,"provisional":8,"depends":542,"platform":966,"contact":979,"extension":980,"proposal":8},215,"Craig Stout @cdotstout","VK_FUCHSIA_imagepipe_surface",{"number":982,"type":266,"author":983,"provisional":8,"depends":984,"platform":985,"contact":764,"extension":986,"proposal":8},192,"GGP","VK_KHR_swapchain+VK_GGP_stream_descriptor_surface","ggp","VK_GGP_frame_token",{"number":206,"type":413,"author":983,"provisional":8,"depends":542,"platform":985,"contact":764,"extension":988,"proposal":8},"VK_GGP_stream_descriptor_surface",{"number":990,"type":266,"author":480,"provisional":8,"contact":991,"extension":992,"proposal":8},225,"Hai Nguyen @chaoticbob","VK_GOOGLE_decorate_string",{"number":994,"type":266,"author":480,"provisional":8,"depends":629,"contact":995,"extension":996,"proposal":8},93,"Ian Elliott @ianelliottus","VK_GOOGLE_display_timing",{"number":998,"type":266,"author":480,"provisional":8,"contact":991,"extension":999,"proposal":8},224,"VK_GOOGLE_hlsl_functionality1",{"number":1001,"type":413,"author":480,"provisional":8,"depends":542,"specialuse":356,"contact":500,"extension":1002,"proposal":232},434,"VK_GOOGLE_surfaceless_query",{"number":1004,"type":266,"author":480,"provisional":8,"contact":1005,"extension":1006,"proposal":8},290,"Kaye Mason @chaleur","VK_GOOGLE_user_type",{"number":1008,"type":266,"author":1009,"provisional":8,"depends":279,"contact":1010,"extension":1011,"proposal":232},405,"HUAWEI","Yuchang Wang @richard_Wang2","VK_HUAWEI_cluster_culling_shader",{"number":1013,"type":266,"author":1009,"provisional":8,"depends":1014,"contact":1015,"extension":1016,"proposal":8},591,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_swapchain+VK_EXT_hdr_metadata","Zehui Lin @bactlink","VK_HUAWEI_hdr_vivid",{"number":1018,"type":266,"author":1019,"provisional":8,"depends":1020,"contact":1021,"extension":1022,"proposal":232},371,"Huawei","VK_KHR_ray_tracing_pipeline+(VK_KHR_synchronization2,VK_VERSION_1_3)","Pan Gao @PanGao-h","VK_HUAWEI_invocation_mask",{"number":1024,"type":266,"author":1009,"provisional":8,"depends":1025,"contact":1021,"extension":1026,"proposal":8},370,"((VK_KHR_create_renderpass2,VK_VERSION_1_2)+VK_KHR_synchronization2),VK_VERSION_1_3","VK_HUAWEI_subpass_shading",{"number":70,"type":266,"author":780,"provisional":8,"contact":275,"extension":1028,"proposal":8},"VK_IMG_filter_cubic",{"number":226,"type":266,"author":780,"deprecatedby":1030,"provisional":8,"contact":1031,"extension":1032,"proposal":8},null,"Stuart Smith","VK_IMG_format_pvrtc",{"number":1034,"type":266,"author":780,"provisional":8,"depends":279,"specialuse":356,"contact":607,"extension":1035,"proposal":8},111,"VK_IMG_relaxed_line_rasterization",{"number":1037,"type":266,"author":1038,"provisional":8,"specialuse":284,"contact":1039,"extension":1040,"proposal":8},211,"INTEL","Lionel Landwerlin @llandwerlin","VK_INTEL_performance_query",{"number":1042,"type":266,"author":1038,"provisional":8,"depends":279,"contact":1043,"extension":1044,"proposal":8},210,"Ian Romanick @ianromanick","VK_INTEL_shader_integer_functions2",{"number":1046,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1048,"ratified":415,"contact":371,"extension":1049,"proposal":8},84,"KHR","(VK_KHR_get_physical_device_properties2+VK_KHR_storage_buffer_storage_class),VK_VERSION_1_1","VK_KHR_16bit_storage",{"number":1051,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1048,"ratified":415,"contact":1052,"extension":1053,"proposal":8},178,"Alexander Galazin @alegal-arm","VK_KHR_8bit_storage",{"number":1055,"type":266,"author":1047,"provisional":8,"depends":1056,"ratified":415,"contact":785,"extension":1057,"proposal":8},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":42,"type":413,"author":1047,"provisional":8,"depends":542,"platform":355,"ratified":415,"contact":362,"extension":1059,"proposal":8},"VK_KHR_android_surface",{"number":1061,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":275,"extension":1062,"proposal":8},158,"VK_KHR_bind_memory2",{"number":1064,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1065,"ratified":415,"contact":441,"extension":450,"proposal":8},258,"(VK_KHR_get_physical_device_properties2+VK_KHR_device_group),VK_VERSION_1_1",{"number":1067,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":428,"contact":674,"extension":454,"proposal":8},544,{"number":1069,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":1070,"extension":1071,"proposal":232},512,"Jean-Noe Morissette @MagicPoncho","VK_KHR_compute_shader_derivatives",{"number":1073,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":1074,"proposal":232},507,"VK_KHR_cooperative_matrix",{"number":1076,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":428,"contact":589,"extension":1077,"proposal":8},338,"VK_KHR_copy_commands2",{"number":1079,"type":266,"author":1047,"provisional":8,"depends":1080,"ratified":415,"contact":565,"extension":1081,"proposal":232},550,"(VK_KHR_get_physical_device_properties2+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_KHR_copy_memory_indirect",{"number":1083,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1084,"ratified":415,"contact":1085,"extension":1086,"proposal":8},110,"(VK_KHR_multiview+VK_KHR_maintenance2),VK_VERSION_1_1","Tobias Hector @tobias","VK_KHR_create_renderpass2",{"number":1088,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1089,"ratified":415,"contact":422,"extension":1090,"proposal":8},128,"VK_KHR_get_memory_requirements2,VK_VERSION_1_1","VK_KHR_dedicated_allocation",{"number":1092,"type":266,"author":1047,"provisional":8,"ratified":415,"contact":1093,"extension":1094,"proposal":8},269,"Josh Barczak @jbarczak","VK_KHR_deferred_host_operations",{"number":1096,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":496,"extension":495,"proposal":8},605,{"number":1098,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1099,"ratified":415,"contact":1100,"extension":1101,"proposal":8},200,"VK_KHR_create_renderpass2,VK_VERSION_1_2","Jan-Harald Fredriksen @janharald","VK_KHR_depth_stencil_resolve",{"number":1103,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":1104,"extension":1105,"proposal":8},86,"Markus Tavenrath @mtavenrath","VK_KHR_descriptor_update_template",{"number":1107,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1108,"ratified":415,"contact":441,"extension":1109,"proposal":8},61,"VK_KHR_device_group_creation","VK_KHR_device_group",{"number":1111,"type":413,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":441,"extension":1108,"proposal":8},71,{"number":18,"type":413,"author":1047,"provisional":8,"depends":542,"ratified":428,"contact":1113,"extension":539,"proposal":8},"James Jones @cubanismo,Norbert Nopper @FslNopper",{"number":22,"type":266,"author":1047,"provisional":8,"depends":1115,"ratified":428,"contact":422,"extension":1116,"proposal":8},"VK_KHR_swapchain+VK_KHR_display","VK_KHR_display_swapchain",{"number":1118,"type":266,"author":1047,"promotedto":517,"provisional":8,"ratified":415,"contact":446,"extension":296,"proposal":8},170,{"number":1120,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":285,"extension":1121,"proposal":8},197,"VK_KHR_driver_properties",{"number":186,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":1123,"ratified":415,"contact":275,"extension":1124,"proposal":232},"((VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_KHR_depth_stencil_resolve),VK_VERSION_1_2","VK_KHR_dynamic_rendering",{"number":1126,"type":266,"author":267,"promotedto":637,"provisional":8,"depends":1127,"ratified":415,"contact":275,"extension":1128,"proposal":232},233,"VK_KHR_dynamic_rendering,VK_VERSION_1_3","VK_KHR_dynamic_rendering_local_read",{"number":1130,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1131,"ratified":415,"contact":362,"extension":1132,"proposal":8},114,"VK_KHR_external_fence_capabilities","VK_KHR_external_fence",{"number":1134,"type":413,"author":1047,"promotedto":397,"provisional":8,"depends":279,"ratified":415,"contact":362,"extension":1131,"proposal":8},113,{"number":1136,"type":266,"author":1047,"provisional":8,"depends":1137,"ratified":428,"contact":362,"extension":1138,"proposal":8},116,"VK_KHR_external_fence,VK_VERSION_1_1","VK_KHR_external_fence_fd",{"number":1140,"type":266,"author":1047,"provisional":8,"depends":1132,"platform":612,"ratified":415,"contact":362,"extension":1141,"proposal":8},115,"VK_KHR_external_fence_win32",{"number":1143,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1144,"ratified":415,"contact":422,"extension":1145,"proposal":8},73,"VK_KHR_external_memory_capabilities,VK_VERSION_1_1","VK_KHR_external_memory",{"number":1147,"type":413,"author":1047,"promotedto":397,"provisional":8,"depends":279,"ratified":415,"contact":422,"extension":1148,"proposal":8},72,"VK_KHR_external_memory_capabilities",{"number":1150,"type":266,"author":1047,"provisional":8,"depends":572,"ratified":428,"contact":422,"extension":576,"proposal":8},75,{"number":1152,"type":266,"author":1047,"provisional":8,"depends":572,"platform":612,"ratified":415,"contact":422,"extension":1153,"proposal":8},74,"VK_KHR_external_memory_win32",{"number":1155,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1156,"ratified":415,"contact":422,"extension":1157,"proposal":8},78,"VK_KHR_external_semaphore_capabilities","VK_KHR_external_semaphore",{"number":1159,"type":413,"author":1047,"promotedto":397,"provisional":8,"depends":279,"ratified":415,"contact":422,"extension":1156,"proposal":8},77,{"number":1161,"type":266,"author":1047,"provisional":8,"depends":1162,"ratified":428,"contact":422,"extension":1163,"proposal":8},80,"VK_KHR_external_semaphore,VK_VERSION_1_1","VK_KHR_external_semaphore_fd",{"number":1165,"type":266,"author":1047,"provisional":8,"depends":1157,"platform":612,"ratified":415,"contact":422,"extension":1166,"proposal":8},79,"VK_KHR_external_semaphore_win32",{"number":1168,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":415,"contact":1039,"extension":1169,"proposal":8},361,"VK_KHR_format_feature_flags2",{"number":1171,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":280,"extension":1172,"proposal":232},323,"VK_KHR_fragment_shader_barycentric",{"number":1174,"type":266,"author":1047,"provisional":8,"depends":1175,"ratified":428,"contact":275,"extension":1176,"proposal":232},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":1178,"type":413,"author":1047,"provisional":8,"depends":539,"ratified":428,"contact":422,"extension":1179,"proposal":8},122,"VK_KHR_get_display_properties2",{"number":1181,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":699,"extension":1182,"proposal":8},147,"VK_KHR_get_memory_requirements2",{"number":1184,"type":413,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":441,"extension":1185,"proposal":8},60,"VK_KHR_get_physical_device_properties2",{"number":1187,"type":413,"author":1047,"provisional":8,"depends":542,"ratified":428,"contact":422,"extension":1188,"proposal":8},120,"VK_KHR_get_surface_capabilities2",{"number":1190,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":428,"contact":275,"extension":616,"proposal":8},189,{"number":1192,"type":266,"author":1047,"promotedto":517,"provisional":8,"ratified":415,"contact":699,"extension":1193,"proposal":8},148,"VK_KHR_image_format_list",{"number":1195,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1196,"ratified":415,"contact":1085,"extension":1197,"proposal":8},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":1199,"type":266,"author":1047,"provisional":8,"depends":629,"ratified":428,"contact":995,"extension":1200,"proposal":8},85,"VK_KHR_incremental_present",{"number":1202,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":669,"proposal":8},534,{"number":1204,"type":266,"author":1047,"provisional":8,"depends":397,"ratified":415,"contact":500,"extension":1205,"proposal":232},505,"VK_KHR_internally_synchronized_queues",{"number":1207,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":428,"contact":446,"extension":689,"proposal":8},535,{"number":1209,"type":266,"author":1047,"promotedto":637,"provisional":8,"ratified":415,"contact":500,"extension":694,"proposal":232},527,{"number":1211,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":446,"extension":316,"proposal":8},70,{"number":1213,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":434,"extension":1214,"proposal":232},631,"VK_KHR_maintenance10",{"number":1216,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":1217,"extension":1218,"proposal":8},118,"Michael Worcester @michaelworcester","VK_KHR_maintenance2",{"number":1220,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":1221,"proposal":8},169,"VK_KHR_maintenance3",{"number":1223,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":397,"ratified":415,"contact":446,"extension":1224,"proposal":8},414,"VK_KHR_maintenance4",{"number":1226,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":1227,"ratified":415,"contact":270,"extension":1228,"proposal":232},471,"(VK_VERSION_1_1+VK_KHR_dynamic_rendering),VK_VERSION_1_3","VK_KHR_maintenance5",{"number":1230,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":397,"ratified":415,"contact":1231,"extension":1232,"proposal":232},546,"Jon Leech @oddhack","VK_KHR_maintenance6",{"number":1234,"type":266,"author":1047,"provisional":8,"depends":397,"ratified":415,"contact":434,"extension":1235,"proposal":232},563,"VK_KHR_maintenance7",{"number":1237,"type":266,"author":1047,"provisional":8,"depends":397,"ratified":415,"contact":434,"extension":1238,"proposal":232},575,"VK_KHR_maintenance8",{"number":1240,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":434,"extension":948,"proposal":232},585,{"number":1242,"type":266,"author":1047,"promotedto":637,"provisional":8,"ratified":415,"contact":699,"extension":1243,"proposal":232},272,"VK_KHR_map_memory2",{"number":222,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":1245,"proposal":8},"VK_KHR_multiview",{"extension":1247,"proposal":8},"VK_KHR_object_refresh",{"number":1249,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":428,"specialuse":284,"contact":1250,"extension":1251,"proposal":8},117,"Alon Or-bach @alonorbach","VK_KHR_performance_query",{"number":1253,"type":266,"author":1047,"provisional":8,"depends":1254,"ratified":415,"contact":270,"extension":1255,"proposal":232},484,"VK_KHR_maintenance5,VK_VERSION_1_4","VK_KHR_pipeline_binary",{"number":1257,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"specialuse":284,"contact":699,"extension":1258,"proposal":8},270,"VK_KHR_pipeline_executable_properties",{"number":1260,"type":266,"author":1047,"provisional":8,"ratified":415,"contact":714,"extension":1261,"proposal":8},291,"VK_KHR_pipeline_library",{"number":1263,"type":413,"author":1047,"provisional":8,"ratified":415,"contact":1264,"extension":1265,"proposal":8},395,"Charles Giessen @charles-lunarg","VK_KHR_portability_enumeration",{"number":1267,"type":266,"author":1047,"provisional":232,"depends":279,"platform":269,"ratified":415,"contact":718,"extension":1268,"proposal":8},164,"VK_KHR_portability_subset",{"number":1270,"type":266,"author":1047,"provisional":8,"depends":1271,"ratified":415,"contact":1272,"extension":1273,"proposal":8},295,"VK_KHR_swapchain+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)","Keith Packard @keithp","VK_KHR_present_id",{"number":1275,"type":266,"author":1047,"provisional":8,"depends":1276,"ratified":415,"contact":1277,"extension":1278,"proposal":232},480,"VK_KHR_get_surface_capabilities2+VK_KHR_surface+VK_KHR_swapchain","Daniel Stone","VK_KHR_present_id2",{"number":1280,"type":266,"author":1047,"provisional":8,"depends":629,"ratified":415,"contact":790,"extension":789,"proposal":232},622,{"number":1282,"type":266,"author":1047,"provisional":8,"depends":1283,"ratified":415,"contact":1272,"extension":1284,"proposal":8},249,"VK_KHR_swapchain+VK_KHR_present_id","VK_KHR_present_wait",{"number":1286,"type":266,"author":1047,"provisional":8,"depends":1287,"ratified":415,"contact":1277,"extension":1288,"proposal":232},481,"VK_KHR_get_surface_capabilities2+VK_KHR_surface+VK_KHR_swapchain+VK_KHR_present_id2","VK_KHR_present_wait2",{"number":1290,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":1291,"proposal":8},81,"VK_KHR_push_descriptor",{"number":1293,"type":266,"author":1047,"provisional":8,"depends":1294,"ratified":415,"contact":785,"extension":1295,"proposal":8},349,"(VK_KHR_spirv_1_4,VK_VERSION_1_2)+VK_KHR_acceleration_structure","VK_KHR_ray_query",{"number":1297,"type":266,"author":1047,"provisional":8,"depends":1057,"ratified":415,"contact":785,"extension":1298,"proposal":8},387,"VK_KHR_ray_tracing_maintenance1",{"number":1300,"type":266,"author":1047,"provisional":8,"depends":1294,"ratified":415,"contact":785,"extension":818,"proposal":8},348,{"number":1302,"type":266,"author":1047,"provisional":8,"depends":1057,"ratified":415,"contact":1303,"extension":1304,"proposal":232},482,"Eric Werness","VK_KHR_ray_tracing_position_fetch",{"number":1306,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":1307,"extension":1308,"proposal":8},145,"John Kessenich @johnkslang","VK_KHR_relaxed_block_layout",{"number":1310,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":446,"extension":827,"proposal":8},613,{"number":66,"type":266,"author":1047,"promotedto":517,"provisional":8,"ratified":415,"contact":275,"extension":1312,"proposal":8},"VK_KHR_sampler_mirror_clamp_to_edge",{"number":1314,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1315,"ratified":415,"contact":1316,"extension":1317,"proposal":8},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":1319,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1175,"ratified":415,"contact":446,"extension":1320,"proposal":8},242,"VK_KHR_separate_depth_stencil_layouts",{"number":1322,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":1323,"extension":1324,"proposal":8},181,"Aaron Hagan @ahagan","VK_KHR_shader_atomic_int64",{"number":1326,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":275,"extension":1327,"proposal":232},142,"VK_KHR_shader_bfloat16",{"number":1329,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":428,"contact":1323,"extension":1330,"proposal":8},182,"VK_KHR_shader_clock",{"number":1332,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":785,"extension":1333,"proposal":8},64,"VK_KHR_shader_draw_parameters",{"number":1335,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":1336,"proposal":232},545,"VK_KHR_shader_expect_assume",{"number":1338,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":1052,"extension":302,"proposal":8},83,{"number":1340,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":1052,"extension":1341,"proposal":8},198,"VK_KHR_shader_float_controls",{"number":1343,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":1344,"ratified":415,"contact":496,"extension":1345,"proposal":232},529,"VK_VERSION_1_1+VK_KHR_shader_float_controls","VK_KHR_shader_float_controls2",{"number":1347,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":496,"extension":1348,"proposal":232},580,"VK_KHR_shader_fma",{"number":1350,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":1351,"proposal":232},281,"VK_KHR_shader_integer_dot_product",{"number":1353,"type":266,"author":1047,"provisional":8,"depends":397,"ratified":415,"contact":1354,"extension":1355,"proposal":232},435,"Alan Baker @alan-baker","VK_KHR_shader_maximal_reconvergence",{"number":1357,"type":266,"author":1047,"promotedto":404,"provisional":8,"ratified":415,"contact":477,"extension":1358,"proposal":8},294,"VK_KHR_shader_non_semantic_info",{"number":1360,"type":266,"author":1047,"provisional":8,"depends":1361,"ratified":415,"contact":275,"extension":1362,"proposal":232},236,"((VK_VERSION_1_1+VK_KHR_vulkan_memory_model),VK_VERSION_1_2)+VK_KHR_shader_maximal_reconvergence","VK_KHR_shader_quad_control",{"number":1364,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":1365,"extension":1366,"proposal":232},559,"Nathan Gauër @Keenuts","VK_KHR_shader_relaxed_extended_instruction",{"number":1368,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":397,"ratified":415,"contact":896,"extension":1369,"proposal":8},176,"VK_KHR_shader_subgroup_extended_types",{"number":1371,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":415,"contact":367,"extension":1372,"proposal":232},417,"VK_KHR_shader_subgroup_rotate",{"number":1374,"type":266,"author":1047,"provisional":8,"depends":397,"ratified":415,"contact":1354,"extension":1375,"proposal":8},324,"VK_KHR_shader_subgroup_uniform_control_flow",{"number":1377,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":428,"contact":362,"extension":1378,"proposal":8},216,"VK_KHR_shader_terminate_invocation",{"number":1380,"type":266,"author":1047,"provisional":8,"depends":1185,"ratified":415,"contact":1354,"extension":1381,"proposal":232},388,"VK_KHR_shader_untyped_pointers",{"number":1383,"type":266,"author":1047,"provisional":8,"depends":1384,"ratified":428,"contact":1250,"extension":1385,"proposal":8},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":1387,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":1344,"ratified":415,"contact":362,"extension":1388,"proposal":8},237,"VK_KHR_spirv_1_4",{"number":1390,"type":266,"author":1047,"promotedto":397,"provisional":8,"ratified":415,"contact":1052,"extension":1391,"proposal":8},132,"VK_KHR_storage_buffer_storage_class",{"number":10,"type":413,"author":1047,"provisional":8,"ratified":428,"contact":1393,"extension":542,"proposal":8},"James Jones @cubanismo,Ian Elliott @ianelliottus",{"number":1395,"type":413,"author":1047,"provisional":8,"depends":905,"ratified":415,"contact":500,"extension":904,"proposal":232},487,{"number":1397,"type":413,"author":1047,"provisional":8,"depends":1398,"ratified":415,"contact":1399,"extension":1400,"proposal":8},240,"VK_VERSION_1_1+VK_KHR_get_surface_capabilities2","Sandeep Shinde @sashinde","VK_KHR_surface_protected_capabilities",{"number":14,"type":266,"author":1047,"provisional":8,"depends":542,"ratified":428,"contact":1393,"extension":629,"proposal":8},{"number":1403,"type":266,"author":1047,"provisional":8,"depends":1404,"ratified":415,"contact":500,"extension":912,"proposal":232},488,"VK_KHR_swapchain+VK_KHR_surface_maintenance1+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)",{"number":1406,"type":266,"author":1047,"provisional":8,"depends":1407,"ratified":428,"contact":285,"extension":1408,"proposal":8},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":1410,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":428,"contact":275,"extension":1411,"proposal":8},315,"VK_KHR_synchronization2",{"number":1413,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":699,"extension":1414,"proposal":8},208,"VK_KHR_timeline_semaphore",{"number":1416,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":500,"extension":1417,"proposal":232},528,"VK_KHR_unified_image_layouts",{"number":1419,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":496,"extension":1420,"proposal":8},254,"VK_KHR_uniform_buffer_standard_layout",{"number":1422,"type":266,"author":1047,"promotedto":397,"provisional":8,"depends":1048,"ratified":415,"contact":362,"extension":1423,"proposal":8},121,"VK_KHR_variable_pointers",{"number":1425,"type":266,"author":1047,"promotedto":637,"provisional":8,"depends":279,"ratified":428,"contact":500,"extension":944,"proposal":232},526,{"number":1427,"type":266,"author":1047,"provisional":8,"depends":1428,"ratified":415,"contact":674,"extension":1429,"proposal":232},513,"VK_KHR_video_decode_queue","VK_KHR_video_decode_av1",{"number":170,"type":266,"author":1047,"provisional":8,"depends":1428,"ratified":415,"contact":1431,"extension":1432,"proposal":232},"peter.fang@amd.com","VK_KHR_video_decode_h264",{"number":1434,"type":266,"author":1047,"provisional":8,"depends":1428,"ratified":415,"contact":1431,"extension":1435,"proposal":232},188,"VK_KHR_video_decode_h265",{"number":106,"type":266,"author":1047,"provisional":8,"depends":1437,"ratified":415,"contact":1438,"extension":1428,"proposal":232},"VK_KHR_video_queue+(VK_KHR_synchronization2,VK_VERSION_1_3)","jake.beju@amd.com",{"number":1440,"type":266,"author":1047,"provisional":8,"depends":1428,"ratified":415,"contact":1441,"extension":1442,"proposal":232},515,"Ahmed Abdelkhalek @aabdelkh","VK_KHR_video_decode_vp9",{"number":1444,"type":266,"author":1047,"provisional":8,"depends":1445,"ratified":415,"contact":674,"extension":1446,"proposal":232},514,"VK_KHR_video_encode_queue","VK_KHR_video_encode_av1",{"number":162,"type":266,"author":1047,"provisional":8,"depends":1445,"ratified":415,"contact":1441,"extension":1448,"proposal":232},"VK_KHR_video_encode_h264",{"number":166,"type":266,"author":1047,"provisional":8,"depends":1445,"ratified":415,"contact":1441,"extension":1450,"proposal":232},"VK_KHR_video_encode_h265",{"number":1452,"type":266,"author":1047,"provisional":8,"depends":1445,"ratified":415,"contact":1441,"extension":1453,"proposal":232},553,"VK_KHR_video_encode_intra_refresh",{"number":1455,"type":266,"author":1047,"provisional":8,"depends":1456,"ratified":415,"contact":1441,"extension":1457,"proposal":232},554,"VK_KHR_video_encode_queue+(VK_KHR_format_feature_flags2,VK_VERSION_1_3)","VK_KHR_video_encode_quantization_map",{"number":1459,"type":266,"author":1047,"provisional":8,"depends":1437,"ratified":415,"contact":1441,"extension":1445,"proposal":232},300,{"number":1461,"type":266,"author":1047,"provisional":8,"depends":1462,"ratified":415,"contact":674,"extension":1463,"proposal":232},516,"VK_KHR_video_queue","VK_KHR_video_maintenance1",{"number":1465,"type":266,"author":1047,"provisional":8,"depends":1462,"ratified":415,"contact":674,"extension":1466,"proposal":232},587,"VK_KHR_video_maintenance2",{"number":102,"type":266,"author":1047,"provisional":8,"depends":1468,"ratified":415,"contact":954,"extension":1462,"proposal":232},"(VK_VERSION_1_1+VK_KHR_synchronization2),VK_VERSION_1_3",{"number":1470,"type":266,"author":1047,"promotedto":517,"provisional":8,"depends":279,"ratified":415,"contact":441,"extension":1471,"proposal":8},212,"VK_KHR_vulkan_memory_model",{"number":34,"type":413,"author":1047,"provisional":8,"depends":542,"platform":1473,"ratified":415,"contact":1474,"extension":1475,"proposal":8},"wayland","Jesse Hall @critsec,Ian Elliott @ianelliottus","VK_KHR_wayland_surface",{"number":1477,"type":266,"author":1047,"provisional":8,"depends":1153,"platform":612,"ratified":415,"contact":1478,"extension":1479,"proposal":8},76,"Carsten Rohde @crohde","VK_KHR_win32_keyed_mutex",{"number":46,"type":413,"author":1047,"provisional":8,"depends":542,"platform":612,"ratified":415,"contact":1474,"extension":1481,"proposal":8},"VK_KHR_win32_surface",{"number":1483,"type":266,"author":1047,"provisional":8,"depends":279,"ratified":415,"contact":1484,"extension":1485,"proposal":8},337,"Caio Marcelo de Oliveira Filho @cmarcelo","VK_KHR_workgroup_memory_explicit_layout",{"number":30,"type":413,"author":1047,"provisional":8,"depends":542,"platform":1487,"ratified":415,"contact":1474,"extension":1488,"proposal":8},"xcb","VK_KHR_xcb_surface",{"number":26,"type":413,"author":1047,"provisional":8,"depends":542,"platform":1490,"ratified":415,"contact":1474,"extension":1491,"proposal":8},"xlib","VK_KHR_xlib_surface",{"number":1493,"type":266,"author":1047,"promotedto":404,"provisional":8,"depends":279,"ratified":415,"contact":1354,"extension":1494,"proposal":8},326,"VK_KHR_zero_initialize_workgroup_memory",{"number":1496,"type":413,"author":935,"provisional":8,"contact":1264,"extension":1497,"proposal":232},460,"VK_LUNARG_direct_driver_loading",{"number":1499,"type":266,"author":1500,"provisional":8,"depends":279,"specialuse":487,"contact":769,"extension":1501,"proposal":8},576,"MESA","VK_MESA_image_alignment_control",{"number":1503,"type":266,"author":1504,"provisional":8,"depends":279,"contact":1505,"extension":1506,"proposal":232},531,"MSFT","Jesse Natalie @jenatali","VK_MSFT_layered_driver",{"number":1508,"type":413,"author":1509,"deprecatedby":723,"provisional":8,"depends":542,"platform":1510,"contact":718,"extension":1511,"proposal":8},123,"MVK","ios","VK_MVK_ios_surface",{"number":1513,"type":413,"author":1509,"deprecatedby":723,"provisional":8,"depends":542,"platform":1514,"contact":718,"extension":1515,"proposal":8},124,"macos","VK_MVK_macos_surface",{"number":1517,"type":413,"author":1518,"provisional":8,"depends":542,"platform":1519,"contact":1520,"extension":1521,"proposal":8},63,"NN","vi","Mathias Heyer gitlab:@mheyer","VK_NN_vi_surface",{"number":126,"type":266,"author":1523,"provisional":8,"contact":1524,"extension":1525,"proposal":8},"NVX","Eric Werness @ewerness-nv,Liam Middlebrook @liam-middlebrook","VK_NVX_binary_import",{"number":130,"type":266,"author":1523,"provisional":8,"contact":819,"extension":1527,"proposal":8},"VK_NVX_image_view_handle",{"number":1529,"type":266,"author":1523,"provisional":8,"depends":1530,"contact":441,"extension":1531,"proposal":8},98,"VK_KHR_multiview,VK_VERSION_1_1","VK_NVX_multiview_per_view_attributes",{"number":1533,"type":266,"author":420,"provisional":8,"depends":414,"platform":612,"contact":1534,"extension":1535,"proposal":8},346,"Jeff Juliano @jjuliano","VK_NV_acquire_winrt_display",{"number":1537,"type":266,"author":420,"provisional":8,"contact":819,"extension":1538,"proposal":8},88,"VK_NV_clip_space_w_scaling",{"number":1540,"type":266,"author":420,"provisional":8,"depends":1057,"contact":462,"extension":1541,"proposal":232},570,"VK_NV_cluster_acceleration_structure",{"number":1543,"type":266,"author":420,"provisional":8,"depends":279,"contact":1544,"extension":1545,"proposal":8},560,"Lujin Wang @lujinwangnv","VK_NV_command_buffer_inheritance",{"number":1547,"type":266,"author":420,"provisional":8,"depends":279,"contact":1548,"extension":1549,"proposal":232},646,"Chris Lentini @clentini","VK_NV_compute_occupancy_priority",{"number":1551,"type":266,"author":420,"promotedto":1071,"provisional":8,"depends":279,"contact":1552,"extension":1553,"proposal":8},202,"Pat Brown @nvpbrown","VK_NV_compute_shader_derivatives",{"number":1555,"type":266,"author":420,"provisional":8,"depends":279,"contact":441,"extension":1556,"proposal":8},250,"VK_NV_cooperative_matrix",{"number":1558,"type":266,"author":420,"provisional":8,"depends":1074,"contact":441,"extension":1559,"proposal":232},594,"VK_NV_cooperative_matrix2",{"number":1561,"type":266,"author":420,"provisional":8,"depends":279,"contact":441,"extension":1562,"proposal":232},492,"VK_NV_cooperative_vector",{"number":1564,"type":266,"author":420,"promotedto":1081,"provisional":8,"depends":1565,"contact":565,"extension":1566,"proposal":8},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":210,"type":266,"author":420,"provisional":8,"depends":279,"contact":785,"extension":1568,"proposal":8},"VK_NV_corner_sampled_image",{"number":1570,"type":266,"author":420,"provisional":8,"depends":1571,"contact":1572,"extension":1573,"proposal":8},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":1575,"type":266,"author":420,"provisional":232,"depends":279,"platform":269,"contact":1576,"extension":1577,"proposal":8},308,"Tristan Lorach @tlorach","VK_NV_cuda_kernel_launch",{"number":114,"type":266,"author":420,"deprecatedby":1090,"provisional":8,"contact":441,"extension":1579,"proposal":8},"VK_NV_dedicated_allocation",{"number":1581,"type":266,"author":1582,"provisional":8,"depends":1583,"contact":1584,"extension":1585,"proposal":8},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":1587,"type":266,"author":420,"provisional":8,"depends":397,"contact":446,"extension":1588,"proposal":8},547,"VK_NV_descriptor_pool_overallocation",{"number":1590,"type":266,"author":1582,"provisional":8,"depends":279,"contact":1584,"extension":1591,"proposal":8},207,"VK_NV_device_diagnostic_checkpoints",{"number":1593,"type":266,"author":420,"provisional":8,"depends":279,"contact":1572,"extension":1594,"proposal":8},301,"VK_NV_device_diagnostics_config",{"number":1596,"type":266,"author":420,"provisional":8,"depends":1597,"contact":714,"extension":1598,"proposal":8},278,"(VK_VERSION_1_1+VK_KHR_buffer_device_address),VK_VERSION_1_2","VK_NV_device_generated_commands",{"number":1600,"type":266,"author":420,"provisional":8,"depends":1598,"contact":565,"extension":1601,"proposal":8},429,"VK_NV_device_generated_commands_compute",{"number":1603,"type":266,"author":420,"deprecatedby":1541,"provisional":232,"depends":378,"platform":269,"contact":1604,"extension":1605,"proposal":8},398,"Christoph Kubisch @pixeljetstream, Eric Werness @ewerness-nv","VK_NV_displacement_micromap",{"number":1607,"type":413,"author":420,"provisional":8,"depends":1608,"contact":1609,"extension":1610,"proposal":232},552,"VK_KHR_display+VK_KHR_get_display_properties2","Russell Chou @russellcnv","VK_NV_display_stereo",{"number":1612,"type":266,"author":420,"provisional":8,"depends":279,"contact":1609,"extension":1613,"proposal":8},493,"VK_NV_extended_sparse_address_space",{"number":1615,"type":266,"author":420,"provisional":8,"contact":1548,"extension":1616,"proposal":232},557,"VK_NV_external_compute_queue",{"number":1618,"type":266,"author":420,"deprecatedby":1145,"provisional":8,"depends":1619,"contact":422,"extension":1620,"proposal":8},57,"VK_NV_external_memory_capabilities","VK_NV_external_memory",{"number":1622,"type":413,"author":420,"deprecatedby":1148,"provisional":8,"contact":422,"extension":1619,"proposal":8},56,{"number":1624,"type":266,"author":420,"provisional":8,"depends":572,"contact":1478,"extension":1625,"proposal":8},372,"VK_NV_external_memory_rdma",{"extension":1627,"proposal":8},"VK_NV_external_memory_sci_buf",{"number":1629,"type":266,"author":420,"deprecatedby":1153,"provisional":8,"depends":1620,"platform":612,"contact":422,"extension":1630,"proposal":8},58,"VK_NV_external_memory_win32",{"extension":1632,"proposal":8},"VK_NV_external_sci_sync",{"extension":1634,"proposal":8},"VK_NV_external_sci_sync2",{"number":1636,"type":266,"author":420,"provisional":8,"contact":441,"extension":1637,"proposal":8},154,"VK_NV_fill_rectangle",{"number":1639,"type":266,"author":420,"provisional":8,"contact":441,"extension":1640,"proposal":8},150,"VK_NV_fragment_coverage_to_color",{"number":1642,"type":266,"author":420,"promotedto":1172,"provisional":8,"depends":279,"contact":1552,"extension":1643,"proposal":8},204,"VK_NV_fragment_shader_barycentric",{"number":1645,"type":266,"author":420,"provisional":8,"depends":1176,"contact":1552,"extension":1646,"proposal":8},327,"VK_NV_fragment_shading_rate_enums",{"number":1648,"type":266,"author":420,"provisional":8,"contact":441,"extension":1649,"proposal":8},153,"VK_NV_framebuffer_mixed_samples",{"number":1651,"type":266,"author":420,"provisional":8,"contact":785,"extension":1652,"proposal":8},96,"VK_NV_geometry_shader_passthrough",{"number":58,"type":266,"author":420,"deprecatedby":1030,"provisional":8,"contact":446,"extension":1654,"proposal":8},"VK_NV_glsl_shader",{"number":1656,"type":266,"author":420,"provisional":8,"depends":279,"contact":1657,"extension":1658,"proposal":8},279,"David Zhao Akeley @akeley98","VK_NV_inherited_viewport_scissor",{"number":1660,"type":266,"author":1582,"provisional":8,"depends":279,"contact":1661,"extension":1662,"proposal":8},431,"sourav parmar @souravpNV","VK_NV_linear_color_attachment",{"number":1664,"type":266,"author":420,"provisional":8,"contact":1665,"extension":1666,"proposal":8},311,"Charles Hansen @cshansen","VK_NV_low_latency",{"number":1668,"type":266,"author":420,"provisional":8,"depends":1669,"contact":1665,"extension":1670,"proposal":8},506,"(VK_VERSION_1_2,VK_KHR_timeline_semaphore)+(VK_KHR_present_id,VK_KHR_present_id2)","VK_NV_low_latency2",{"number":1672,"type":266,"author":420,"promotedto":707,"provisional":8,"depends":1565,"contact":565,"extension":1673,"proposal":8},428,"VK_NV_memory_decompression",{"number":1675,"type":266,"author":420,"provisional":8,"depends":279,"contact":714,"extension":1676,"proposal":8},203,"VK_NV_mesh_shader",{"number":1678,"type":266,"author":420,"provisional":8,"depends":1679,"contact":1478,"extension":1680,"proposal":8},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":1682,"type":266,"author":420,"provisional":8,"depends":1057,"contact":462,"extension":1683,"proposal":232},571,"VK_NV_partitioned_acceleration_structure",{"number":1685,"type":266,"author":420,"provisional":8,"depends":1686,"contact":446,"extension":1687,"proposal":8},517,"VK_KHR_maintenance6,VK_VERSION_1_4","VK_NV_per_stage_descriptor_set",{"number":1689,"type":266,"author":420,"provisional":8,"depends":611,"contact":1690,"extension":1691,"proposal":8},293,"Liya Li @liyli","VK_NV_present_barrier",{"number":1693,"type":266,"author":420,"provisional":8,"depends":279,"contact":1694,"extension":1695,"proposal":8},614,"Charles Hansen @chansen","VK_NV_present_metering",{"extension":1697,"proposal":8},"VK_NV_private_vendor_info",{"number":1699,"type":266,"author":420,"provisional":8,"contact":1700,"extension":1701,"proposal":232},581,"Vassili Nikolaev @vasnik1","VK_NV_push_constant_bank",{"number":1703,"type":266,"author":420,"provisional":8,"depends":279,"contact":1704,"extension":1705,"proposal":8},556,"Rodrigo Locatti @rlocatti","VK_NV_raw_access_chains",{"number":1707,"type":266,"author":420,"deprecatedby":818,"provisional":8,"depends":1708,"contact":819,"extension":1709,"proposal":8},166,"(VK_KHR_get_physical_device_properties2+VK_KHR_get_memory_requirements2),VK_VERSION_1_1","VK_NV_ray_tracing",{"number":1711,"type":266,"author":420,"promotedto":820,"provisional":8,"depends":818,"contact":819,"extension":1712,"proposal":8},491,"VK_NV_ray_tracing_invocation_reorder",{"number":1714,"type":266,"author":420,"provisional":8,"depends":818,"contact":462,"extension":1715,"proposal":232},430,"VK_NV_ray_tracing_linear_swept_spheres",{"number":1717,"type":266,"author":420,"provisional":8,"depends":818,"contact":1303,"extension":1718,"proposal":8},328,"VK_NV_ray_tracing_motion_blur",{"number":1720,"type":266,"author":420,"provisional":8,"depends":279,"contact":565,"extension":1721,"proposal":232},569,"VK_NV_ray_tracing_validation",{"number":1723,"type":266,"author":420,"provisional":8,"depends":279,"contact":1572,"extension":1724,"proposal":8},167,"VK_NV_representative_fragment_test",{"number":1726,"type":266,"author":420,"provisional":8,"contact":446,"extension":1727,"proposal":8},95,"VK_NV_sample_mask_override_coverage",{"number":1729,"type":266,"author":420,"provisional":8,"depends":279,"contact":1552,"extension":1730,"proposal":8},206,"VK_NV_scissor_exclusive",{"number":1732,"type":266,"author":420,"provisional":8,"depends":279,"contact":441,"extension":1733,"proposal":8},564,"VK_NV_shader_atomic_float16_vector",{"number":1735,"type":266,"author":420,"provisional":8,"depends":279,"contact":1552,"extension":1736,"proposal":8},205,"VK_NV_shader_image_footprint",{"number":1738,"type":266,"author":420,"provisional":8,"depends":397,"contact":785,"extension":1739,"proposal":8},155,"VK_NV_shader_sm_builtins",{"number":1741,"type":266,"author":420,"promotedto":881,"provisional":8,"depends":397,"contact":441,"extension":1742,"proposal":8},199,"VK_NV_shader_subgroup_partitioned",{"number":1744,"type":266,"author":420,"provisional":8,"depends":279,"contact":1552,"extension":1745,"proposal":8},165,"VK_NV_shading_rate_image",{"number":1747,"type":266,"author":420,"provisional":8,"contact":785,"extension":1748,"proposal":8},97,"VK_NV_viewport_array2",{"number":1750,"type":266,"author":420,"provisional":8,"contact":446,"extension":1751,"proposal":8},99,"VK_NV_viewport_swizzle",{"number":1753,"type":266,"author":420,"promotedto":1479,"provisional":8,"depends":1630,"platform":612,"contact":1478,"extension":1754,"proposal":8},59,"VK_NV_win32_keyed_mutex",{"number":1756,"type":266,"author":1009,"provisional":8,"depends":361,"platform":1757,"contact":1758,"extension":1759,"proposal":8},453,"ohos","Weilan Chen @wchen-h","VK_OHOS_external_memory",{"number":1761,"type":266,"author":1009,"provisional":8,"platform":1757,"contact":1758,"extension":1762,"proposal":8},589,"VK_OHOS_native_buffer",{"number":1764,"type":413,"author":1009,"provisional":8,"depends":542,"platform":1757,"contact":1758,"extension":1765,"proposal":8},588,"VK_OHOS_surface",{"number":1767,"type":266,"author":588,"provisional":8,"depends":1074,"contact":589,"extension":1768,"proposal":232},173,"VK_QCOM_cooperative_matrix_conversion",{"number":1770,"type":266,"author":588,"provisional":8,"depends":368,"contact":589,"extension":1771,"proposal":232},630,"VK_QCOM_data_graph_model",{"number":1773,"type":266,"author":588,"provisional":8,"depends":1774,"contact":589,"extension":1775,"proposal":8},522,"(VK_EXT_filter_cubic)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)","VK_QCOM_filter_cubic_clamp",{"number":1777,"type":266,"author":588,"provisional":8,"depends":590,"contact":589,"extension":1778,"proposal":8},520,"VK_QCOM_filter_cubic_weights",{"number":1780,"type":266,"author":588,"promotedto":601,"provisional":8,"depends":1781,"contact":589,"extension":1782,"proposal":8},426,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+VK_EXT_fragment_density_map","VK_QCOM_fragment_density_map_offset",{"number":1784,"type":266,"author":588,"provisional":8,"depends":1785,"contact":589,"extension":1786,"proposal":232},441,"VK_KHR_format_feature_flags2,VK_VERSION_1_3","VK_QCOM_image_processing",{"number":1788,"type":266,"author":588,"provisional":8,"depends":1786,"contact":589,"extension":1789,"proposal":8},519,"VK_QCOM_image_processing2",{"number":1791,"type":266,"author":588,"provisional":8,"depends":279,"contact":589,"extension":1792,"proposal":8},511,"VK_QCOM_multiview_per_view_render_areas",{"number":1794,"type":266,"author":588,"provisional":8,"depends":279,"contact":589,"extension":1795,"proposal":8},489,"VK_QCOM_multiview_per_view_viewports",{"number":1797,"type":266,"author":588,"promotedto":472,"provisional":8,"contact":589,"extension":1798,"proposal":8},172,"VK_QCOM_render_pass_shader_resolve",{"number":1800,"type":266,"author":588,"provisional":8,"contact":589,"extension":1801,"proposal":8},302,"VK_QCOM_render_pass_store_ops",{"number":1803,"type":266,"author":588,"provisional":8,"contact":589,"extension":1804,"proposal":8},283,"VK_QCOM_render_pass_transform",{"number":1806,"type":266,"author":588,"provisional":8,"depends":1807,"contact":589,"extension":1808,"proposal":8},334,"VK_KHR_copy_commands2,VK_VERSION_1_3","VK_QCOM_rotated_copy_commands",{"number":1810,"type":266,"author":588,"provisional":8,"depends":1811,"contact":1812,"extension":1813,"proposal":232},548,"(VK_KHR_get_memory_requirements2+VK_KHR_get_physical_device_properties2),VK_VERSION_1_1","Patrick Boyle @pboyleQCOM","VK_QCOM_tile_memory_heap",{"number":1815,"type":266,"author":588,"provisional":8,"depends":279,"contact":589,"extension":1816,"proposal":232},485,"VK_QCOM_tile_properties",{"number":1818,"type":266,"author":588,"provisional":8,"depends":1816,"contact":589,"extension":1819,"proposal":232},310,"VK_QCOM_tile_shading",{"number":1821,"type":266,"author":588,"provisional":8,"depends":279,"contact":589,"extension":1822,"proposal":8},521,"VK_QCOM_ycbcr_degamma",{"number":1824,"type":266,"author":1825,"provisional":8,"depends":361,"platform":1826,"contact":1827,"extension":1828,"proposal":8},530,"QNX","screen","Mike Gorchak @mgorchak-blackberry, Aaron Ruby @aruby-blackberry","VK_QNX_external_memory_screen_buffer",{"number":1830,"type":413,"author":1825,"provisional":8,"depends":542,"platform":1826,"contact":1831,"extension":1832,"proposal":8},379,"Mike Gorchak @mgorchak-blackberry","VK_QNX_screen_surface",{"number":1834,"type":266,"author":1835,"provisional":8,"depends":279,"contact":524,"extension":1836,"proposal":8},486,"SEC","VK_SEC_amigo_profiling",{"number":1838,"type":266,"author":1835,"provisional":8,"depends":279,"contact":1839,"extension":1840,"proposal":8},638,"Chris Hambacher @chambacher","VK_SEC_pipeline_cache_incremental_mode",{"number":1842,"type":413,"author":1835,"provisional":8,"depends":542,"platform":1843,"contact":1844,"extension":1845,"proposal":8},665,"ubm","Minji Choe @minjichoe","VK_SEC_ubm_surface",{"number":1847,"type":266,"author":1848,"provisional":8,"depends":279,"specialuse":487,"contact":769,"extension":1849,"proposal":8},421,"VALVE","VK_VALVE_descriptor_set_host_mapping",{"number":1851,"type":266,"author":1848,"provisional":8,"depends":1852,"contact":600,"extension":1853,"proposal":8},612,"(VK_KHR_maintenance5,VK_VERSION_1_4)+VK_EXT_fragment_density_map","VK_VALVE_fragment_density_map_layered",{"number":1855,"type":266,"author":1848,"promotedto":735,"provisional":8,"depends":1221,"specialuse":487,"contact":734,"extension":1856,"proposal":8},352,"VK_VALVE_mutable_descriptor_type",{"number":1858,"type":266,"author":1848,"provisional":8,"depends":1859,"contact":742,"extension":1860,"proposal":8},674,"(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+(VK_KHR_shader_float16_int8,VK_VERSION_1_2)","VK_VALVE_shader_mixed_float_dot_product",{"number":1862,"type":266,"author":1848,"provisional":8,"depends":1863,"contact":1864,"extension":1865,"proposal":8},391,"VK_KHR_video_encode_queue+(VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1)","Autumn Ashton @misyltoad","VK_VALVE_video_encode_rgb_conversion",{"title":1867,"description":1868,"body":1869,"_type":5944,"_id":1867},"VK_ARM_shader_instrumentation.proposal","This document describes an extension to improve shader cost analysis for developers on Arm GPUs.",{"type":1870,"children":1871,"toc":5920},"root",[1872,1879,1886,1891,1904,1909,1924,1929,1935,1940,1945,1950,1957,1962,2089,2102,2107,2113,2118,2240,2245,2251,2257,2262,2410,2416,2421,2426,2692,2698,2733,2799,2804,2823,2916,2921,2926,2946,2957,2970,2975,2981,2988,3000,3161,3167,3179,3206,3234,3429,3435,3440,3493,3505,3511,5802,5808,5814,5819,5824,5830,5835,5841,5853,5865,5870,5876,5881,5887,5892,5898,5903,5909,5914],{"type":1873,"tag":1874,"props":1875,"children":1876},"element","p",{},[1877],{"type":1878,"value":1868},"text",{"type":1873,"tag":1880,"props":1881,"children":1883},"h2",{"id":1882},"_problem_statement",[1884],{"type":1878,"value":1885},"Problem Statement",{"type":1873,"tag":1874,"props":1887,"children":1888},{},[1889],{"type":1878,"value":1890},"Developers consistently rank the lack of attributable performance feedback as one of their top issues. Shader costing (i.e. estimating cycle costs for a shader) is one way to give users performance feedback.\nToday, the primary tool we use for shader costing is the Mali Offline Compiler. It is a static analysis tool which works well for simple shaders, but cannot accurately cost any shader with data-driven control flow because it does not know the actual data used for a draw call.\nToday’s content commonly involves shaders with divergent control flow, dynamic indexing, and bindless descriptors which necessitates a more complex way of giving users performance feedback.",{"type":1873,"tag":1874,"props":1892,"children":1893},{},[1894,1902],{"type":1873,"tag":1895,"props":1896,"children":1900},"a",{"href":1897,"rel":1898},"https://docs.vulkan.org/spec/latest/appendices/extensions.html#VK_KHR_pipeline_executable_properties",[1899],"nofollow",[1901],{"type":1878,"value":1258},{"type":1878,"value":1903}," is insufficient to address these concerns since the metrics returned here can only cover values known or estimated at compile time.",{"type":1873,"tag":1874,"props":1905,"children":1906},{},[1907],{"type":1878,"value":1908},"Use cases for this kind of performance feedback are:",{"type":1873,"tag":1910,"props":1911,"children":1912},"ul",{},[1913,1919],{"type":1873,"tag":1914,"props":1915,"children":1916},"li",{},[1917],{"type":1878,"value":1918},"Finding which draw call is the most expensive in a frame.",{"type":1873,"tag":1914,"props":1920,"children":1921},{},[1922],{"type":1878,"value":1923},"Shader optimization.",{"type":1873,"tag":1874,"props":1925,"children":1926},{},[1927],{"type":1878,"value":1928},"This proposal aims to improve shader cost analysis by introducing a run time cost tracking functionality.\nThese values can be used by tools to accurately report shader cost for a given draw call’s executed control flow and thread count.\nThis extension is useful for debugging and profiling, but introduces a performance overhead.",{"type":1873,"tag":1880,"props":1930,"children":1932},{"id":1931},"_solution_space",[1933],{"type":1878,"value":1934},"Solution Space",{"type":1873,"tag":1874,"props":1936,"children":1937},{},[1938],{"type":1878,"value":1939},"The standard Vulkan query and query pool mechanism was considered for this extension. We decided not to use this model mainly because the amount of memory required to store the instrumentation metrics per shader or pipeline is not fixed; it can vary based on the number of shaders in a pipeline or the number of basic blocks in the shader.",{"type":1873,"tag":1874,"props":1941,"children":1942},{},[1943],{"type":1878,"value":1944},"Capturing metrics directly into a user-specified buffer was also considered. This was rejected because 1) it constraints the implementation choices; we may want to change the internal data layout in the future and 2) it would be difficult for an application to pick an appropriate size for this buffer.",{"type":1873,"tag":1874,"props":1946,"children":1947},{},[1948],{"type":1878,"value":1949},"We have further considered options along two axes: how data is gathered, and how it is returned to the user.",{"type":1873,"tag":1951,"props":1952,"children":1954},"h3",{"id":1953},"solution-space-gathering-data",[1955],{"type":1878,"value":1956},"Gathering data",{"type":1873,"tag":1874,"props":1958,"children":1959},{},[1960],{"type":1878,"value":1961},"Options that have been considered for the gathering of data are:",{"type":1873,"tag":1963,"props":1964,"children":1965},"ol",{},[1966,1989,2037,2055],{"type":1873,"tag":1914,"props":1967,"children":1968},{},[1969,1971],{"type":1878,"value":1970},"Associating the shader cost with a pipeline",{"type":1873,"tag":1910,"props":1972,"children":1973},{},[1974,1979,1984],{"type":1873,"tag":1914,"props":1975,"children":1976},{},[1977],{"type":1878,"value":1978},"As long as the pipeline is created with a dedicated flag, shader cost in the pipeline could be accumulated and eventually read out.",{"type":1873,"tag":1914,"props":1980,"children":1981},{},[1982],{"type":1878,"value":1983},"Pros: Avoids the need to handle extra instrumentation logic.",{"type":1873,"tag":1914,"props":1985,"children":1986},{},[1987],{"type":1878,"value":1988},"Cons: Statefulness across draws and dispatches makes it hard to attribute cost to specific command buffer content unless you also clear between calls.",{"type":1873,"tag":1914,"props":1990,"children":1991},{},[1992,1994],{"type":1878,"value":1993},"Writing data into a buffer that is bound using a dedicated vkCmdBind* command.",{"type":1873,"tag":1910,"props":1995,"children":1996},{},[1997,2011,2032],{"type":1873,"tag":1914,"props":1998,"children":1999},{},[2000,2002,2009],{"type":1878,"value":2001},"The data could either be raw counters or opaque data that requires a call to something like ",{"type":1873,"tag":2003,"props":2004,"children":2006},"code",{"className":2005},[],[2007],{"type":1878,"value":2008},"vkInterpretInstrumentationDataARM",{"type":1878,"value":2010},".",{"type":1873,"tag":1914,"props":2012,"children":2013},{},[2014,2016,2022,2024,2030],{"type":1878,"value":2015},"Pros: Gives the user explicit control over synchronization between host/device. This approach is close to ",{"type":1873,"tag":1895,"props":2017,"children":2019},{"href":2018},"/man/vkCmdBeginTransformFeedbackEXT#vkCmdBeginTransformFeedbackEXT",[2020],{"type":1878,"value":2021},"vkCmdBeginTransformFeedbackEXT",{"type":1878,"value":2023}," and ",{"type":1873,"tag":1895,"props":2025,"children":2027},{"href":2026},"/man/vkCmdEndTransformFeedbackEXT#vkCmdEndTransformFeedbackEXT",[2028],{"type":1878,"value":2029},"vkCmdEndTransformFeedbackEXT",{"type":1878,"value":2031}," which avoids introducing another way of interacting with Vulkan objects.",{"type":1873,"tag":1914,"props":2033,"children":2034},{},[2035],{"type":1878,"value":2036},"Cons: All additional information would need to be stored in the user-managed buffer, not just the counters. The user would have to manage an offset into the counter/data buffer on their own, which opens up for user error.",{"type":1873,"tag":1914,"props":2038,"children":2039},{},[2040,2042],{"type":1878,"value":2041},"Using an instrumentation object that requires a begin/end call during command buffer recording.",{"type":1873,"tag":1910,"props":2043,"children":2044},{},[2045,2050],{"type":1873,"tag":1914,"props":2046,"children":2047},{},[2048],{"type":1878,"value":2049},"Pros: Less prone to being used incorrectly. The user cannot by mistake accumulate counters (this does not make sense when we have per-basic-block counters). The driver knows how many basic blocks belong to each draw/dispatch and can advance the buffer pointer accordingly.",{"type":1873,"tag":1914,"props":2051,"children":2052},{},[2053],{"type":1878,"value":2054},"Cons: The user has less explicit control, higher level of abstraction, every created instrumentation object would allocate device memory from the get-go.",{"type":1873,"tag":1914,"props":2056,"children":2057},{},[2058,2060,2066,2068,2074,2076],{"type":1878,"value":2059},"Provide an instrumentation object or a special ",{"type":1873,"tag":2003,"props":2061,"children":2063},{"className":2062},[],[2064],{"type":1878,"value":2065},"VkBuffer",{"type":1878,"value":2067}," in ",{"type":1873,"tag":2003,"props":2069,"children":2071},{"className":2070},[],[2072],{"type":1878,"value":2073},"VkCommandBufferBeginInfo::pNext",{"type":1878,"value":2075}," and handle the bind/unbind in the driver for all draw/dispatch calls in the command buffer.",{"type":1873,"tag":1910,"props":2077,"children":2078},{},[2079,2084],{"type":1873,"tag":1914,"props":2080,"children":2081},{},[2082],{"type":1878,"value":2083},"Pros: Easier for layers/tools to implement. Far simpler API.",{"type":1873,"tag":1914,"props":2085,"children":2086},{},[2087],{"type":1878,"value":2088},"Cons: Granularity is per-command-buffer and not per-command. That means the user cannot know which draw/dispatch corresponds to which counter. The size of the buffer is not known up-front.",{"type":1873,"tag":1874,"props":2090,"children":2091},{},[2092,2094,2100],{"type":1878,"value":2093},"A driver-managed instrumentation buffer means that the user needs to call an explicit ",{"type":1873,"tag":2003,"props":2095,"children":2097},{"className":2096},[],[2098],{"type":1878,"value":2099},"vkReadShaderInstrumentationARM",{"type":1878,"value":2101}," entry point that writes the counters out to a user-managed buffer.",{"type":1873,"tag":1874,"props":2103,"children":2104},{},[2105],{"type":1878,"value":2106},"Option 3 is chosen for its simplicity and low risk of misuse.",{"type":1873,"tag":1951,"props":2108,"children":2110},{"id":2109},"solution-space-data-format",[2111],{"type":1878,"value":2112},"Data format",{"type":1873,"tag":1874,"props":2114,"children":2115},{},[2116],{"type":1878,"value":2117},"Options that have been considered for retrieving the data are:",{"type":1873,"tag":1963,"props":2119,"children":2120},{},[2121,2139,2165,2195,2222],{"type":1873,"tag":1914,"props":2122,"children":2123},{},[2124,2126],{"type":1878,"value":2125},"JSON or other self-documenting string-based format:",{"type":1873,"tag":1910,"props":2127,"children":2128},{},[2129,2134],{"type":1873,"tag":1914,"props":2130,"children":2131},{},[2132],{"type":1878,"value":2133},"Pros: We could update the counter values and introduce basic blocks without having to update the extension spec itself.",{"type":1873,"tag":1914,"props":2135,"children":2136},{},[2137],{"type":1878,"value":2138},"Cons: High abstraction level, unusual API. No other Vulkan extension returns string output like this.",{"type":1873,"tag":1914,"props":2140,"children":2141},{},[2142,2144,2150,2152],{"type":1878,"value":2143},"Populate an array of structs, where each struct contains ",{"type":1873,"tag":2003,"props":2145,"children":2147},{"className":2146},[],[2148],{"type":1878,"value":2149},"uint64_t",{"type":1878,"value":2151}," fields for each counter we will output.",{"type":1873,"tag":1910,"props":2153,"children":2154},{},[2155,2160],{"type":1873,"tag":1914,"props":2156,"children":2157},{},[2158],{"type":1878,"value":2159},"Pros: Simple to implement and handle (both for the user and the driver).",{"type":1873,"tag":1914,"props":2161,"children":2162},{},[2163],{"type":1878,"value":2164},"Cons: If we want to introduce more counters down the line, we need to create a new extension.",{"type":1873,"tag":1914,"props":2166,"children":2167},{},[2168,2170,2175,2177],{"type":1878,"value":2169},"Something that matches how ",{"type":1873,"tag":1895,"props":2171,"children":2173},{"href":1897,"rel":2172},[1899],[2174],{"type":1878,"value":1258},{"type":1878,"value":2176}," exposes data to the user, but make it apply to an instrumentation object rather than a pipeline/shader object.",{"type":1873,"tag":1910,"props":2178,"children":2179},{},[2180,2185,2190],{"type":1873,"tag":1914,"props":2181,"children":2182},{},[2183],{"type":1878,"value":2184},"In short: Populates an array of structs which contain {name, description, value_type (u64, i64 etc), value}.",{"type":1873,"tag":1914,"props":2186,"children":2187},{},[2188],{"type":1878,"value":2189},"Pros: Easy to extend to cover basic blocks (name could for example be \"FMA.vert.BB0\"), vendor agnostic, uses a paradigm that already exists in Vulkan.",{"type":1873,"tag":1914,"props":2191,"children":2192},{},[2193],{"type":1878,"value":2194},"Cons: Duplicates a lot of structs/functionality.",{"type":1873,"tag":1914,"props":2196,"children":2197},{},[2198,2200,2207,2209],{"type":1878,"value":2199},"One struct/entry point for describing the data that contains a unique ID and a description. The struct used for reading out data contains that same unique ID, which can then be used to look up the description. Similar to what is done in ",{"type":1873,"tag":1895,"props":2201,"children":2204},{"href":2202,"rel":2203},"https://docs.vulkan.org/spec/latest/appendices/extensions.html#VK_ARM_performance_counter_by_region",[1899],[2205],{"type":1878,"value":2206},"VK_ARM_performance_counter_by_region",{"type":1878,"value":2208},". Also similar to (3) but extracts the \"name\" and \"description\" from the data struct which requires less memory.",{"type":1873,"tag":1910,"props":2210,"children":2211},{},[2212,2217],{"type":1873,"tag":1914,"props":2213,"children":2214},{},[2215],{"type":1878,"value":2216},"Pros: Easy to extend, uses a paradigm that already exists in Vulkan, descriptive with far less memory requirements than (3).",{"type":1873,"tag":1914,"props":2218,"children":2219},{},[2220],{"type":1878,"value":2221},"Cons: To support basic block counts and shader stage distinction, we would need to include basicBlockIndex and shaderStage in either the data output or the metric info struct. This would result in a lot of data duplication as we would duplicate shaderStage and basicBlockIndex information for all the counters.",{"type":1873,"tag":1914,"props":2223,"children":2224},{},[2225,2227],{"type":1878,"value":2226},"Use a separate entry point to define the structure of the results data, let the user decode the data after reading through another entry point.",{"type":1873,"tag":1910,"props":2228,"children":2229},{},[2230,2235],{"type":1873,"tag":1914,"props":2231,"children":2232},{},[2233],{"type":1878,"value":2234},"Pros: Easy to extend, very flexible, per-basic-block and per-shader-stage data is easy for the user to decode, no duplicate information.",{"type":1873,"tag":1914,"props":2236,"children":2237},{},[2238],{"type":1878,"value":2239},"Cons: Unconventional.",{"type":1873,"tag":1874,"props":2241,"children":2242},{},[2243],{"type":1878,"value":2244},"Option 5 is chosen.",{"type":1873,"tag":1880,"props":2246,"children":2248},{"id":2247},"_proposal",[2249],{"type":1878,"value":2250},"Proposal",{"type":1873,"tag":1951,"props":2252,"children":2254},{"id":2253},"_overview",[2255],{"type":1878,"value":2256},"Overview",{"type":1873,"tag":1874,"props":2258,"children":2259},{},[2260],{"type":1878,"value":2261},"Support for the extension can be requested through physical device features. Additionally, the number of available metrics can be read through physical device properties.",{"type":1873,"tag":2263,"props":2264,"children":2269},"pre",{"className":2265,"code":2266,"language":2267,"meta":2268,"style":2268},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkPhysicalDeviceShaderInstrumentationFeaturesARM {\n VkStructureType sType;\n void* pNext;\n VkBool32 shaderInstrumentation;\n} VkPhysicalDeviceShaderInstrumentationFeaturesARM;\n\n\ntypedef struct VkPhysicalDeviceShaderInstrumentationPropertiesARM {\n VkStructureType sType;\n void* pNext;\n uint32_t numMetrics;\n VkBool32 perBasicBlockGranularity;\n} VkPhysicalDeviceShaderInstrumentationPropertiesARM;\n","c","",[2270],{"type":1873,"tag":2003,"props":2271,"children":2272},{"__ignoreMap":2268},[2273,2295,2303,2316,2324,2332,2340,2347,2363,2370,2381,2394,2402],{"type":1873,"tag":2274,"props":2275,"children":2277},"span",{"class":2276,"line":10},"line",[2278,2284,2289],{"type":1873,"tag":2274,"props":2279,"children":2281},{"style":2280},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[2282],{"type":1878,"value":2283},"typedef",{"type":1873,"tag":2274,"props":2285,"children":2286},{"style":2280},[2287],{"type":1878,"value":2288}," struct",{"type":1873,"tag":2274,"props":2290,"children":2292},{"style":2291},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[2293],{"type":1878,"value":2294}," VkPhysicalDeviceShaderInstrumentationFeaturesARM {\n",{"type":1873,"tag":2274,"props":2296,"children":2297},{"class":2276,"line":14},[2298],{"type":1873,"tag":2274,"props":2299,"children":2300},{"style":2291},[2301],{"type":1878,"value":2302}," VkStructureType sType;\n",{"type":1873,"tag":2274,"props":2304,"children":2305},{"class":2276,"line":18},[2306,2311],{"type":1873,"tag":2274,"props":2307,"children":2308},{"style":2280},[2309],{"type":1878,"value":2310}," void*",{"type":1873,"tag":2274,"props":2312,"children":2313},{"style":2291},[2314],{"type":1878,"value":2315}," pNext;\n",{"type":1873,"tag":2274,"props":2317,"children":2318},{"class":2276,"line":22},[2319],{"type":1873,"tag":2274,"props":2320,"children":2321},{"style":2291},[2322],{"type":1878,"value":2323}," VkBool32 shaderInstrumentation;\n",{"type":1873,"tag":2274,"props":2325,"children":2326},{"class":2276,"line":26},[2327],{"type":1873,"tag":2274,"props":2328,"children":2329},{"style":2291},[2330],{"type":1878,"value":2331},"} VkPhysicalDeviceShaderInstrumentationFeaturesARM;\n",{"type":1873,"tag":2274,"props":2333,"children":2334},{"class":2276,"line":30},[2335],{"type":1873,"tag":2274,"props":2336,"children":2337},{"emptyLinePlaceholder":232},[2338],{"type":1878,"value":2339},"\n",{"type":1873,"tag":2274,"props":2341,"children":2342},{"class":2276,"line":34},[2343],{"type":1873,"tag":2274,"props":2344,"children":2345},{"emptyLinePlaceholder":232},[2346],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":2348,"children":2349},{"class":2276,"line":38},[2350,2354,2358],{"type":1873,"tag":2274,"props":2351,"children":2352},{"style":2280},[2353],{"type":1878,"value":2283},{"type":1873,"tag":2274,"props":2355,"children":2356},{"style":2280},[2357],{"type":1878,"value":2288},{"type":1873,"tag":2274,"props":2359,"children":2360},{"style":2291},[2361],{"type":1878,"value":2362}," VkPhysicalDeviceShaderInstrumentationPropertiesARM {\n",{"type":1873,"tag":2274,"props":2364,"children":2365},{"class":2276,"line":42},[2366],{"type":1873,"tag":2274,"props":2367,"children":2368},{"style":2291},[2369],{"type":1878,"value":2302},{"type":1873,"tag":2274,"props":2371,"children":2372},{"class":2276,"line":46},[2373,2377],{"type":1873,"tag":2274,"props":2374,"children":2375},{"style":2280},[2376],{"type":1878,"value":2310},{"type":1873,"tag":2274,"props":2378,"children":2379},{"style":2291},[2380],{"type":1878,"value":2315},{"type":1873,"tag":2274,"props":2382,"children":2383},{"class":2276,"line":50},[2384,2389],{"type":1873,"tag":2274,"props":2385,"children":2386},{"style":2280},[2387],{"type":1878,"value":2388}," uint32_t",{"type":1873,"tag":2274,"props":2390,"children":2391},{"style":2291},[2392],{"type":1878,"value":2393}," numMetrics;\n",{"type":1873,"tag":2274,"props":2395,"children":2396},{"class":2276,"line":54},[2397],{"type":1873,"tag":2274,"props":2398,"children":2399},{"style":2291},[2400],{"type":1878,"value":2401}," VkBool32 perBasicBlockGranularity;\n",{"type":1873,"tag":2274,"props":2403,"children":2404},{"class":2276,"line":58},[2405],{"type":1873,"tag":2274,"props":2406,"children":2407},{"style":2291},[2408],{"type":1878,"value":2409},"} VkPhysicalDeviceShaderInstrumentationPropertiesARM;\n",{"type":1873,"tag":1951,"props":2411,"children":2413},{"id":2412},"_creatingdestroying_instrumentation_objects",[2414],{"type":1878,"value":2415},"Creating/destroying instrumentation objects",{"type":1873,"tag":1874,"props":2417,"children":2418},{},[2419],{"type":1878,"value":2420},"The instrumentation object is opaque and can be created and destroyed using the following entry points.",{"type":1873,"tag":1874,"props":2422,"children":2423},{},[2424],{"type":1878,"value":2425},"The instrumentation object will allocate device memory on demand when counters are captured. The memory will be deallocated upon destroying the instrumentation object.",{"type":1873,"tag":2263,"props":2427,"children":2429},{"className":2265,"code":2428,"language":2267,"meta":2268,"style":2268},"VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderInstrumentationARM)\n\ntypedef struct VkShaderInstrumentationCreateInfoARM {\n VkStructureType sType;\n void* pNext;\n} VkShaderInstrumentationCreateInfoARM;\n\n VkResult vkCreateShaderInstrumentationARM(\n VkDevice device,\n const VkShaderInstrumentationCreateInfoARM* pCreateInfo,\n const VkAllocationCallbacks* pAllocator,\n VkShaderInstrumentationARM* pInstrumentation);\n\nvoid vkDestroyShaderInstrumentationARM(\n VkDevice device,\n VkShaderInstrumentationARM instrumentation,\n const VkAllocationCallbacks* pAllocator);\n",[2430],{"type":1873,"tag":2003,"props":2431,"children":2432},{"__ignoreMap":2268},[2433,2447,2454,2470,2477,2488,2496,2503,2521,2539,2566,2591,2613,2620,2637,2652,2669],{"type":1873,"tag":2274,"props":2434,"children":2435},{"class":2276,"line":10},[2436,2442],{"type":1873,"tag":2274,"props":2437,"children":2439},{"style":2438},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[2440],{"type":1878,"value":2441},"VK_DEFINE_NON_DISPATCHABLE_HANDLE",{"type":1873,"tag":2274,"props":2443,"children":2444},{"style":2291},[2445],{"type":1878,"value":2446},"(VkShaderInstrumentationARM)\n",{"type":1873,"tag":2274,"props":2448,"children":2449},{"class":2276,"line":14},[2450],{"type":1873,"tag":2274,"props":2451,"children":2452},{"emptyLinePlaceholder":232},[2453],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":2455,"children":2456},{"class":2276,"line":18},[2457,2461,2465],{"type":1873,"tag":2274,"props":2458,"children":2459},{"style":2280},[2460],{"type":1878,"value":2283},{"type":1873,"tag":2274,"props":2462,"children":2463},{"style":2280},[2464],{"type":1878,"value":2288},{"type":1873,"tag":2274,"props":2466,"children":2467},{"style":2291},[2468],{"type":1878,"value":2469}," VkShaderInstrumentationCreateInfoARM {\n",{"type":1873,"tag":2274,"props":2471,"children":2472},{"class":2276,"line":22},[2473],{"type":1873,"tag":2274,"props":2474,"children":2475},{"style":2291},[2476],{"type":1878,"value":2302},{"type":1873,"tag":2274,"props":2478,"children":2479},{"class":2276,"line":26},[2480,2484],{"type":1873,"tag":2274,"props":2481,"children":2482},{"style":2280},[2483],{"type":1878,"value":2310},{"type":1873,"tag":2274,"props":2485,"children":2486},{"style":2291},[2487],{"type":1878,"value":2315},{"type":1873,"tag":2274,"props":2489,"children":2490},{"class":2276,"line":30},[2491],{"type":1873,"tag":2274,"props":2492,"children":2493},{"style":2291},[2494],{"type":1878,"value":2495},"} VkShaderInstrumentationCreateInfoARM;\n",{"type":1873,"tag":2274,"props":2497,"children":2498},{"class":2276,"line":34},[2499],{"type":1873,"tag":2274,"props":2500,"children":2501},{"emptyLinePlaceholder":232},[2502],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":2504,"children":2505},{"class":2276,"line":38},[2506,2511,2516],{"type":1873,"tag":2274,"props":2507,"children":2508},{"style":2291},[2509],{"type":1878,"value":2510}," VkResult ",{"type":1873,"tag":2274,"props":2512,"children":2513},{"style":2438},[2514],{"type":1878,"value":2515},"vkCreateShaderInstrumentationARM",{"type":1873,"tag":2274,"props":2517,"children":2518},{"style":2291},[2519],{"type":1878,"value":2520},"(\n",{"type":1873,"tag":2274,"props":2522,"children":2523},{"class":2276,"line":42},[2524,2529,2534],{"type":1873,"tag":2274,"props":2525,"children":2526},{"style":2291},[2527],{"type":1878,"value":2528}," VkDevice ",{"type":1873,"tag":2274,"props":2530,"children":2532},{"style":2531},"--shiki-default:#953800;--shiki-dark:#FFA657",[2533],{"type":1878,"value":266},{"type":1873,"tag":2274,"props":2535,"children":2536},{"style":2291},[2537],{"type":1878,"value":2538},",\n",{"type":1873,"tag":2274,"props":2540,"children":2541},{"class":2276,"line":46},[2542,2547,2552,2557,2562],{"type":1873,"tag":2274,"props":2543,"children":2544},{"style":2280},[2545],{"type":1878,"value":2546}," const",{"type":1873,"tag":2274,"props":2548,"children":2549},{"style":2291},[2550],{"type":1878,"value":2551}," VkShaderInstrumentationCreateInfoARM",{"type":1873,"tag":2274,"props":2553,"children":2554},{"style":2280},[2555],{"type":1878,"value":2556},"*",{"type":1873,"tag":2274,"props":2558,"children":2559},{"style":2531},[2560],{"type":1878,"value":2561}," pCreateInfo",{"type":1873,"tag":2274,"props":2563,"children":2564},{"style":2291},[2565],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":2567,"children":2568},{"class":2276,"line":50},[2569,2573,2578,2582,2587],{"type":1873,"tag":2274,"props":2570,"children":2571},{"style":2280},[2572],{"type":1878,"value":2546},{"type":1873,"tag":2274,"props":2574,"children":2575},{"style":2291},[2576],{"type":1878,"value":2577}," VkAllocationCallbacks",{"type":1873,"tag":2274,"props":2579,"children":2580},{"style":2280},[2581],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":2583,"children":2584},{"style":2531},[2585],{"type":1878,"value":2586}," pAllocator",{"type":1873,"tag":2274,"props":2588,"children":2589},{"style":2291},[2590],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":2592,"children":2593},{"class":2276,"line":54},[2594,2599,2603,2608],{"type":1873,"tag":2274,"props":2595,"children":2596},{"style":2291},[2597],{"type":1878,"value":2598}," VkShaderInstrumentationARM",{"type":1873,"tag":2274,"props":2600,"children":2601},{"style":2280},[2602],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":2604,"children":2605},{"style":2531},[2606],{"type":1878,"value":2607}," pInstrumentation",{"type":1873,"tag":2274,"props":2609,"children":2610},{"style":2291},[2611],{"type":1878,"value":2612},");\n",{"type":1873,"tag":2274,"props":2614,"children":2615},{"class":2276,"line":58},[2616],{"type":1873,"tag":2274,"props":2617,"children":2618},{"emptyLinePlaceholder":232},[2619],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":2621,"children":2622},{"class":2276,"line":62},[2623,2628,2633],{"type":1873,"tag":2274,"props":2624,"children":2625},{"style":2280},[2626],{"type":1878,"value":2627},"void",{"type":1873,"tag":2274,"props":2629,"children":2630},{"style":2438},[2631],{"type":1878,"value":2632}," vkDestroyShaderInstrumentationARM",{"type":1873,"tag":2274,"props":2634,"children":2635},{"style":2291},[2636],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":2638,"children":2639},{"class":2276,"line":66},[2640,2644,2648],{"type":1873,"tag":2274,"props":2641,"children":2642},{"style":2291},[2643],{"type":1878,"value":2528},{"type":1873,"tag":2274,"props":2645,"children":2646},{"style":2531},[2647],{"type":1878,"value":266},{"type":1873,"tag":2274,"props":2649,"children":2650},{"style":2291},[2651],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":2653,"children":2654},{"class":2276,"line":70},[2655,2660,2665],{"type":1873,"tag":2274,"props":2656,"children":2657},{"style":2291},[2658],{"type":1878,"value":2659}," VkShaderInstrumentationARM ",{"type":1873,"tag":2274,"props":2661,"children":2662},{"style":2531},[2663],{"type":1878,"value":2664},"instrumentation",{"type":1873,"tag":2274,"props":2666,"children":2667},{"style":2291},[2668],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":2670,"children":2671},{"class":2276,"line":74},[2672,2676,2680,2684,2688],{"type":1873,"tag":2274,"props":2673,"children":2674},{"style":2280},[2675],{"type":1878,"value":2546},{"type":1873,"tag":2274,"props":2677,"children":2678},{"style":2291},[2679],{"type":1878,"value":2577},{"type":1873,"tag":2274,"props":2681,"children":2682},{"style":2280},[2683],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":2685,"children":2686},{"style":2531},[2687],{"type":1878,"value":2586},{"type":1873,"tag":2274,"props":2689,"children":2690},{"style":2291},[2691],{"type":1878,"value":2612},{"type":1873,"tag":1951,"props":2693,"children":2695},{"id":2694},"_capturing_counters",[2696],{"type":1878,"value":2697},"Capturing counters",{"type":1873,"tag":1874,"props":2699,"children":2700},{},[2701,2703,2709,2711,2717,2719,2725,2726,2732],{"type":1878,"value":2702},"Shader instrumentation is enabled per pipeline by setting the ",{"type":1873,"tag":2003,"props":2704,"children":2706},{"className":2705},[],[2707],{"type":1878,"value":2708},"VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM",{"type":1878,"value":2710}," flag in ",{"type":1873,"tag":2003,"props":2712,"children":2714},{"className":2713},[],[2715],{"type":1878,"value":2716},"VkPipelineCreateFlags2CreateInfoKHR",{"type":1878,"value":2718}," or per shader by setting the ",{"type":1873,"tag":2003,"props":2720,"children":2722},{"className":2721},[],[2723],{"type":1878,"value":2724},"VK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM",{"type":1878,"value":2710},{"type":1873,"tag":2003,"props":2727,"children":2729},{"className":2728},[],[2730],{"type":1878,"value":2731},"VkShaderCreateInfoEXT",{"type":1878,"value":2010},{"type":1873,"tag":2263,"props":2734,"children":2736},{"className":2265,"code":2735,"language":2267,"meta":2268,"style":2268},"VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM = 0x4000000000000ULL;\nVK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM = 0x00080000;\n",[2737],{"type":1873,"tag":2003,"props":2738,"children":2739},{"__ignoreMap":2268},[2740,2774],{"type":1873,"tag":2274,"props":2741,"children":2742},{"class":2276,"line":10},[2743,2748,2753,2758,2764,2769],{"type":1873,"tag":2274,"props":2744,"children":2745},{"style":2291},[2746],{"type":1878,"value":2747},"VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM ",{"type":1873,"tag":2274,"props":2749,"children":2750},{"style":2280},[2751],{"type":1878,"value":2752},"=",{"type":1873,"tag":2274,"props":2754,"children":2755},{"style":2280},[2756],{"type":1878,"value":2757}," 0x",{"type":1873,"tag":2274,"props":2759,"children":2761},{"style":2760},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[2762],{"type":1878,"value":2763},"4000000000000",{"type":1873,"tag":2274,"props":2765,"children":2766},{"style":2280},[2767],{"type":1878,"value":2768},"ULL",{"type":1873,"tag":2274,"props":2770,"children":2771},{"style":2291},[2772],{"type":1878,"value":2773},";\n",{"type":1873,"tag":2274,"props":2775,"children":2776},{"class":2276,"line":14},[2777,2782,2786,2790,2795],{"type":1873,"tag":2274,"props":2778,"children":2779},{"style":2291},[2780],{"type":1878,"value":2781},"VK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM ",{"type":1873,"tag":2274,"props":2783,"children":2784},{"style":2280},[2785],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":2787,"children":2788},{"style":2280},[2789],{"type":1878,"value":2757},{"type":1873,"tag":2274,"props":2791,"children":2792},{"style":2760},[2793],{"type":1878,"value":2794},"00080000",{"type":1873,"tag":2274,"props":2796,"children":2797},{"style":2291},[2798],{"type":1878,"value":2773},{"type":1873,"tag":1874,"props":2800,"children":2801},{},[2802],{"type":1878,"value":2803},"When a shader or a pipeline is created with instrumentation enabled, the implementation can collect shader execution metrics for it.",{"type":1873,"tag":1874,"props":2805,"children":2806},{},[2807,2809,2815,2816,2822],{"type":1878,"value":2808},"Metrics are captured for shaders recorded while shader instrumentation is active. Shader instrumentation is active between calls to ",{"type":1873,"tag":2003,"props":2810,"children":2812},{"className":2811},[],[2813],{"type":1878,"value":2814},"vkCmdBeginShaderInstrumentationARM",{"type":1878,"value":2023},{"type":1873,"tag":2003,"props":2817,"children":2819},{"className":2818},[],[2820],{"type":1878,"value":2821},"vkCmdEndShaderInstrumentationARM",{"type":1878,"value":2010},{"type":1873,"tag":2263,"props":2824,"children":2826},{"className":2265,"code":2825,"language":2267,"meta":2268,"style":2268},"void vkCmdBeginShaderInstrumentationARM(\n VkCommandBuffer commandBuffer,\n VkShaderInstrumentationARM instrumentation);\n\nvoid vkCmdEndShaderInstrumentationARM(\n VkCommandBuffer commandBuffer);\n",[2827],{"type":1873,"tag":2003,"props":2828,"children":2829},{"__ignoreMap":2268},[2830,2846,2863,2878,2885,2901],{"type":1873,"tag":2274,"props":2831,"children":2832},{"class":2276,"line":10},[2833,2837,2842],{"type":1873,"tag":2274,"props":2834,"children":2835},{"style":2280},[2836],{"type":1878,"value":2627},{"type":1873,"tag":2274,"props":2838,"children":2839},{"style":2438},[2840],{"type":1878,"value":2841}," vkCmdBeginShaderInstrumentationARM",{"type":1873,"tag":2274,"props":2843,"children":2844},{"style":2291},[2845],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":2847,"children":2848},{"class":2276,"line":14},[2849,2854,2859],{"type":1873,"tag":2274,"props":2850,"children":2851},{"style":2291},[2852],{"type":1878,"value":2853}," VkCommandBuffer ",{"type":1873,"tag":2274,"props":2855,"children":2856},{"style":2531},[2857],{"type":1878,"value":2858},"commandBuffer",{"type":1873,"tag":2274,"props":2860,"children":2861},{"style":2291},[2862],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":2864,"children":2865},{"class":2276,"line":18},[2866,2870,2874],{"type":1873,"tag":2274,"props":2867,"children":2868},{"style":2291},[2869],{"type":1878,"value":2659},{"type":1873,"tag":2274,"props":2871,"children":2872},{"style":2531},[2873],{"type":1878,"value":2664},{"type":1873,"tag":2274,"props":2875,"children":2876},{"style":2291},[2877],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":2879,"children":2880},{"class":2276,"line":22},[2881],{"type":1873,"tag":2274,"props":2882,"children":2883},{"emptyLinePlaceholder":232},[2884],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":2886,"children":2887},{"class":2276,"line":26},[2888,2892,2897],{"type":1873,"tag":2274,"props":2889,"children":2890},{"style":2280},[2891],{"type":1878,"value":2627},{"type":1873,"tag":2274,"props":2893,"children":2894},{"style":2438},[2895],{"type":1878,"value":2896}," vkCmdEndShaderInstrumentationARM",{"type":1873,"tag":2274,"props":2898,"children":2899},{"style":2291},[2900],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":2902,"children":2903},{"class":2276,"line":30},[2904,2908,2912],{"type":1873,"tag":2274,"props":2905,"children":2906},{"style":2291},[2907],{"type":1878,"value":2853},{"type":1873,"tag":2274,"props":2909,"children":2910},{"style":2531},[2911],{"type":1878,"value":2858},{"type":1873,"tag":2274,"props":2913,"children":2914},{"style":2291},[2915],{"type":1878,"value":2612},{"type":1873,"tag":1874,"props":2917,"children":2918},{},[2919],{"type":1878,"value":2920},"Only one shader instrumentation object can be active in a command buffer at any point. Multiple instrumentation objects can be used in the same command buffer as long as they are not active at the same time.",{"type":1873,"tag":1874,"props":2922,"children":2923},{},[2924],{"type":1878,"value":2925},"Shader instrumentation cannot be active when a secondary command buffer execution is recorded.",{"type":1873,"tag":1874,"props":2927,"children":2928},{},[2929,2931,2937,2939,2944],{"type":1878,"value":2930},"Each draw, ray tracing, and dispatch command recorded while shader instrumentation is active will capture a metrics identified by a monotonically increasing ",{"type":1873,"tag":2003,"props":2932,"children":2934},{"className":2933},[],[2935],{"type":1878,"value":2936},"resultIndex",{"type":1878,"value":2938},".\nThis index starts at 0 when the instrumentation object is created, and is increased by 1 for each draw, ray tracing, and dispatch command recorded while the instrumetation object is active.\nThe ",{"type":1873,"tag":2003,"props":2940,"children":2942},{"className":2941},[],[2943],{"type":1878,"value":2936},{"type":1878,"value":2945}," is specific to the bound instrumentation object and preserved across submissions.",{"type":1873,"tag":1874,"props":2947,"children":2948},{},[2949,2951,2956],{"type":1878,"value":2950},"Action commands using shaders compiled without instrumentation can be recorded while shader instrumentation is active. They will not produce any metrics, but the command will still increase the ",{"type":1873,"tag":2003,"props":2952,"children":2954},{"className":2953},[],[2955],{"type":1878,"value":2936},{"type":1878,"value":2010},{"type":1873,"tag":1874,"props":2958,"children":2959},{},[2960,2962,2968],{"type":1878,"value":2961},"During command execution, the captured metrics are written to the instrumentation object that is active when the respective draw, dispatch, or ray tracing commands was recorded.\nWrites to instrumentation objects performed by instrumented shaders are treated as ",{"type":1873,"tag":2003,"props":2963,"children":2965},{"className":2964},[],[2966],{"type":1878,"value":2967},"VK_ACCESS_2_SHADER_WRITE_BIT",{"type":1878,"value":2969}," operations.\nIf no instrumentation object was active, metrics from instrumented shaders are discarded.",{"type":1873,"tag":1874,"props":2971,"children":2972},{},[2973],{"type":1878,"value":2974},"If a command buffer is submitted multiple times, the shader instrumentation object will aggregate the results of all submissions - unless the results are cleared between submits.",{"type":1873,"tag":1951,"props":2976,"children":2978},{"id":2977},"_processing_counters",[2979],{"type":1878,"value":2980},"Processing counters",{"type":1873,"tag":2982,"props":2983,"children":2985},"h4",{"id":2984},"_enumerating_counters",[2986],{"type":1878,"value":2987},"Enumerating counters",{"type":1873,"tag":1874,"props":2989,"children":2990},{},[2991,2993,2999],{"type":1878,"value":2992},"The name and description of the instrumentation metrics is returned through ",{"type":1873,"tag":2003,"props":2994,"children":2996},{"className":2995},[],[2997],{"type":1878,"value":2998},"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM",{"type":1878,"value":2010},{"type":1873,"tag":2263,"props":3001,"children":3003},{"className":2265,"code":3002,"language":2267,"meta":2268,"style":2268},"typedef struct VkShaderInstrumentationMetricDescriptionARM {\n VkStructureType sType;\n void* pNext;\n char name[VK_MAX_DESCRIPTION_SIZE];\n char description[VK_MAX_DESCRIPTION_SIZE];\n} VkShaderInstrumentationMetricDescriptionARM;\n\nVkResult vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(\n VkPhysicalDevice physicalDevice,\n uint32_t* pDescriptionCount,\n VkShaderInstrumentationMetricDescriptionARM* pDescriptions);\n",[3004],{"type":1873,"tag":2003,"props":3005,"children":3006},{"__ignoreMap":2268},[3007,3023,3030,3041,3059,3075,3083,3090,3106,3123,3140],{"type":1873,"tag":2274,"props":3008,"children":3009},{"class":2276,"line":10},[3010,3014,3018],{"type":1873,"tag":2274,"props":3011,"children":3012},{"style":2280},[3013],{"type":1878,"value":2283},{"type":1873,"tag":2274,"props":3015,"children":3016},{"style":2280},[3017],{"type":1878,"value":2288},{"type":1873,"tag":2274,"props":3019,"children":3020},{"style":2291},[3021],{"type":1878,"value":3022}," VkShaderInstrumentationMetricDescriptionARM {\n",{"type":1873,"tag":2274,"props":3024,"children":3025},{"class":2276,"line":14},[3026],{"type":1873,"tag":2274,"props":3027,"children":3028},{"style":2291},[3029],{"type":1878,"value":2302},{"type":1873,"tag":2274,"props":3031,"children":3032},{"class":2276,"line":18},[3033,3037],{"type":1873,"tag":2274,"props":3034,"children":3035},{"style":2280},[3036],{"type":1878,"value":2310},{"type":1873,"tag":2274,"props":3038,"children":3039},{"style":2291},[3040],{"type":1878,"value":2315},{"type":1873,"tag":2274,"props":3042,"children":3043},{"class":2276,"line":22},[3044,3049,3054],{"type":1873,"tag":2274,"props":3045,"children":3046},{"style":2280},[3047],{"type":1878,"value":3048}," char",{"type":1873,"tag":2274,"props":3050,"children":3051},{"style":2531},[3052],{"type":1878,"value":3053}," name",{"type":1873,"tag":2274,"props":3055,"children":3056},{"style":2291},[3057],{"type":1878,"value":3058},"[VK_MAX_DESCRIPTION_SIZE];\n",{"type":1873,"tag":2274,"props":3060,"children":3061},{"class":2276,"line":26},[3062,3066,3071],{"type":1873,"tag":2274,"props":3063,"children":3064},{"style":2280},[3065],{"type":1878,"value":3048},{"type":1873,"tag":2274,"props":3067,"children":3068},{"style":2531},[3069],{"type":1878,"value":3070}," description",{"type":1873,"tag":2274,"props":3072,"children":3073},{"style":2291},[3074],{"type":1878,"value":3058},{"type":1873,"tag":2274,"props":3076,"children":3077},{"class":2276,"line":30},[3078],{"type":1873,"tag":2274,"props":3079,"children":3080},{"style":2291},[3081],{"type":1878,"value":3082},"} VkShaderInstrumentationMetricDescriptionARM;\n",{"type":1873,"tag":2274,"props":3084,"children":3085},{"class":2276,"line":34},[3086],{"type":1873,"tag":2274,"props":3087,"children":3088},{"emptyLinePlaceholder":232},[3089],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3091,"children":3092},{"class":2276,"line":38},[3093,3098,3102],{"type":1873,"tag":2274,"props":3094,"children":3095},{"style":2291},[3096],{"type":1878,"value":3097},"VkResult ",{"type":1873,"tag":2274,"props":3099,"children":3100},{"style":2438},[3101],{"type":1878,"value":2998},{"type":1873,"tag":2274,"props":3103,"children":3104},{"style":2291},[3105],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3107,"children":3108},{"class":2276,"line":42},[3109,3114,3119],{"type":1873,"tag":2274,"props":3110,"children":3111},{"style":2291},[3112],{"type":1878,"value":3113}," VkPhysicalDevice ",{"type":1873,"tag":2274,"props":3115,"children":3116},{"style":2531},[3117],{"type":1878,"value":3118},"physicalDevice",{"type":1873,"tag":2274,"props":3120,"children":3121},{"style":2291},[3122],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3124,"children":3125},{"class":2276,"line":46},[3126,3131,3136],{"type":1873,"tag":2274,"props":3127,"children":3128},{"style":2280},[3129],{"type":1878,"value":3130}," uint32_t*",{"type":1873,"tag":2274,"props":3132,"children":3133},{"style":2531},[3134],{"type":1878,"value":3135}," pDescriptionCount",{"type":1873,"tag":2274,"props":3137,"children":3138},{"style":2291},[3139],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3141,"children":3142},{"class":2276,"line":50},[3143,3148,3152,3157],{"type":1873,"tag":2274,"props":3144,"children":3145},{"style":2291},[3146],{"type":1878,"value":3147}," VkShaderInstrumentationMetricDescriptionARM",{"type":1873,"tag":2274,"props":3149,"children":3150},{"style":2280},[3151],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":3153,"children":3154},{"style":2531},[3155],{"type":1878,"value":3156}," pDescriptions",{"type":1873,"tag":2274,"props":3158,"children":3159},{"style":2291},[3160],{"type":1878,"value":2612},{"type":1873,"tag":2982,"props":3162,"children":3164},{"id":3163},"_retrieving_counters",[3165],{"type":1878,"value":3166},"Retrieving counters",{"type":1873,"tag":1874,"props":3168,"children":3169},{},[3170,3172,3178],{"type":1878,"value":3171},"Captured metrics can be retrieved by calling ",{"type":1873,"tag":2003,"props":3173,"children":3175},{"className":3174},[],[3176],{"type":1878,"value":3177},"vkGetShaderInstrumentationValuesARM",{"type":1878,"value":2010},{"type":1873,"tag":1874,"props":3180,"children":3181},{},[3182,3184,3190,3192,3198,3200,3205],{"type":1878,"value":3183},"The metrics are returned as a tightly packed array.\nEach entry consists of a ",{"type":1873,"tag":2003,"props":3185,"children":3187},{"className":3186},[],[3188],{"type":1878,"value":3189},"VkShaderInstrumentationMetricDataHeaderARM",{"type":1878,"value":3191}," followed immediately by ",{"type":1873,"tag":2003,"props":3193,"children":3195},{"className":3194},[],[3196],{"type":1878,"value":3197},"numMetrics",{"type":1878,"value":3199}," unsigned 64-bit counters.\nThe order of the metrics matches the order in which they are enumerated by ",{"type":1873,"tag":2003,"props":3201,"children":3203},{"className":3202},[],[3204],{"type":1878,"value":2998},{"type":1878,"value":2010},{"type":1873,"tag":1874,"props":3207,"children":3208},{},[3209,3211,3216,3218,3224,3226,3232],{"type":1878,"value":3210},"The ",{"type":1873,"tag":2003,"props":3212,"children":3214},{"className":3213},[],[3215],{"type":1878,"value":2936},{"type":1878,"value":3217}," is the index captured during command buffer recording, and identifies the draw, dispatch, or ray tracing command.\nFor ray tracing pipelines, ",{"type":1873,"tag":2003,"props":3219,"children":3221},{"className":3220},[],[3222],{"type":1878,"value":3223},"resultSubIndex",{"type":1878,"value":3225}," is the shader group index; otherwise it is zero.\nThe implementation may aggregate metrics for multiple shader stages. The 'stages' member describe which shader stages have been aggregated.\nThe 'basicBlockIndex' describes the index of the basic block that metrics are captured for. If ",{"type":1873,"tag":2003,"props":3227,"children":3229},{"className":3228},[],[3230],{"type":1878,"value":3231},"perBasicBlockGranularity",{"type":1878,"value":3233}," is VK_FALSE, results are aggregated and reported as basic block zero.",{"type":1873,"tag":2263,"props":3235,"children":3237},{"className":2265,"code":3236,"language":2267,"meta":2268,"style":2268},"typedef VkFlags VkShaderInstrumentationValuesFlagsARM;\n\ntypedef struct VkShaderInstrumentationMetricDataHeaderARM {\n uint32_t resultIndex;\n uint32_t resultSubIndex;\n VkShaderStageFlags stages;\n uint32_t basicBlockIndex;\n} VkShaderInstrumentationMetricDataHeaderARM;\n\nVkResult vkGetShaderInstrumentationValuesARM(\n VkDevice device,\n VkShaderInstrumentationARM instrumentation,\n uint32_t* pMetricBlockCount,\n void* pMetricValues,\n VkShaderInstrumentationValuesFlagsARM flags);\n",[3238],{"type":1873,"tag":2003,"props":3239,"children":3240},{"__ignoreMap":2268},[3241,3253,3260,3276,3288,3300,3308,3320,3328,3335,3350,3365,3380,3396,3412],{"type":1873,"tag":2274,"props":3242,"children":3243},{"class":2276,"line":10},[3244,3248],{"type":1873,"tag":2274,"props":3245,"children":3246},{"style":2280},[3247],{"type":1878,"value":2283},{"type":1873,"tag":2274,"props":3249,"children":3250},{"style":2291},[3251],{"type":1878,"value":3252}," VkFlags VkShaderInstrumentationValuesFlagsARM;\n",{"type":1873,"tag":2274,"props":3254,"children":3255},{"class":2276,"line":14},[3256],{"type":1873,"tag":2274,"props":3257,"children":3258},{"emptyLinePlaceholder":232},[3259],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3261,"children":3262},{"class":2276,"line":18},[3263,3267,3271],{"type":1873,"tag":2274,"props":3264,"children":3265},{"style":2280},[3266],{"type":1878,"value":2283},{"type":1873,"tag":2274,"props":3268,"children":3269},{"style":2280},[3270],{"type":1878,"value":2288},{"type":1873,"tag":2274,"props":3272,"children":3273},{"style":2291},[3274],{"type":1878,"value":3275}," VkShaderInstrumentationMetricDataHeaderARM {\n",{"type":1873,"tag":2274,"props":3277,"children":3278},{"class":2276,"line":22},[3279,3283],{"type":1873,"tag":2274,"props":3280,"children":3281},{"style":2280},[3282],{"type":1878,"value":2388},{"type":1873,"tag":2274,"props":3284,"children":3285},{"style":2291},[3286],{"type":1878,"value":3287}," resultIndex;\n",{"type":1873,"tag":2274,"props":3289,"children":3290},{"class":2276,"line":26},[3291,3295],{"type":1873,"tag":2274,"props":3292,"children":3293},{"style":2280},[3294],{"type":1878,"value":2388},{"type":1873,"tag":2274,"props":3296,"children":3297},{"style":2291},[3298],{"type":1878,"value":3299}," resultSubIndex;\n",{"type":1873,"tag":2274,"props":3301,"children":3302},{"class":2276,"line":30},[3303],{"type":1873,"tag":2274,"props":3304,"children":3305},{"style":2291},[3306],{"type":1878,"value":3307}," VkShaderStageFlags stages;\n",{"type":1873,"tag":2274,"props":3309,"children":3310},{"class":2276,"line":34},[3311,3315],{"type":1873,"tag":2274,"props":3312,"children":3313},{"style":2280},[3314],{"type":1878,"value":2388},{"type":1873,"tag":2274,"props":3316,"children":3317},{"style":2291},[3318],{"type":1878,"value":3319}," basicBlockIndex;\n",{"type":1873,"tag":2274,"props":3321,"children":3322},{"class":2276,"line":38},[3323],{"type":1873,"tag":2274,"props":3324,"children":3325},{"style":2291},[3326],{"type":1878,"value":3327},"} VkShaderInstrumentationMetricDataHeaderARM;\n",{"type":1873,"tag":2274,"props":3329,"children":3330},{"class":2276,"line":42},[3331],{"type":1873,"tag":2274,"props":3332,"children":3333},{"emptyLinePlaceholder":232},[3334],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3336,"children":3337},{"class":2276,"line":46},[3338,3342,3346],{"type":1873,"tag":2274,"props":3339,"children":3340},{"style":2291},[3341],{"type":1878,"value":3097},{"type":1873,"tag":2274,"props":3343,"children":3344},{"style":2438},[3345],{"type":1878,"value":3177},{"type":1873,"tag":2274,"props":3347,"children":3348},{"style":2291},[3349],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3351,"children":3352},{"class":2276,"line":50},[3353,3357,3361],{"type":1873,"tag":2274,"props":3354,"children":3355},{"style":2291},[3356],{"type":1878,"value":2528},{"type":1873,"tag":2274,"props":3358,"children":3359},{"style":2531},[3360],{"type":1878,"value":266},{"type":1873,"tag":2274,"props":3362,"children":3363},{"style":2291},[3364],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3366,"children":3367},{"class":2276,"line":54},[3368,3372,3376],{"type":1873,"tag":2274,"props":3369,"children":3370},{"style":2291},[3371],{"type":1878,"value":2659},{"type":1873,"tag":2274,"props":3373,"children":3374},{"style":2531},[3375],{"type":1878,"value":2664},{"type":1873,"tag":2274,"props":3377,"children":3378},{"style":2291},[3379],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3381,"children":3382},{"class":2276,"line":58},[3383,3387,3392],{"type":1873,"tag":2274,"props":3384,"children":3385},{"style":2280},[3386],{"type":1878,"value":3130},{"type":1873,"tag":2274,"props":3388,"children":3389},{"style":2531},[3390],{"type":1878,"value":3391}," pMetricBlockCount",{"type":1873,"tag":2274,"props":3393,"children":3394},{"style":2291},[3395],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3397,"children":3398},{"class":2276,"line":62},[3399,3403,3408],{"type":1873,"tag":2274,"props":3400,"children":3401},{"style":2280},[3402],{"type":1878,"value":2310},{"type":1873,"tag":2274,"props":3404,"children":3405},{"style":2531},[3406],{"type":1878,"value":3407}," pMetricValues",{"type":1873,"tag":2274,"props":3409,"children":3410},{"style":2291},[3411],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3413,"children":3414},{"class":2276,"line":66},[3415,3420,3425],{"type":1873,"tag":2274,"props":3416,"children":3417},{"style":2291},[3418],{"type":1878,"value":3419}," VkShaderInstrumentationValuesFlagsARM ",{"type":1873,"tag":2274,"props":3421,"children":3422},{"style":2531},[3423],{"type":1878,"value":3424},"flags",{"type":1873,"tag":2274,"props":3426,"children":3427},{"style":2291},[3428],{"type":1878,"value":2612},{"type":1873,"tag":2982,"props":3430,"children":3432},{"id":3431},"_clearing_metric_values",[3433],{"type":1878,"value":3434},"Clearing metric values",{"type":1873,"tag":1874,"props":3436,"children":3437},{},[3438],{"type":1878,"value":3439},"The data captured in an instrumentation object can be cleared to zero.\nThe motivating use case for this is when a command buffer is recorded once, but submitted multiple times. In that case, the user may want to get results per submit.",{"type":1873,"tag":2263,"props":3441,"children":3443},{"className":2265,"code":3442,"language":2267,"meta":2268,"style":2268},"void vkClearShaderInstrumentationMetricsARM(\n VkDevice device,\n VkShaderInstrumentationARM instrumentation);\n",[3444],{"type":1873,"tag":2003,"props":3445,"children":3446},{"__ignoreMap":2268},[3447,3463,3478],{"type":1873,"tag":2274,"props":3448,"children":3449},{"class":2276,"line":10},[3450,3454,3459],{"type":1873,"tag":2274,"props":3451,"children":3452},{"style":2280},[3453],{"type":1878,"value":2627},{"type":1873,"tag":2274,"props":3455,"children":3456},{"style":2438},[3457],{"type":1878,"value":3458}," vkClearShaderInstrumentationMetricsARM",{"type":1873,"tag":2274,"props":3460,"children":3461},{"style":2291},[3462],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3464,"children":3465},{"class":2276,"line":14},[3466,3470,3474],{"type":1873,"tag":2274,"props":3467,"children":3468},{"style":2291},[3469],{"type":1878,"value":2528},{"type":1873,"tag":2274,"props":3471,"children":3472},{"style":2531},[3473],{"type":1878,"value":266},{"type":1873,"tag":2274,"props":3475,"children":3476},{"style":2291},[3477],{"type":1878,"value":2538},{"type":1873,"tag":2274,"props":3479,"children":3480},{"class":2276,"line":18},[3481,3485,3489],{"type":1873,"tag":2274,"props":3482,"children":3483},{"style":2291},[3484],{"type":1878,"value":2659},{"type":1873,"tag":2274,"props":3486,"children":3487},{"style":2531},[3488],{"type":1878,"value":2664},{"type":1873,"tag":2274,"props":3490,"children":3491},{"style":2291},[3492],{"type":1878,"value":2612},{"type":1873,"tag":1874,"props":3494,"children":3495},{},[3496,3498,3503],{"type":1878,"value":3497},"This is a host side command as the assumption is that this only gets called once previous results have been retrieved via ",{"type":1873,"tag":2003,"props":3499,"children":3501},{"className":3500},[],[3502],{"type":1878,"value":3177},{"type":1878,"value":3504},", which is already a host side command.",{"type":1873,"tag":1880,"props":3506,"children":3508},{"id":3507},"_examples",[3509],{"type":1878,"value":3510},"Examples",{"type":1873,"tag":2263,"props":3512,"children":3514},{"className":2265,"code":3513,"language":2267,"meta":2268,"style":2268},"compute_pipeline_create_info.flags = VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM;\n\n/* Create a pipeline with the flag enabled. */\nvkCreateComputePipelines(compute_pipeline_create_info);\n\n\nVkShaderInstrumentationCreateInfoARM create_info = {\n VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM, /* sType */\n nullptr /* pNext */\n};\n\nVkShaderInstrumentationARM instrumentation = {};\nvkCreateShaderInstrumentationARM(\n device, /* device */\n create_info, /* createInfo */\n nullptr, /* pAllocator */\n &instrumentation /* pInstrumentation */\n);\n\nvkBeginCommandBuffer(cmd_buf, &cmd_buf_begin_info);\n\n/* ... */\n\n/* Bind resources and the compute pipeline (with instrumentation) */\n\nvkCmdBeginShaderInstrumentationARM(\n cmd_buf, /* commandBuffer */\n instrumentation /* instrumentation */\n);\n\n/* this dispatch will have the following header: resultIndex=0, shaderStage=compute, resultSubIndex=0 */\nvkCmdDispatch(cmd_buf, 128, 2, 1);\n\nvkCmdEndShaderInstrumentationARM(\n cmd_buf /* commandBuffer */\n);\n\n/* ... */\n\nvkCmdBeginShaderInstrumentationARM(\n cmd_buf, /* commandBuffer */\n instrumentation /* instrumentation */\n);\n\n/* this dispatch will have the following header: resultIndex=1, shaderStage=compute, resultSubIndex=0 */\nvkCmdDispatch(cmd_buf, 1, 1, 1);\n\n/* bind a compute pipeline without instrumentation */\n\n/* this dispatch will not be included in the results, but resultIndex=2 will be reserved for it */\nvkCmdDispatch(cmd_buf, 1, 1, 1);\n\n/* bind a graphics pipeline with instrumentation */\n\n/* assuming only v+f shaders, this draw will have entries with the following headers:\n * resultIndex=3, shaderStage=vertex, resultSubIndex=0\n * resultIndex=3, shaderStage=fragment, resultSubIndex=0\n */\nvkCmdDraw(cmd_buf, 1, 1, 0, 0);\n\nvkCmdEndShaderInstrumentationARM(\n cmd_buf /* commandBuffer */\n);\n\n/* Insert a memory barrier with srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT and dstMask = VK_ACCESS_HOST_READ_BIT */\n\n/* Finish the command buffer. */\nvkEndCommandBuffer(cmd_buf);\n\n/* Submit the command buffer and wait for GPU completion */\n\n/* Read out the counters.\n\n/* Get the descriptions for the counters: */\nVkShaderInstrumentationMetricDescriptionARM *descriptions = malloc(numMetrics * sizeof(VkShaderInstrumentationMetricDescriptionARM));\n\n/* note that this entry point requires pDescriptions to have space for numMetrics */\n\nvkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(\n physical_device, /* physicalDevice */\n &numMetrics, /* the number of descriptions to retrieve */\n descriptions /* pDescriptions */\n);\n\n/* Assume numMetrics == 6. The resulting array may have the following structure:\n *\n {{ \"fma\", \"Fused multiply accumulate operations\" },\n { \"cvt\", \"Arithmetic convert operations\" },\n { \"sfu\", \"Special functions operations\" },\n { \"ls\", \"Load/store operations\" },\n { \"tex\", \"Texture operations\" },\n { \"var\", \"Varying operations\" },\n }\n*/\n\nuint32_t total_basic_block_count;\n\n/* Get the number of basic blocks associated with the instrumentation object. */\nvkGetShaderInstrumentationValuesARM(\n device, /* device */\n instrumentation, /* instrumentation */\n &total_basic_block_count, /* pMetricBlockCount */\n nullptr, /* pMetricValues */\n 0 /* flags */\n);\n\nuint32_t stride = sizeof(VkShaderInstrumentationMetricDataHeaderARM) + sizeof(uint64_t) * numMetrics;\nvoid *metrics = malloc(stride * total_basic_block_count);\n\n/* Read out the metrics */\nVkResult result = vkGetShaderInstrumentationValuesARM(\n device, /* device */\n instrumentation, /* instrumentation */\n &total_basic_block_count, /* pMetricBlockCount */\n metrics, /* pMetricValues */\n 0 /* flags */\n);\n\n/* NOTE:\n * If total_basic_block_count is smaller than the value returned by the\n * implementation, the implementation will not write beyond\n * stride * total_basic_block_count.\n *\n * The intended usage is to read all available entries, so there is no\n * mechanism to randomly access a specific metric index.\n */\n\nif (result == VK_INCOMPLETE)\n{\n /* The output data will be truncated as the allocated memory was not big enough. */\n}\n\n/* At this point, all the counters should be contained within the metrics array.\n * Each block of data in the array is structured as:\n * {resultIndex, resultSubIndex, shaderStage, basicBlockIndex, fma, cvt, sfu, ls, tex, var}\n * The name/description of the metric can be looked up by searching for the matching index in the\n * descriptions array.\n * The array is sorted by resultIndex/shaderStage/resultSubIndex/basicBlockIndex in that order. Indices start\n * with 0 and increase by 1, shaderStage is the OR of all the stages accounted for on that record. */\n\n/* To get the counter totals for a specific draw/dispatch call, the user must sum the per-basic-block counters across\n * all basic blocks in the call, this example checks the command in the position 4 (index == 3): */\n\nuint64_t first_draw_vertex_fma = 0;\nuint64_t first_draw_fragment_fma = 0;\n\nuint64_t first_draw_total_fma = 0;\n\nuint32_t target_idx = 3; /* any index could be used here */\n\nfor (uint32_t i = 0; i \u003C total_basic_block_count; i++)\n{\n void *block_start = metrics + i * stride;\n VkShaderInstrumentationMetricDataHeaderARM *header = block_start;\n if (header->resultIndex \u003C target_idx)\n continue;\n if (header->resultIndex > target_idx) {\n /* since only the first index was needed, the loop can break here */\n break;\n }\n if (header->resultIndex == target_idx)\n {\n uint64_t *counters = block_start + sizeof(VkShaderInstrumentationMetricDataHeaderARM);\n\n /* Sum the fma counter values across all basic blocks for the draw */\n first_draw_total_fma += counters[fma_idx]; /* fma_idx = 0 (from vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM) */\n\n /* Summing the counters based on the shader stage is also possible: */\n if (header->shaderStage & VK_SHADER_STAGE_VERTEX_BIT)\n {\n first_draw_vertex_fma += counters[fma_idx];\n }\n if (header->shaderStage & VK_SHADER_STAGE_FRAGMENT_BIT)\n {\n first_draw_fragment_fma += counters[fma_idx];\n }\n }\n}\n\n/* Cleanup the metrics */\n\n/* Destroy the instrumentation object when we are done with it. The command buffer cannot be used anymore */\nvkDestroyShaderInstrumentationARM(\n device, /* device */\n instrumentation, /* instrumentation */\n nullptr /* pAllocator */\n);\n",[3515],{"type":1873,"tag":2003,"props":3516,"children":3517},{"__ignoreMap":2268},[3518,3535,3542,3551,3564,3571,3578,3595,3608,3621,3629,3636,3653,3664,3677,3690,3703,3720,3727,3734,3761,3768,3776,3783,3791,3798,3809,3822,3835,3842,3849,3857,3897,3904,3915,3928,3935,3942,3949,3956,3967,3978,3989,3996,4003,4011,4046,4053,4061,4068,4076,4111,4118,4126,4133,4141,4149,4157,4165,4210,4217,4228,4239,4246,4253,4261,4268,4276,4289,4296,4304,4311,4319,4326,4334,4379,4386,4394,4401,4412,4425,4447,4460,4467,4474,4482,4490,4499,4507,4515,4523,4531,4539,4547,4556,4563,4576,4583,4591,4602,4613,4627,4648,4660,4674,4681,4688,4746,4790,4797,4805,4826,4837,4848,4867,4879,4890,4897,4904,4913,4921,4929,4937,4944,4952,4961,4968,4975,4998,5006,5014,5022,5029,5037,5046,5054,5062,5070,5078,5086,5094,5102,5110,5118,5143,5167,5175,5199,5206,5237,5244,5299,5307,5350,5376,5398,5410,5431,5439,5451,5460,5479,5487,5526,5533,5541,5569,5576,5585,5607,5615,5636,5644,5664,5672,5692,5699,5707,5714,5721,5729,5736,5744,5757,5769,5781,5794],{"type":1873,"tag":2274,"props":3519,"children":3520},{"class":2276,"line":10},[3521,3526,3530],{"type":1873,"tag":2274,"props":3522,"children":3523},{"style":2291},[3524],{"type":1878,"value":3525},"compute_pipeline_create_info.flags ",{"type":1873,"tag":2274,"props":3527,"children":3528},{"style":2280},[3529],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":3531,"children":3532},{"style":2291},[3533],{"type":1878,"value":3534}," VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM;\n",{"type":1873,"tag":2274,"props":3536,"children":3537},{"class":2276,"line":14},[3538],{"type":1873,"tag":2274,"props":3539,"children":3540},{"emptyLinePlaceholder":232},[3541],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3543,"children":3544},{"class":2276,"line":18},[3545],{"type":1873,"tag":2274,"props":3546,"children":3548},{"style":3547},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[3549],{"type":1878,"value":3550},"/* Create a pipeline with the flag enabled. */\n",{"type":1873,"tag":2274,"props":3552,"children":3553},{"class":2276,"line":22},[3554,3559],{"type":1873,"tag":2274,"props":3555,"children":3556},{"style":2438},[3557],{"type":1878,"value":3558},"vkCreateComputePipelines",{"type":1873,"tag":2274,"props":3560,"children":3561},{"style":2291},[3562],{"type":1878,"value":3563},"(compute_pipeline_create_info);\n",{"type":1873,"tag":2274,"props":3565,"children":3566},{"class":2276,"line":26},[3567],{"type":1873,"tag":2274,"props":3568,"children":3569},{"emptyLinePlaceholder":232},[3570],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3572,"children":3573},{"class":2276,"line":30},[3574],{"type":1873,"tag":2274,"props":3575,"children":3576},{"emptyLinePlaceholder":232},[3577],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3579,"children":3580},{"class":2276,"line":34},[3581,3586,3590],{"type":1873,"tag":2274,"props":3582,"children":3583},{"style":2291},[3584],{"type":1878,"value":3585},"VkShaderInstrumentationCreateInfoARM create_info ",{"type":1873,"tag":2274,"props":3587,"children":3588},{"style":2280},[3589],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":3591,"children":3592},{"style":2291},[3593],{"type":1878,"value":3594}," {\n",{"type":1873,"tag":2274,"props":3596,"children":3597},{"class":2276,"line":38},[3598,3603],{"type":1873,"tag":2274,"props":3599,"children":3600},{"style":2291},[3601],{"type":1878,"value":3602}," VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM,",{"type":1873,"tag":2274,"props":3604,"children":3605},{"style":3547},[3606],{"type":1878,"value":3607}," /* sType */\n",{"type":1873,"tag":2274,"props":3609,"children":3610},{"class":2276,"line":42},[3611,3616],{"type":1873,"tag":2274,"props":3612,"children":3613},{"style":2291},[3614],{"type":1878,"value":3615}," nullptr",{"type":1873,"tag":2274,"props":3617,"children":3618},{"style":3547},[3619],{"type":1878,"value":3620}," /* pNext */\n",{"type":1873,"tag":2274,"props":3622,"children":3623},{"class":2276,"line":46},[3624],{"type":1873,"tag":2274,"props":3625,"children":3626},{"style":2291},[3627],{"type":1878,"value":3628},"};\n",{"type":1873,"tag":2274,"props":3630,"children":3631},{"class":2276,"line":50},[3632],{"type":1873,"tag":2274,"props":3633,"children":3634},{"emptyLinePlaceholder":232},[3635],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3637,"children":3638},{"class":2276,"line":54},[3639,3644,3648],{"type":1873,"tag":2274,"props":3640,"children":3641},{"style":2291},[3642],{"type":1878,"value":3643},"VkShaderInstrumentationARM instrumentation ",{"type":1873,"tag":2274,"props":3645,"children":3646},{"style":2280},[3647],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":3649,"children":3650},{"style":2291},[3651],{"type":1878,"value":3652}," {};\n",{"type":1873,"tag":2274,"props":3654,"children":3655},{"class":2276,"line":58},[3656,3660],{"type":1873,"tag":2274,"props":3657,"children":3658},{"style":2438},[3659],{"type":1878,"value":2515},{"type":1873,"tag":2274,"props":3661,"children":3662},{"style":2291},[3663],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3665,"children":3666},{"class":2276,"line":62},[3667,3672],{"type":1873,"tag":2274,"props":3668,"children":3669},{"style":2291},[3670],{"type":1878,"value":3671}," device,",{"type":1873,"tag":2274,"props":3673,"children":3674},{"style":3547},[3675],{"type":1878,"value":3676}," /* device */\n",{"type":1873,"tag":2274,"props":3678,"children":3679},{"class":2276,"line":66},[3680,3685],{"type":1873,"tag":2274,"props":3681,"children":3682},{"style":2291},[3683],{"type":1878,"value":3684}," create_info,",{"type":1873,"tag":2274,"props":3686,"children":3687},{"style":3547},[3688],{"type":1878,"value":3689}," /* createInfo */\n",{"type":1873,"tag":2274,"props":3691,"children":3692},{"class":2276,"line":70},[3693,3698],{"type":1873,"tag":2274,"props":3694,"children":3695},{"style":2291},[3696],{"type":1878,"value":3697}," nullptr,",{"type":1873,"tag":2274,"props":3699,"children":3700},{"style":3547},[3701],{"type":1878,"value":3702}," /* pAllocator */\n",{"type":1873,"tag":2274,"props":3704,"children":3705},{"class":2276,"line":74},[3706,3711,3715],{"type":1873,"tag":2274,"props":3707,"children":3708},{"style":2280},[3709],{"type":1878,"value":3710}," &",{"type":1873,"tag":2274,"props":3712,"children":3713},{"style":2291},[3714],{"type":1878,"value":2664},{"type":1873,"tag":2274,"props":3716,"children":3717},{"style":3547},[3718],{"type":1878,"value":3719}," /* pInstrumentation */\n",{"type":1873,"tag":2274,"props":3721,"children":3722},{"class":2276,"line":78},[3723],{"type":1873,"tag":2274,"props":3724,"children":3725},{"style":2291},[3726],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3728,"children":3729},{"class":2276,"line":82},[3730],{"type":1873,"tag":2274,"props":3731,"children":3732},{"emptyLinePlaceholder":232},[3733],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3735,"children":3736},{"class":2276,"line":86},[3737,3742,3747,3752,3757],{"type":1873,"tag":2274,"props":3738,"children":3739},{"style":2438},[3740],{"type":1878,"value":3741},"vkBeginCommandBuffer",{"type":1873,"tag":2274,"props":3743,"children":3744},{"style":2291},[3745],{"type":1878,"value":3746},"(cmd_buf, ",{"type":1873,"tag":2274,"props":3748,"children":3749},{"style":2280},[3750],{"type":1878,"value":3751},"&",{"type":1873,"tag":2274,"props":3753,"children":3754},{"style":2531},[3755],{"type":1878,"value":3756},"cmd_buf_begin_info",{"type":1873,"tag":2274,"props":3758,"children":3759},{"style":2291},[3760],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3762,"children":3763},{"class":2276,"line":90},[3764],{"type":1873,"tag":2274,"props":3765,"children":3766},{"emptyLinePlaceholder":232},[3767],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3769,"children":3770},{"class":2276,"line":94},[3771],{"type":1873,"tag":2274,"props":3772,"children":3773},{"style":3547},[3774],{"type":1878,"value":3775},"/* ... */\n",{"type":1873,"tag":2274,"props":3777,"children":3778},{"class":2276,"line":98},[3779],{"type":1873,"tag":2274,"props":3780,"children":3781},{"emptyLinePlaceholder":232},[3782],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3784,"children":3785},{"class":2276,"line":102},[3786],{"type":1873,"tag":2274,"props":3787,"children":3788},{"style":3547},[3789],{"type":1878,"value":3790},"/* Bind resources and the compute pipeline (with instrumentation) */\n",{"type":1873,"tag":2274,"props":3792,"children":3793},{"class":2276,"line":106},[3794],{"type":1873,"tag":2274,"props":3795,"children":3796},{"emptyLinePlaceholder":232},[3797],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3799,"children":3800},{"class":2276,"line":110},[3801,3805],{"type":1873,"tag":2274,"props":3802,"children":3803},{"style":2438},[3804],{"type":1878,"value":2814},{"type":1873,"tag":2274,"props":3806,"children":3807},{"style":2291},[3808],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3810,"children":3811},{"class":2276,"line":114},[3812,3817],{"type":1873,"tag":2274,"props":3813,"children":3814},{"style":2291},[3815],{"type":1878,"value":3816}," cmd_buf,",{"type":1873,"tag":2274,"props":3818,"children":3819},{"style":3547},[3820],{"type":1878,"value":3821}," /* commandBuffer */\n",{"type":1873,"tag":2274,"props":3823,"children":3824},{"class":2276,"line":118},[3825,3830],{"type":1873,"tag":2274,"props":3826,"children":3827},{"style":2291},[3828],{"type":1878,"value":3829}," instrumentation",{"type":1873,"tag":2274,"props":3831,"children":3832},{"style":3547},[3833],{"type":1878,"value":3834}," /* instrumentation */\n",{"type":1873,"tag":2274,"props":3836,"children":3837},{"class":2276,"line":122},[3838],{"type":1873,"tag":2274,"props":3839,"children":3840},{"style":2291},[3841],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3843,"children":3844},{"class":2276,"line":126},[3845],{"type":1873,"tag":2274,"props":3846,"children":3847},{"emptyLinePlaceholder":232},[3848],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3850,"children":3851},{"class":2276,"line":130},[3852],{"type":1873,"tag":2274,"props":3853,"children":3854},{"style":3547},[3855],{"type":1878,"value":3856},"/* this dispatch will have the following header: resultIndex=0, shaderStage=compute, resultSubIndex=0 */\n",{"type":1873,"tag":2274,"props":3858,"children":3859},{"class":2276,"line":134},[3860,3865,3869,3874,3879,3884,3888,3893],{"type":1873,"tag":2274,"props":3861,"children":3862},{"style":2438},[3863],{"type":1878,"value":3864},"vkCmdDispatch",{"type":1873,"tag":2274,"props":3866,"children":3867},{"style":2291},[3868],{"type":1878,"value":3746},{"type":1873,"tag":2274,"props":3870,"children":3871},{"style":2760},[3872],{"type":1878,"value":3873},"128",{"type":1873,"tag":2274,"props":3875,"children":3876},{"style":2291},[3877],{"type":1878,"value":3878},", ",{"type":1873,"tag":2274,"props":3880,"children":3881},{"style":2760},[3882],{"type":1878,"value":3883},"2",{"type":1873,"tag":2274,"props":3885,"children":3886},{"style":2291},[3887],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":3889,"children":3890},{"style":2760},[3891],{"type":1878,"value":3892},"1",{"type":1873,"tag":2274,"props":3894,"children":3895},{"style":2291},[3896],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3898,"children":3899},{"class":2276,"line":138},[3900],{"type":1873,"tag":2274,"props":3901,"children":3902},{"emptyLinePlaceholder":232},[3903],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3905,"children":3906},{"class":2276,"line":142},[3907,3911],{"type":1873,"tag":2274,"props":3908,"children":3909},{"style":2438},[3910],{"type":1878,"value":2821},{"type":1873,"tag":2274,"props":3912,"children":3913},{"style":2291},[3914],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3916,"children":3917},{"class":2276,"line":146},[3918,3923],{"type":1873,"tag":2274,"props":3919,"children":3920},{"style":2291},[3921],{"type":1878,"value":3922}," cmd_buf",{"type":1873,"tag":2274,"props":3924,"children":3925},{"style":3547},[3926],{"type":1878,"value":3927}," /* commandBuffer */\n",{"type":1873,"tag":2274,"props":3929,"children":3930},{"class":2276,"line":150},[3931],{"type":1873,"tag":2274,"props":3932,"children":3933},{"style":2291},[3934],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3936,"children":3937},{"class":2276,"line":154},[3938],{"type":1873,"tag":2274,"props":3939,"children":3940},{"emptyLinePlaceholder":232},[3941],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3943,"children":3944},{"class":2276,"line":158},[3945],{"type":1873,"tag":2274,"props":3946,"children":3947},{"style":3547},[3948],{"type":1878,"value":3775},{"type":1873,"tag":2274,"props":3950,"children":3951},{"class":2276,"line":162},[3952],{"type":1873,"tag":2274,"props":3953,"children":3954},{"emptyLinePlaceholder":232},[3955],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":3957,"children":3958},{"class":2276,"line":166},[3959,3963],{"type":1873,"tag":2274,"props":3960,"children":3961},{"style":2438},[3962],{"type":1878,"value":2814},{"type":1873,"tag":2274,"props":3964,"children":3965},{"style":2291},[3966],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":3968,"children":3969},{"class":2276,"line":170},[3970,3974],{"type":1873,"tag":2274,"props":3971,"children":3972},{"style":2291},[3973],{"type":1878,"value":3816},{"type":1873,"tag":2274,"props":3975,"children":3976},{"style":3547},[3977],{"type":1878,"value":3821},{"type":1873,"tag":2274,"props":3979,"children":3980},{"class":2276,"line":174},[3981,3985],{"type":1873,"tag":2274,"props":3982,"children":3983},{"style":2291},[3984],{"type":1878,"value":3829},{"type":1873,"tag":2274,"props":3986,"children":3987},{"style":3547},[3988],{"type":1878,"value":3834},{"type":1873,"tag":2274,"props":3990,"children":3991},{"class":2276,"line":178},[3992],{"type":1873,"tag":2274,"props":3993,"children":3994},{"style":2291},[3995],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":3997,"children":3998},{"class":2276,"line":182},[3999],{"type":1873,"tag":2274,"props":4000,"children":4001},{"emptyLinePlaceholder":232},[4002],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4004,"children":4005},{"class":2276,"line":186},[4006],{"type":1873,"tag":2274,"props":4007,"children":4008},{"style":3547},[4009],{"type":1878,"value":4010},"/* this dispatch will have the following header: resultIndex=1, shaderStage=compute, resultSubIndex=0 */\n",{"type":1873,"tag":2274,"props":4012,"children":4013},{"class":2276,"line":190},[4014,4018,4022,4026,4030,4034,4038,4042],{"type":1873,"tag":2274,"props":4015,"children":4016},{"style":2438},[4017],{"type":1878,"value":3864},{"type":1873,"tag":2274,"props":4019,"children":4020},{"style":2291},[4021],{"type":1878,"value":3746},{"type":1873,"tag":2274,"props":4023,"children":4024},{"style":2760},[4025],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4027,"children":4028},{"style":2291},[4029],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4031,"children":4032},{"style":2760},[4033],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4035,"children":4036},{"style":2291},[4037],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4039,"children":4040},{"style":2760},[4041],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4043,"children":4044},{"style":2291},[4045],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4047,"children":4048},{"class":2276,"line":194},[4049],{"type":1873,"tag":2274,"props":4050,"children":4051},{"emptyLinePlaceholder":232},[4052],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4054,"children":4055},{"class":2276,"line":198},[4056],{"type":1873,"tag":2274,"props":4057,"children":4058},{"style":3547},[4059],{"type":1878,"value":4060},"/* bind a compute pipeline without instrumentation */\n",{"type":1873,"tag":2274,"props":4062,"children":4063},{"class":2276,"line":202},[4064],{"type":1873,"tag":2274,"props":4065,"children":4066},{"emptyLinePlaceholder":232},[4067],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4069,"children":4070},{"class":2276,"line":206},[4071],{"type":1873,"tag":2274,"props":4072,"children":4073},{"style":3547},[4074],{"type":1878,"value":4075},"/* this dispatch will not be included in the results, but resultIndex=2 will be reserved for it */\n",{"type":1873,"tag":2274,"props":4077,"children":4078},{"class":2276,"line":210},[4079,4083,4087,4091,4095,4099,4103,4107],{"type":1873,"tag":2274,"props":4080,"children":4081},{"style":2438},[4082],{"type":1878,"value":3864},{"type":1873,"tag":2274,"props":4084,"children":4085},{"style":2291},[4086],{"type":1878,"value":3746},{"type":1873,"tag":2274,"props":4088,"children":4089},{"style":2760},[4090],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4092,"children":4093},{"style":2291},[4094],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4096,"children":4097},{"style":2760},[4098],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4100,"children":4101},{"style":2291},[4102],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4104,"children":4105},{"style":2760},[4106],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4108,"children":4109},{"style":2291},[4110],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4112,"children":4113},{"class":2276,"line":214},[4114],{"type":1873,"tag":2274,"props":4115,"children":4116},{"emptyLinePlaceholder":232},[4117],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4119,"children":4120},{"class":2276,"line":218},[4121],{"type":1873,"tag":2274,"props":4122,"children":4123},{"style":3547},[4124],{"type":1878,"value":4125},"/* bind a graphics pipeline with instrumentation */\n",{"type":1873,"tag":2274,"props":4127,"children":4128},{"class":2276,"line":222},[4129],{"type":1873,"tag":2274,"props":4130,"children":4131},{"emptyLinePlaceholder":232},[4132],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4134,"children":4135},{"class":2276,"line":226},[4136],{"type":1873,"tag":2274,"props":4137,"children":4138},{"style":3547},[4139],{"type":1878,"value":4140},"/* assuming only v+f shaders, this draw will have entries with the following headers:\n",{"type":1873,"tag":2274,"props":4142,"children":4143},{"class":2276,"line":1622},[4144],{"type":1873,"tag":2274,"props":4145,"children":4146},{"style":3547},[4147],{"type":1878,"value":4148}," * resultIndex=3, shaderStage=vertex, resultSubIndex=0\n",{"type":1873,"tag":2274,"props":4150,"children":4151},{"class":2276,"line":1618},[4152],{"type":1873,"tag":2274,"props":4153,"children":4154},{"style":3547},[4155],{"type":1878,"value":4156}," * resultIndex=3, shaderStage=fragment, resultSubIndex=0\n",{"type":1873,"tag":2274,"props":4158,"children":4159},{"class":2276,"line":1629},[4160],{"type":1873,"tag":2274,"props":4161,"children":4162},{"style":3547},[4163],{"type":1878,"value":4164}," */\n",{"type":1873,"tag":2274,"props":4166,"children":4167},{"class":2276,"line":1753},[4168,4173,4177,4181,4185,4189,4193,4198,4202,4206],{"type":1873,"tag":2274,"props":4169,"children":4170},{"style":2438},[4171],{"type":1878,"value":4172},"vkCmdDraw",{"type":1873,"tag":2274,"props":4174,"children":4175},{"style":2291},[4176],{"type":1878,"value":3746},{"type":1873,"tag":2274,"props":4178,"children":4179},{"style":2760},[4180],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4182,"children":4183},{"style":2291},[4184],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4186,"children":4187},{"style":2760},[4188],{"type":1878,"value":3892},{"type":1873,"tag":2274,"props":4190,"children":4191},{"style":2291},[4192],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4194,"children":4195},{"style":2760},[4196],{"type":1878,"value":4197},"0",{"type":1873,"tag":2274,"props":4199,"children":4200},{"style":2291},[4201],{"type":1878,"value":3878},{"type":1873,"tag":2274,"props":4203,"children":4204},{"style":2760},[4205],{"type":1878,"value":4197},{"type":1873,"tag":2274,"props":4207,"children":4208},{"style":2291},[4209],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4211,"children":4212},{"class":2276,"line":1184},[4213],{"type":1873,"tag":2274,"props":4214,"children":4215},{"emptyLinePlaceholder":232},[4216],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4218,"children":4219},{"class":2276,"line":1107},[4220,4224],{"type":1873,"tag":2274,"props":4221,"children":4222},{"style":2438},[4223],{"type":1878,"value":2821},{"type":1873,"tag":2274,"props":4225,"children":4226},{"style":2291},[4227],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":4229,"children":4230},{"class":2276,"line":939},[4231,4235],{"type":1873,"tag":2274,"props":4232,"children":4233},{"style":2291},[4234],{"type":1878,"value":3922},{"type":1873,"tag":2274,"props":4236,"children":4237},{"style":3547},[4238],{"type":1878,"value":3927},{"type":1873,"tag":2274,"props":4240,"children":4241},{"class":2276,"line":1517},[4242],{"type":1873,"tag":2274,"props":4243,"children":4244},{"style":2291},[4245],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4247,"children":4248},{"class":2276,"line":1332},[4249],{"type":1873,"tag":2274,"props":4250,"children":4251},{"emptyLinePlaceholder":232},[4252],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4254,"children":4255},{"class":2276,"line":877},[4256],{"type":1873,"tag":2274,"props":4257,"children":4258},{"style":3547},[4259],{"type":1878,"value":4260},"/* Insert a memory barrier with srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT and dstMask = VK_ACCESS_HOST_READ_BIT */\n",{"type":1873,"tag":2274,"props":4262,"children":4263},{"class":2276,"line":883},[4264],{"type":1873,"tag":2274,"props":4265,"children":4266},{"emptyLinePlaceholder":232},[4267],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4269,"children":4270},{"class":2276,"line":922},[4271],{"type":1873,"tag":2274,"props":4272,"children":4273},{"style":3547},[4274],{"type":1878,"value":4275},"/* Finish the command buffer. */\n",{"type":1873,"tag":2274,"props":4277,"children":4278},{"class":2276,"line":427},[4279,4284],{"type":1873,"tag":2274,"props":4280,"children":4281},{"style":2438},[4282],{"type":1878,"value":4283},"vkEndCommandBuffer",{"type":1873,"tag":2274,"props":4285,"children":4286},{"style":2291},[4287],{"type":1878,"value":4288},"(cmd_buf);\n",{"type":1873,"tag":2274,"props":4290,"children":4291},{"class":2276,"line":779},[4292],{"type":1873,"tag":2274,"props":4293,"children":4294},{"emptyLinePlaceholder":232},[4295],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4297,"children":4298},{"class":2276,"line":1211},[4299],{"type":1873,"tag":2274,"props":4300,"children":4301},{"style":3547},[4302],{"type":1878,"value":4303},"/* Submit the command buffer and wait for GPU completion */\n",{"type":1873,"tag":2274,"props":4305,"children":4306},{"class":2276,"line":1111},[4307],{"type":1873,"tag":2274,"props":4308,"children":4309},{"emptyLinePlaceholder":232},[4310],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4312,"children":4313},{"class":2276,"line":1147},[4314],{"type":1873,"tag":2274,"props":4315,"children":4316},{"style":3547},[4317],{"type":1878,"value":4318},"/* Read out the counters.\n",{"type":1873,"tag":2274,"props":4320,"children":4321},{"class":2276,"line":1143},[4322],{"type":1873,"tag":2274,"props":4323,"children":4324},{"emptyLinePlaceholder":232},[4325],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4327,"children":4328},{"class":2276,"line":1152},[4329],{"type":1873,"tag":2274,"props":4330,"children":4331},{"style":3547},[4332],{"type":1878,"value":4333},"/* Get the descriptions for the counters: */\n",{"type":1873,"tag":2274,"props":4335,"children":4336},{"class":2276,"line":1150},[4337,4342,4346,4351,4355,4360,4365,4369,4374],{"type":1873,"tag":2274,"props":4338,"children":4339},{"style":2291},[4340],{"type":1878,"value":4341},"VkShaderInstrumentationMetricDescriptionARM ",{"type":1873,"tag":2274,"props":4343,"children":4344},{"style":2280},[4345],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":4347,"children":4348},{"style":2291},[4349],{"type":1878,"value":4350},"descriptions ",{"type":1873,"tag":2274,"props":4352,"children":4353},{"style":2280},[4354],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":4356,"children":4357},{"style":2438},[4358],{"type":1878,"value":4359}," malloc",{"type":1873,"tag":2274,"props":4361,"children":4362},{"style":2291},[4363],{"type":1878,"value":4364},"(numMetrics ",{"type":1873,"tag":2274,"props":4366,"children":4367},{"style":2280},[4368],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":4370,"children":4371},{"style":2280},[4372],{"type":1878,"value":4373}," sizeof",{"type":1873,"tag":2274,"props":4375,"children":4376},{"style":2291},[4377],{"type":1878,"value":4378},"(VkShaderInstrumentationMetricDescriptionARM));\n",{"type":1873,"tag":2274,"props":4380,"children":4381},{"class":2276,"line":1477},[4382],{"type":1873,"tag":2274,"props":4383,"children":4384},{"emptyLinePlaceholder":232},[4385],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4387,"children":4388},{"class":2276,"line":1159},[4389],{"type":1873,"tag":2274,"props":4390,"children":4391},{"style":3547},[4392],{"type":1878,"value":4393},"/* note that this entry point requires pDescriptions to have space for numMetrics */\n",{"type":1873,"tag":2274,"props":4395,"children":4396},{"class":2276,"line":1155},[4397],{"type":1873,"tag":2274,"props":4398,"children":4399},{"emptyLinePlaceholder":232},[4400],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4402,"children":4403},{"class":2276,"line":1165},[4404,4408],{"type":1873,"tag":2274,"props":4405,"children":4406},{"style":2438},[4407],{"type":1878,"value":2998},{"type":1873,"tag":2274,"props":4409,"children":4410},{"style":2291},[4411],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":4413,"children":4414},{"class":2276,"line":1161},[4415,4420],{"type":1873,"tag":2274,"props":4416,"children":4417},{"style":2291},[4418],{"type":1878,"value":4419}," physical_device,",{"type":1873,"tag":2274,"props":4421,"children":4422},{"style":3547},[4423],{"type":1878,"value":4424}," /* physicalDevice */\n",{"type":1873,"tag":2274,"props":4426,"children":4427},{"class":2276,"line":1290},[4428,4433,4437,4442],{"type":1873,"tag":2274,"props":4429,"children":4430},{"style":2280},[4431],{"type":1878,"value":4432}," &",{"type":1873,"tag":2274,"props":4434,"children":4435},{"style":2531},[4436],{"type":1878,"value":3197},{"type":1873,"tag":2274,"props":4438,"children":4439},{"style":2291},[4440],{"type":1878,"value":4441},",",{"type":1873,"tag":2274,"props":4443,"children":4444},{"style":3547},[4445],{"type":1878,"value":4446}," /* the number of descriptions to retrieve */\n",{"type":1873,"tag":2274,"props":4448,"children":4449},{"class":2276,"line":461},[4450,4455],{"type":1873,"tag":2274,"props":4451,"children":4452},{"style":2291},[4453],{"type":1878,"value":4454}," descriptions",{"type":1873,"tag":2274,"props":4456,"children":4457},{"style":3547},[4458],{"type":1878,"value":4459}," /* pDescriptions */\n",{"type":1873,"tag":2274,"props":4461,"children":4462},{"class":2276,"line":1338},[4463],{"type":1873,"tag":2274,"props":4464,"children":4465},{"style":2291},[4466],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4468,"children":4469},{"class":2276,"line":1046},[4470],{"type":1873,"tag":2274,"props":4471,"children":4472},{"emptyLinePlaceholder":232},[4473],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4475,"children":4476},{"class":2276,"line":1199},[4477],{"type":1873,"tag":2274,"props":4478,"children":4479},{"style":3547},[4480],{"type":1878,"value":4481},"/* Assume numMetrics == 6. The resulting array may have the following structure:\n",{"type":1873,"tag":2274,"props":4483,"children":4484},{"class":2276,"line":1103},[4485],{"type":1873,"tag":2274,"props":4486,"children":4487},{"style":3547},[4488],{"type":1878,"value":4489}," *\n",{"type":1873,"tag":2274,"props":4491,"children":4493},{"class":2276,"line":4492},87,[4494],{"type":1873,"tag":2274,"props":4495,"children":4496},{"style":3547},[4497],{"type":1878,"value":4498}," {{ \"fma\", \"Fused multiply accumulate operations\" },\n",{"type":1873,"tag":2274,"props":4500,"children":4501},{"class":2276,"line":1537},[4502],{"type":1873,"tag":2274,"props":4503,"children":4504},{"style":3547},[4505],{"type":1878,"value":4506}," { \"cvt\", \"Arithmetic convert operations\" },\n",{"type":1873,"tag":2274,"props":4508,"children":4509},{"class":2276,"line":538},[4510],{"type":1873,"tag":2274,"props":4511,"children":4512},{"style":3547},[4513],{"type":1878,"value":4514}," { \"sfu\", \"Special functions operations\" },\n",{"type":1873,"tag":2274,"props":4516,"children":4517},{"class":2276,"line":419},[4518],{"type":1873,"tag":2274,"props":4519,"children":4520},{"style":3547},[4521],{"type":1878,"value":4522}," { \"ls\", \"Load/store operations\" },\n",{"type":1873,"tag":2274,"props":4524,"children":4525},{"class":2276,"line":554},[4526],{"type":1873,"tag":2274,"props":4527,"children":4528},{"style":3547},[4529],{"type":1878,"value":4530}," { \"tex\", \"Texture operations\" },\n",{"type":1873,"tag":2274,"props":4532,"children":4533},{"class":2276,"line":550},[4534],{"type":1873,"tag":2274,"props":4535,"children":4536},{"style":3547},[4537],{"type":1878,"value":4538}," { \"var\", \"Varying operations\" },\n",{"type":1873,"tag":2274,"props":4540,"children":4541},{"class":2276,"line":994},[4542],{"type":1873,"tag":2274,"props":4543,"children":4544},{"style":3547},[4545],{"type":1878,"value":4546}," }\n",{"type":1873,"tag":2274,"props":4548,"children":4550},{"class":2276,"line":4549},94,[4551],{"type":1873,"tag":2274,"props":4552,"children":4553},{"style":3547},[4554],{"type":1878,"value":4555},"*/\n",{"type":1873,"tag":2274,"props":4557,"children":4558},{"class":2276,"line":1726},[4559],{"type":1873,"tag":2274,"props":4560,"children":4561},{"emptyLinePlaceholder":232},[4562],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4564,"children":4565},{"class":2276,"line":1651},[4566,4571],{"type":1873,"tag":2274,"props":4567,"children":4568},{"style":2280},[4569],{"type":1878,"value":4570},"uint32_t",{"type":1873,"tag":2274,"props":4572,"children":4573},{"style":2291},[4574],{"type":1878,"value":4575}," total_basic_block_count;\n",{"type":1873,"tag":2274,"props":4577,"children":4578},{"class":2276,"line":1747},[4579],{"type":1873,"tag":2274,"props":4580,"children":4581},{"emptyLinePlaceholder":232},[4582],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4584,"children":4585},{"class":2276,"line":1529},[4586],{"type":1873,"tag":2274,"props":4587,"children":4588},{"style":3547},[4589],{"type":1878,"value":4590},"/* Get the number of basic blocks associated with the instrumentation object. */\n",{"type":1873,"tag":2274,"props":4592,"children":4593},{"class":2276,"line":1750},[4594,4598],{"type":1873,"tag":2274,"props":4595,"children":4596},{"style":2438},[4597],{"type":1878,"value":3177},{"type":1873,"tag":2274,"props":4599,"children":4600},{"style":2291},[4601],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":4603,"children":4604},{"class":2276,"line":547},[4605,4609],{"type":1873,"tag":2274,"props":4606,"children":4607},{"style":2291},[4608],{"type":1878,"value":3671},{"type":1873,"tag":2274,"props":4610,"children":4611},{"style":3547},[4612],{"type":1878,"value":3676},{"type":1873,"tag":2274,"props":4614,"children":4616},{"class":2276,"line":4615},101,[4617,4622],{"type":1873,"tag":2274,"props":4618,"children":4619},{"style":2291},[4620],{"type":1878,"value":4621}," instrumentation,",{"type":1873,"tag":2274,"props":4623,"children":4624},{"style":3547},[4625],{"type":1878,"value":4626}," /* instrumentation */\n",{"type":1873,"tag":2274,"props":4628,"children":4629},{"class":2276,"line":465},[4630,4634,4639,4643],{"type":1873,"tag":2274,"props":4631,"children":4632},{"style":2280},[4633],{"type":1878,"value":3710},{"type":1873,"tag":2274,"props":4635,"children":4636},{"style":2531},[4637],{"type":1878,"value":4638},"total_basic_block_count",{"type":1873,"tag":2274,"props":4640,"children":4641},{"style":2291},[4642],{"type":1878,"value":4441},{"type":1873,"tag":2274,"props":4644,"children":4645},{"style":3547},[4646],{"type":1878,"value":4647}," /* pMetricBlockCount */\n",{"type":1873,"tag":2274,"props":4649,"children":4650},{"class":2276,"line":503},[4651,4655],{"type":1873,"tag":2274,"props":4652,"children":4653},{"style":2291},[4654],{"type":1878,"value":3697},{"type":1873,"tag":2274,"props":4656,"children":4657},{"style":3547},[4658],{"type":1878,"value":4659}," /* pMetricValues */\n",{"type":1873,"tag":2274,"props":4661,"children":4663},{"class":2276,"line":4662},104,[4664,4669],{"type":1873,"tag":2274,"props":4665,"children":4666},{"style":2760},[4667],{"type":1878,"value":4668}," 0",{"type":1873,"tag":2274,"props":4670,"children":4671},{"style":3547},[4672],{"type":1878,"value":4673}," /* flags */\n",{"type":1873,"tag":2274,"props":4675,"children":4676},{"class":2276,"line":908},[4677],{"type":1873,"tag":2274,"props":4678,"children":4679},{"style":2291},[4680],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4682,"children":4683},{"class":2276,"line":628},[4684],{"type":1873,"tag":2274,"props":4685,"children":4686},{"emptyLinePlaceholder":232},[4687],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4689,"children":4691},{"class":2276,"line":4690},107,[4692,4696,4701,4705,4709,4714,4719,4723,4728,4732,4737,4741],{"type":1873,"tag":2274,"props":4693,"children":4694},{"style":2280},[4695],{"type":1878,"value":4570},{"type":1873,"tag":2274,"props":4697,"children":4698},{"style":2291},[4699],{"type":1878,"value":4700}," stride ",{"type":1873,"tag":2274,"props":4702,"children":4703},{"style":2280},[4704],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":4706,"children":4707},{"style":2280},[4708],{"type":1878,"value":4373},{"type":1873,"tag":2274,"props":4710,"children":4711},{"style":2291},[4712],{"type":1878,"value":4713},"(VkShaderInstrumentationMetricDataHeaderARM) ",{"type":1873,"tag":2274,"props":4715,"children":4716},{"style":2280},[4717],{"type":1878,"value":4718},"+",{"type":1873,"tag":2274,"props":4720,"children":4721},{"style":2280},[4722],{"type":1878,"value":4373},{"type":1873,"tag":2274,"props":4724,"children":4725},{"style":2291},[4726],{"type":1878,"value":4727},"(",{"type":1873,"tag":2274,"props":4729,"children":4730},{"style":2280},[4731],{"type":1878,"value":2149},{"type":1873,"tag":2274,"props":4733,"children":4734},{"style":2291},[4735],{"type":1878,"value":4736},") ",{"type":1873,"tag":2274,"props":4738,"children":4739},{"style":2280},[4740],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":4742,"children":4743},{"style":2291},[4744],{"type":1878,"value":4745}," numMetrics;\n",{"type":1873,"tag":2274,"props":4747,"children":4749},{"class":2276,"line":4748},108,[4750,4754,4759,4764,4768,4772,4777,4781,4786],{"type":1873,"tag":2274,"props":4751,"children":4752},{"style":2280},[4753],{"type":1878,"value":2627},{"type":1873,"tag":2274,"props":4755,"children":4756},{"style":2280},[4757],{"type":1878,"value":4758}," *",{"type":1873,"tag":2274,"props":4760,"children":4761},{"style":2291},[4762],{"type":1878,"value":4763},"metrics ",{"type":1873,"tag":2274,"props":4765,"children":4766},{"style":2280},[4767],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":4769,"children":4770},{"style":2438},[4771],{"type":1878,"value":4359},{"type":1873,"tag":2274,"props":4773,"children":4774},{"style":2291},[4775],{"type":1878,"value":4776},"(stride ",{"type":1873,"tag":2274,"props":4778,"children":4779},{"style":2280},[4780],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":4782,"children":4783},{"style":2531},[4784],{"type":1878,"value":4785}," total_basic_block_count",{"type":1873,"tag":2274,"props":4787,"children":4788},{"style":2291},[4789],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4791,"children":4792},{"class":2276,"line":1195},[4793],{"type":1873,"tag":2274,"props":4794,"children":4795},{"emptyLinePlaceholder":232},[4796],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4798,"children":4799},{"class":2276,"line":1083},[4800],{"type":1873,"tag":2274,"props":4801,"children":4802},{"style":3547},[4803],{"type":1878,"value":4804},"/* Read out the metrics */\n",{"type":1873,"tag":2274,"props":4806,"children":4807},{"class":2276,"line":1034},[4808,4813,4817,4822],{"type":1873,"tag":2274,"props":4809,"children":4810},{"style":2291},[4811],{"type":1878,"value":4812},"VkResult result ",{"type":1873,"tag":2274,"props":4814,"children":4815},{"style":2280},[4816],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":4818,"children":4819},{"style":2438},[4820],{"type":1878,"value":4821}," vkGetShaderInstrumentationValuesARM",{"type":1873,"tag":2274,"props":4823,"children":4824},{"style":2291},[4825],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":4827,"children":4828},{"class":2276,"line":1383},[4829,4833],{"type":1873,"tag":2274,"props":4830,"children":4831},{"style":2291},[4832],{"type":1878,"value":3671},{"type":1873,"tag":2274,"props":4834,"children":4835},{"style":3547},[4836],{"type":1878,"value":3676},{"type":1873,"tag":2274,"props":4838,"children":4839},{"class":2276,"line":1134},[4840,4844],{"type":1873,"tag":2274,"props":4841,"children":4842},{"style":2291},[4843],{"type":1878,"value":4621},{"type":1873,"tag":2274,"props":4845,"children":4846},{"style":3547},[4847],{"type":1878,"value":4626},{"type":1873,"tag":2274,"props":4849,"children":4850},{"class":2276,"line":1130},[4851,4855,4859,4863],{"type":1873,"tag":2274,"props":4852,"children":4853},{"style":2280},[4854],{"type":1878,"value":3710},{"type":1873,"tag":2274,"props":4856,"children":4857},{"style":2531},[4858],{"type":1878,"value":4638},{"type":1873,"tag":2274,"props":4860,"children":4861},{"style":2291},[4862],{"type":1878,"value":4441},{"type":1873,"tag":2274,"props":4864,"children":4865},{"style":3547},[4866],{"type":1878,"value":4647},{"type":1873,"tag":2274,"props":4868,"children":4869},{"class":2276,"line":1140},[4870,4875],{"type":1873,"tag":2274,"props":4871,"children":4872},{"style":2291},[4873],{"type":1878,"value":4874}," metrics,",{"type":1873,"tag":2274,"props":4876,"children":4877},{"style":3547},[4878],{"type":1878,"value":4659},{"type":1873,"tag":2274,"props":4880,"children":4881},{"class":2276,"line":1136},[4882,4886],{"type":1873,"tag":2274,"props":4883,"children":4884},{"style":2760},[4885],{"type":1878,"value":4668},{"type":1873,"tag":2274,"props":4887,"children":4888},{"style":3547},[4889],{"type":1878,"value":4673},{"type":1873,"tag":2274,"props":4891,"children":4892},{"class":2276,"line":1249},[4893],{"type":1873,"tag":2274,"props":4894,"children":4895},{"style":2291},[4896],{"type":1878,"value":2612},{"type":1873,"tag":2274,"props":4898,"children":4899},{"class":2276,"line":1216},[4900],{"type":1873,"tag":2274,"props":4901,"children":4902},{"emptyLinePlaceholder":232},[4903],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4905,"children":4907},{"class":2276,"line":4906},119,[4908],{"type":1873,"tag":2274,"props":4909,"children":4910},{"style":3547},[4911],{"type":1878,"value":4912},"/* NOTE:\n",{"type":1873,"tag":2274,"props":4914,"children":4915},{"class":2276,"line":1187},[4916],{"type":1873,"tag":2274,"props":4917,"children":4918},{"style":3547},[4919],{"type":1878,"value":4920}," * If total_basic_block_count is smaller than the value returned by the\n",{"type":1873,"tag":2274,"props":4922,"children":4923},{"class":2276,"line":1422},[4924],{"type":1873,"tag":2274,"props":4925,"children":4926},{"style":3547},[4927],{"type":1878,"value":4928}," * implementation, the implementation will not write beyond\n",{"type":1873,"tag":2274,"props":4930,"children":4931},{"class":2276,"line":1178},[4932],{"type":1873,"tag":2274,"props":4933,"children":4934},{"style":3547},[4935],{"type":1878,"value":4936}," * stride * total_basic_block_count.\n",{"type":1873,"tag":2274,"props":4938,"children":4939},{"class":2276,"line":1508},[4940],{"type":1873,"tag":2274,"props":4941,"children":4942},{"style":3547},[4943],{"type":1878,"value":4489},{"type":1873,"tag":2274,"props":4945,"children":4946},{"class":2276,"line":1513},[4947],{"type":1873,"tag":2274,"props":4948,"children":4949},{"style":3547},[4950],{"type":1878,"value":4951}," * The intended usage is to read all available entries, so there is no\n",{"type":1873,"tag":2274,"props":4953,"children":4955},{"class":2276,"line":4954},125,[4956],{"type":1873,"tag":2274,"props":4957,"children":4958},{"style":3547},[4959],{"type":1878,"value":4960}," * mechanism to randomly access a specific metric index.\n",{"type":1873,"tag":2274,"props":4962,"children":4963},{"class":2276,"line":575},[4964],{"type":1873,"tag":2274,"props":4965,"children":4966},{"style":3547},[4967],{"type":1878,"value":4164},{"type":1873,"tag":2274,"props":4969,"children":4970},{"class":2276,"line":812},[4971],{"type":1873,"tag":2274,"props":4972,"children":4973},{"emptyLinePlaceholder":232},[4974],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":4976,"children":4977},{"class":2276,"line":1088},[4978,4983,4988,4993],{"type":1873,"tag":2274,"props":4979,"children":4980},{"style":2280},[4981],{"type":1878,"value":4982},"if",{"type":1873,"tag":2274,"props":4984,"children":4985},{"style":2291},[4986],{"type":1878,"value":4987}," (result ",{"type":1873,"tag":2274,"props":4989,"children":4990},{"style":2280},[4991],{"type":1878,"value":4992},"==",{"type":1873,"tag":2274,"props":4994,"children":4995},{"style":2291},[4996],{"type":1878,"value":4997}," VK_INCOMPLETE)\n",{"type":1873,"tag":2274,"props":4999,"children":5000},{"class":2276,"line":483},[5001],{"type":1873,"tag":2274,"props":5002,"children":5003},{"style":2291},[5004],{"type":1878,"value":5005},"{\n",{"type":1873,"tag":2274,"props":5007,"children":5008},{"class":2276,"line":360},[5009],{"type":1873,"tag":2274,"props":5010,"children":5011},{"style":3547},[5012],{"type":1878,"value":5013}," /* The output data will be truncated as the allocated memory was not big enough. */\n",{"type":1873,"tag":2274,"props":5015,"children":5016},{"class":2276,"line":833},[5017],{"type":1873,"tag":2274,"props":5018,"children":5019},{"style":2291},[5020],{"type":1878,"value":5021},"}\n",{"type":1873,"tag":2274,"props":5023,"children":5024},{"class":2276,"line":1390},[5025],{"type":1873,"tag":2274,"props":5026,"children":5027},{"emptyLinePlaceholder":232},[5028],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5030,"children":5031},{"class":2276,"line":305},[5032],{"type":1873,"tag":2274,"props":5033,"children":5034},{"style":3547},[5035],{"type":1878,"value":5036},"/* At this point, all the counters should be contained within the metrics array.\n",{"type":1873,"tag":2274,"props":5038,"children":5040},{"class":2276,"line":5039},134,[5041],{"type":1873,"tag":2274,"props":5042,"children":5043},{"style":3547},[5044],{"type":1878,"value":5045}," * Each block of data in the array is structured as:\n",{"type":1873,"tag":2274,"props":5047,"children":5048},{"class":2276,"line":273},[5049],{"type":1873,"tag":2274,"props":5050,"children":5051},{"style":3547},[5052],{"type":1878,"value":5053}," * {resultIndex, resultSubIndex, shaderStage, basicBlockIndex, fma, cvt, sfu, ls, tex, var}\n",{"type":1873,"tag":2274,"props":5055,"children":5056},{"class":2276,"line":513},[5057],{"type":1873,"tag":2274,"props":5058,"children":5059},{"style":3547},[5060],{"type":1878,"value":5061}," * The name/description of the metric can be looked up by searching for the matching index in the\n",{"type":1873,"tag":2274,"props":5063,"children":5064},{"class":2276,"line":313},[5065],{"type":1873,"tag":2274,"props":5066,"children":5067},{"style":3547},[5068],{"type":1878,"value":5069}," * descriptions array.\n",{"type":1873,"tag":2274,"props":5071,"children":5072},{"class":2276,"line":338},[5073],{"type":1873,"tag":2274,"props":5074,"children":5075},{"style":3547},[5076],{"type":1878,"value":5077}," * The array is sorted by resultIndex/shaderStage/resultSubIndex/basicBlockIndex in that order. Indices start\n",{"type":1873,"tag":2274,"props":5079,"children":5080},{"class":2276,"line":672},[5081],{"type":1873,"tag":2274,"props":5082,"children":5083},{"style":3547},[5084],{"type":1878,"value":5085}," * with 0 and increase by 1, shaderStage is the OR of all the stages accounted for on that record. */\n",{"type":1873,"tag":2274,"props":5087,"children":5089},{"class":2276,"line":5088},140,[5090],{"type":1873,"tag":2274,"props":5091,"children":5092},{"emptyLinePlaceholder":232},[5093],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5095,"children":5096},{"class":2276,"line":874},[5097],{"type":1873,"tag":2274,"props":5098,"children":5099},{"style":3547},[5100],{"type":1878,"value":5101},"/* To get the counter totals for a specific draw/dispatch call, the user must sum the per-basic-block counters across\n",{"type":1873,"tag":2274,"props":5103,"children":5104},{"class":2276,"line":1326},[5105],{"type":1873,"tag":2274,"props":5106,"children":5107},{"style":3547},[5108],{"type":1878,"value":5109}," * all basic blocks in the call, this example checks the command in the position 4 (index == 3): */\n",{"type":1873,"tag":2274,"props":5111,"children":5113},{"class":2276,"line":5112},143,[5114],{"type":1873,"tag":2274,"props":5115,"children":5116},{"emptyLinePlaceholder":232},[5117],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5119,"children":5120},{"class":2276,"line":830},[5121,5125,5130,5134,5139],{"type":1873,"tag":2274,"props":5122,"children":5123},{"style":2280},[5124],{"type":1878,"value":2149},{"type":1873,"tag":2274,"props":5126,"children":5127},{"style":2291},[5128],{"type":1878,"value":5129}," first_draw_vertex_fma ",{"type":1873,"tag":2274,"props":5131,"children":5132},{"style":2280},[5133],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5135,"children":5136},{"style":2760},[5137],{"type":1878,"value":5138}," 0",{"type":1873,"tag":2274,"props":5140,"children":5141},{"style":2291},[5142],{"type":1878,"value":2773},{"type":1873,"tag":2274,"props":5144,"children":5145},{"class":2276,"line":1306},[5146,5150,5155,5159,5163],{"type":1873,"tag":2274,"props":5147,"children":5148},{"style":2280},[5149],{"type":1878,"value":2149},{"type":1873,"tag":2274,"props":5151,"children":5152},{"style":2291},[5153],{"type":1878,"value":5154}," first_draw_fragment_fma ",{"type":1873,"tag":2274,"props":5156,"children":5157},{"style":2280},[5158],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5160,"children":5161},{"style":2760},[5162],{"type":1878,"value":5138},{"type":1873,"tag":2274,"props":5164,"children":5165},{"style":2291},[5166],{"type":1878,"value":2773},{"type":1873,"tag":2274,"props":5168,"children":5170},{"class":2276,"line":5169},146,[5171],{"type":1873,"tag":2274,"props":5172,"children":5173},{"emptyLinePlaceholder":232},[5174],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5176,"children":5177},{"class":2276,"line":1181},[5178,5182,5187,5191,5195],{"type":1873,"tag":2274,"props":5179,"children":5180},{"style":2280},[5181],{"type":1878,"value":2149},{"type":1873,"tag":2274,"props":5183,"children":5184},{"style":2291},[5185],{"type":1878,"value":5186}," first_draw_total_fma ",{"type":1873,"tag":2274,"props":5188,"children":5189},{"style":2280},[5190],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5192,"children":5193},{"style":2760},[5194],{"type":1878,"value":5138},{"type":1873,"tag":2274,"props":5196,"children":5197},{"style":2291},[5198],{"type":1878,"value":2773},{"type":1873,"tag":2274,"props":5200,"children":5201},{"class":2276,"line":1192},[5202],{"type":1873,"tag":2274,"props":5203,"children":5204},{"emptyLinePlaceholder":232},[5205],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5207,"children":5208},{"class":2276,"line":440},[5209,5213,5218,5222,5227,5232],{"type":1873,"tag":2274,"props":5210,"children":5211},{"style":2280},[5212],{"type":1878,"value":4570},{"type":1873,"tag":2274,"props":5214,"children":5215},{"style":2291},[5216],{"type":1878,"value":5217}," target_idx ",{"type":1873,"tag":2274,"props":5219,"children":5220},{"style":2280},[5221],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5223,"children":5224},{"style":2760},[5225],{"type":1878,"value":5226}," 3",{"type":1873,"tag":2274,"props":5228,"children":5229},{"style":2291},[5230],{"type":1878,"value":5231},";",{"type":1873,"tag":2274,"props":5233,"children":5234},{"style":3547},[5235],{"type":1878,"value":5236}," /* any index could be used here */\n",{"type":1873,"tag":2274,"props":5238,"children":5239},{"class":2276,"line":1639},[5240],{"type":1873,"tag":2274,"props":5241,"children":5242},{"emptyLinePlaceholder":232},[5243],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5245,"children":5246},{"class":2276,"line":1055},[5247,5252,5257,5261,5266,5270,5274,5279,5284,5289,5294],{"type":1873,"tag":2274,"props":5248,"children":5249},{"style":2280},[5250],{"type":1878,"value":5251},"for",{"type":1873,"tag":2274,"props":5253,"children":5254},{"style":2291},[5255],{"type":1878,"value":5256}," (",{"type":1873,"tag":2274,"props":5258,"children":5259},{"style":2280},[5260],{"type":1878,"value":4570},{"type":1873,"tag":2274,"props":5262,"children":5263},{"style":2291},[5264],{"type":1878,"value":5265}," i ",{"type":1873,"tag":2274,"props":5267,"children":5268},{"style":2280},[5269],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5271,"children":5272},{"style":2760},[5273],{"type":1878,"value":5138},{"type":1873,"tag":2274,"props":5275,"children":5276},{"style":2291},[5277],{"type":1878,"value":5278},"; i ",{"type":1873,"tag":2274,"props":5280,"children":5281},{"style":2280},[5282],{"type":1878,"value":5283},"\u003C",{"type":1873,"tag":2274,"props":5285,"children":5286},{"style":2291},[5287],{"type":1878,"value":5288}," total_basic_block_count; i",{"type":1873,"tag":2274,"props":5290,"children":5291},{"style":2280},[5292],{"type":1878,"value":5293},"++",{"type":1873,"tag":2274,"props":5295,"children":5296},{"style":2291},[5297],{"type":1878,"value":5298},")\n",{"type":1873,"tag":2274,"props":5300,"children":5302},{"class":2276,"line":5301},152,[5303],{"type":1873,"tag":2274,"props":5304,"children":5305},{"style":2291},[5306],{"type":1878,"value":5005},{"type":1873,"tag":2274,"props":5308,"children":5309},{"class":2276,"line":1648},[5310,5315,5319,5324,5328,5333,5337,5341,5345],{"type":1873,"tag":2274,"props":5311,"children":5312},{"style":2280},[5313],{"type":1878,"value":5314}," void",{"type":1873,"tag":2274,"props":5316,"children":5317},{"style":2280},[5318],{"type":1878,"value":4758},{"type":1873,"tag":2274,"props":5320,"children":5321},{"style":2291},[5322],{"type":1878,"value":5323},"block_start ",{"type":1873,"tag":2274,"props":5325,"children":5326},{"style":2280},[5327],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5329,"children":5330},{"style":2291},[5331],{"type":1878,"value":5332}," metrics ",{"type":1873,"tag":2274,"props":5334,"children":5335},{"style":2280},[5336],{"type":1878,"value":4718},{"type":1873,"tag":2274,"props":5338,"children":5339},{"style":2291},[5340],{"type":1878,"value":5265},{"type":1873,"tag":2274,"props":5342,"children":5343},{"style":2280},[5344],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":5346,"children":5347},{"style":2291},[5348],{"type":1878,"value":5349}," stride;\n",{"type":1873,"tag":2274,"props":5351,"children":5352},{"class":2276,"line":1636},[5353,5358,5362,5367,5371],{"type":1873,"tag":2274,"props":5354,"children":5355},{"style":2291},[5356],{"type":1878,"value":5357}," VkShaderInstrumentationMetricDataHeaderARM ",{"type":1873,"tag":2274,"props":5359,"children":5360},{"style":2280},[5361],{"type":1878,"value":2556},{"type":1873,"tag":2274,"props":5363,"children":5364},{"style":2291},[5365],{"type":1878,"value":5366},"header ",{"type":1873,"tag":2274,"props":5368,"children":5369},{"style":2280},[5370],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5372,"children":5373},{"style":2291},[5374],{"type":1878,"value":5375}," block_start;\n",{"type":1873,"tag":2274,"props":5377,"children":5378},{"class":2276,"line":1738},[5379,5384,5389,5393],{"type":1873,"tag":2274,"props":5380,"children":5381},{"style":2280},[5382],{"type":1878,"value":5383}," if",{"type":1873,"tag":2274,"props":5385,"children":5386},{"style":2291},[5387],{"type":1878,"value":5388}," (header->resultIndex ",{"type":1873,"tag":2274,"props":5390,"children":5391},{"style":2280},[5392],{"type":1878,"value":5283},{"type":1873,"tag":2274,"props":5394,"children":5395},{"style":2291},[5396],{"type":1878,"value":5397}," target_idx)\n",{"type":1873,"tag":2274,"props":5399,"children":5400},{"class":2276,"line":784},[5401,5406],{"type":1873,"tag":2274,"props":5402,"children":5403},{"style":2280},[5404],{"type":1878,"value":5405}," continue",{"type":1873,"tag":2274,"props":5407,"children":5408},{"style":2291},[5409],{"type":1878,"value":2773},{"type":1873,"tag":2274,"props":5411,"children":5412},{"class":2276,"line":1314},[5413,5417,5421,5426],{"type":1873,"tag":2274,"props":5414,"children":5415},{"style":2280},[5416],{"type":1878,"value":5383},{"type":1873,"tag":2274,"props":5418,"children":5419},{"style":2291},[5420],{"type":1878,"value":5388},{"type":1873,"tag":2274,"props":5422,"children":5423},{"style":2280},[5424],{"type":1878,"value":5425},">",{"type":1873,"tag":2274,"props":5427,"children":5428},{"style":2291},[5429],{"type":1878,"value":5430}," target_idx) {\n",{"type":1873,"tag":2274,"props":5432,"children":5433},{"class":2276,"line":1061},[5434],{"type":1873,"tag":2274,"props":5435,"children":5436},{"style":3547},[5437],{"type":1878,"value":5438}," /* since only the first index was needed, the loop can break here */\n",{"type":1873,"tag":2274,"props":5440,"children":5441},{"class":2276,"line":655},[5442,5447],{"type":1873,"tag":2274,"props":5443,"children":5444},{"style":2280},[5445],{"type":1878,"value":5446}," break",{"type":1873,"tag":2274,"props":5448,"children":5449},{"style":2291},[5450],{"type":1878,"value":2773},{"type":1873,"tag":2274,"props":5452,"children":5454},{"class":2276,"line":5453},160,[5455],{"type":1873,"tag":2274,"props":5456,"children":5457},{"style":2291},[5458],{"type":1878,"value":5459}," }\n",{"type":1873,"tag":2274,"props":5461,"children":5462},{"class":2276,"line":930},[5463,5467,5471,5475],{"type":1873,"tag":2274,"props":5464,"children":5465},{"style":2280},[5466],{"type":1878,"value":5383},{"type":1873,"tag":2274,"props":5468,"children":5469},{"style":2291},[5470],{"type":1878,"value":5388},{"type":1873,"tag":2274,"props":5472,"children":5473},{"style":2280},[5474],{"type":1878,"value":4992},{"type":1873,"tag":2274,"props":5476,"children":5477},{"style":2291},[5478],{"type":1878,"value":5397},{"type":1873,"tag":2274,"props":5480,"children":5481},{"class":2276,"line":516},[5482],{"type":1873,"tag":2274,"props":5483,"children":5484},{"style":2291},[5485],{"type":1878,"value":5486}," {\n",{"type":1873,"tag":2274,"props":5488,"children":5489},{"class":2276,"line":892},[5490,5495,5499,5504,5508,5513,5517,5521],{"type":1873,"tag":2274,"props":5491,"children":5492},{"style":2280},[5493],{"type":1878,"value":5494}," uint64_t",{"type":1873,"tag":2274,"props":5496,"children":5497},{"style":2280},[5498],{"type":1878,"value":4758},{"type":1873,"tag":2274,"props":5500,"children":5501},{"style":2291},[5502],{"type":1878,"value":5503},"counters ",{"type":1873,"tag":2274,"props":5505,"children":5506},{"style":2280},[5507],{"type":1878,"value":2752},{"type":1873,"tag":2274,"props":5509,"children":5510},{"style":2291},[5511],{"type":1878,"value":5512}," block_start ",{"type":1873,"tag":2274,"props":5514,"children":5515},{"style":2280},[5516],{"type":1878,"value":4718},{"type":1873,"tag":2274,"props":5518,"children":5519},{"style":2280},[5520],{"type":1878,"value":4373},{"type":1873,"tag":2274,"props":5522,"children":5523},{"style":2291},[5524],{"type":1878,"value":5525},"(VkShaderInstrumentationMetricDataHeaderARM);\n",{"type":1873,"tag":2274,"props":5527,"children":5528},{"class":2276,"line":1267},[5529],{"type":1873,"tag":2274,"props":5530,"children":5531},{"emptyLinePlaceholder":232},[5532],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5534,"children":5535},{"class":2276,"line":1744},[5536],{"type":1873,"tag":2274,"props":5537,"children":5538},{"style":3547},[5539],{"type":1878,"value":5540}," /* Sum the fma counter values across all basic blocks for the draw */\n",{"type":1873,"tag":2274,"props":5542,"children":5543},{"class":2276,"line":1707},[5544,5549,5554,5559,5564],{"type":1873,"tag":2274,"props":5545,"children":5546},{"style":2291},[5547],{"type":1878,"value":5548}," first_draw_total_fma ",{"type":1873,"tag":2274,"props":5550,"children":5551},{"style":2280},[5552],{"type":1878,"value":5553},"+=",{"type":1873,"tag":2274,"props":5555,"children":5556},{"style":2531},[5557],{"type":1878,"value":5558}," counters",{"type":1873,"tag":2274,"props":5560,"children":5561},{"style":2291},[5562],{"type":1878,"value":5563},"[fma_idx];",{"type":1873,"tag":2274,"props":5565,"children":5566},{"style":3547},[5567],{"type":1878,"value":5568}," /* fma_idx = 0 (from vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM) */\n",{"type":1873,"tag":2274,"props":5570,"children":5571},{"class":2276,"line":1723},[5572],{"type":1873,"tag":2274,"props":5573,"children":5574},{"emptyLinePlaceholder":232},[5575],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5577,"children":5579},{"class":2276,"line":5578},168,[5580],{"type":1873,"tag":2274,"props":5581,"children":5582},{"style":3547},[5583],{"type":1878,"value":5584}," /* Summing the counters based on the shader stage is also possible: */\n",{"type":1873,"tag":2274,"props":5586,"children":5587},{"class":2276,"line":1220},[5588,5593,5598,5602],{"type":1873,"tag":2274,"props":5589,"children":5590},{"style":2280},[5591],{"type":1878,"value":5592}," if",{"type":1873,"tag":2274,"props":5594,"children":5595},{"style":2291},[5596],{"type":1878,"value":5597}," (header->shaderStage ",{"type":1873,"tag":2274,"props":5599,"children":5600},{"style":2280},[5601],{"type":1878,"value":3751},{"type":1873,"tag":2274,"props":5603,"children":5604},{"style":2291},[5605],{"type":1878,"value":5606}," VK_SHADER_STAGE_VERTEX_BIT)\n",{"type":1873,"tag":2274,"props":5608,"children":5609},{"class":2276,"line":1118},[5610],{"type":1873,"tag":2274,"props":5611,"children":5612},{"style":2291},[5613],{"type":1878,"value":5614}," {\n",{"type":1873,"tag":2274,"props":5616,"children":5617},{"class":2276,"line":587},[5618,5623,5627,5631],{"type":1873,"tag":2274,"props":5619,"children":5620},{"style":2291},[5621],{"type":1878,"value":5622}," first_draw_vertex_fma ",{"type":1873,"tag":2274,"props":5624,"children":5625},{"style":2280},[5626],{"type":1878,"value":5553},{"type":1873,"tag":2274,"props":5628,"children":5629},{"style":2531},[5630],{"type":1878,"value":5558},{"type":1873,"tag":2274,"props":5632,"children":5633},{"style":2291},[5634],{"type":1878,"value":5635},"[fma_idx];\n",{"type":1873,"tag":2274,"props":5637,"children":5638},{"class":2276,"line":1797},[5639],{"type":1873,"tag":2274,"props":5640,"children":5641},{"style":2291},[5642],{"type":1878,"value":5643}," }\n",{"type":1873,"tag":2274,"props":5645,"children":5646},{"class":2276,"line":1767},[5647,5651,5655,5659],{"type":1873,"tag":2274,"props":5648,"children":5649},{"style":2280},[5650],{"type":1878,"value":5592},{"type":1873,"tag":2274,"props":5652,"children":5653},{"style":2291},[5654],{"type":1878,"value":5597},{"type":1873,"tag":2274,"props":5656,"children":5657},{"style":2280},[5658],{"type":1878,"value":3751},{"type":1873,"tag":2274,"props":5660,"children":5661},{"style":2291},[5662],{"type":1878,"value":5663}," VK_SHADER_STAGE_FRAGMENT_BIT)\n",{"type":1873,"tag":2274,"props":5665,"children":5667},{"class":2276,"line":5666},174,[5668],{"type":1873,"tag":2274,"props":5669,"children":5670},{"style":2291},[5671],{"type":1878,"value":5614},{"type":1873,"tag":2274,"props":5673,"children":5674},{"class":2276,"line":615},[5675,5680,5684,5688],{"type":1873,"tag":2274,"props":5676,"children":5677},{"style":2291},[5678],{"type":1878,"value":5679}," first_draw_fragment_fma ",{"type":1873,"tag":2274,"props":5681,"children":5682},{"style":2280},[5683],{"type":1878,"value":5553},{"type":1873,"tag":2274,"props":5685,"children":5686},{"style":2531},[5687],{"type":1878,"value":5558},{"type":1873,"tag":2274,"props":5689,"children":5690},{"style":2291},[5691],{"type":1878,"value":5635},{"type":1873,"tag":2274,"props":5693,"children":5694},{"class":2276,"line":1368},[5695],{"type":1873,"tag":2274,"props":5696,"children":5697},{"style":2291},[5698],{"type":1878,"value":5643},{"type":1873,"tag":2274,"props":5700,"children":5702},{"class":2276,"line":5701},177,[5703],{"type":1873,"tag":2274,"props":5704,"children":5705},{"style":2291},[5706],{"type":1878,"value":5459},{"type":1873,"tag":2274,"props":5708,"children":5709},{"class":2276,"line":1051},[5710],{"type":1873,"tag":2274,"props":5711,"children":5712},{"style":2291},[5713],{"type":1878,"value":5021},{"type":1873,"tag":2274,"props":5715,"children":5716},{"class":2276,"line":579},[5717],{"type":1873,"tag":2274,"props":5718,"children":5719},{"emptyLinePlaceholder":232},[5720],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5722,"children":5723},{"class":2276,"line":283},[5724],{"type":1873,"tag":2274,"props":5725,"children":5726},{"style":3547},[5727],{"type":1878,"value":5728},"/* Cleanup the metrics */\n",{"type":1873,"tag":2274,"props":5730,"children":5731},{"class":2276,"line":1322},[5732],{"type":1873,"tag":2274,"props":5733,"children":5734},{"emptyLinePlaceholder":232},[5735],{"type":1878,"value":2339},{"type":1873,"tag":2274,"props":5737,"children":5738},{"class":2276,"line":1329},[5739],{"type":1873,"tag":2274,"props":5740,"children":5741},{"style":3547},[5742],{"type":1878,"value":5743},"/* Destroy the instrumentation object when we are done with it. The command buffer cannot be used anymore */\n",{"type":1873,"tag":2274,"props":5745,"children":5747},{"class":2276,"line":5746},183,[5748,5753],{"type":1873,"tag":2274,"props":5749,"children":5750},{"style":2438},[5751],{"type":1878,"value":5752},"vkDestroyShaderInstrumentationARM",{"type":1873,"tag":2274,"props":5754,"children":5755},{"style":2291},[5756],{"type":1878,"value":2520},{"type":1873,"tag":2274,"props":5758,"children":5759},{"class":2276,"line":319},[5760,5765],{"type":1873,"tag":2274,"props":5761,"children":5762},{"style":2291},[5763],{"type":1878,"value":5764}," device,",{"type":1873,"tag":2274,"props":5766,"children":5767},{"style":3547},[5768],{"type":1878,"value":3676},{"type":1873,"tag":2274,"props":5770,"children":5771},{"class":2276,"line":453},[5772,5777],{"type":1873,"tag":2274,"props":5773,"children":5774},{"style":2291},[5775],{"type":1878,"value":5776}," instrumentation,",{"type":1873,"tag":2274,"props":5778,"children":5779},{"style":3547},[5780],{"type":1878,"value":4626},{"type":1873,"tag":2274,"props":5782,"children":5783},{"class":2276,"line":326},[5784,5789],{"type":1873,"tag":2274,"props":5785,"children":5786},{"style":2291},[5787],{"type":1878,"value":5788}," nullptr",{"type":1873,"tag":2274,"props":5790,"children":5791},{"style":3547},[5792],{"type":1878,"value":5793}," /* pAllocator */\n",{"type":1873,"tag":2274,"props":5795,"children":5797},{"class":2276,"line":5796},187,[5798],{"type":1873,"tag":2274,"props":5799,"children":5800},{"style":2291},[5801],{"type":1878,"value":2612},{"type":1873,"tag":1880,"props":5803,"children":5805},{"id":5804},"_issues",[5806],{"type":1878,"value":5807},"Issues",{"type":1873,"tag":1951,"props":5809,"children":5811},{"id":5810},"_should_we_support_per_basic_block_counters",[5812],{"type":1878,"value":5813},"Should we support per-basic-block counters?",{"type":1873,"tag":1874,"props":5815,"children":5816},{},[5817],{"type":1878,"value":5818},"Yes.",{"type":1873,"tag":1874,"props":5820,"children":5821},{},[5822],{"type":1878,"value":5823},"For this information to be useful to developers, however, tools will need to map implementation-defined basic blocks back to SPIR-V basic blocks.\nThis API does not currently provide any information to assist with this mapping.",{"type":1873,"tag":1951,"props":5825,"children":5827},{"id":5826},"_can_shader_objects_be_instrumented",[5828],{"type":1878,"value":5829},"Can shader objects be instrumented?",{"type":1873,"tag":1874,"props":5831,"children":5832},{},[5833],{"type":1878,"value":5834},"Yes.\nWhen shader objects are supported, they can be instrumented in the same way as shaders in a pipeline.",{"type":1873,"tag":1951,"props":5836,"children":5838},{"id":5837},"_should_the_instrumentation_object_support_a_reset_operation",[5839],{"type":1878,"value":5840},"Should the instrumentation object support a reset operation?",{"type":1873,"tag":1874,"props":5842,"children":5843},{},[5844,5846,5851],{"type":1878,"value":5845},"For command buffers that are recorded once and submitted multiple time, it would be useful to be able to set the values of the instrumentation object to 0.\nHowever, this is not a full reset back to an initial state because we want any recorded ",{"type":1873,"tag":2003,"props":5847,"children":5849},{"className":5848},[],[5850],{"type":1878,"value":2936},{"type":1878,"value":5852}," values to remain valid.",{"type":1873,"tag":1874,"props":5854,"children":5855},{},[5856,5858,5864],{"type":1878,"value":5857},"Instead of a reset, we are adding a clear operation, ",{"type":1873,"tag":2003,"props":5859,"children":5861},{"className":5860},[],[5862],{"type":1878,"value":5863},"vkClearShaderInstrumentationMetricsARM",{"type":1878,"value":2010},{"type":1873,"tag":1874,"props":5866,"children":5867},{},[5868],{"type":1878,"value":5869},"There is no way to set the instrumentation object to its initial state. If that is the desired behavior, a new instrumentation object should be created.",{"type":1873,"tag":1951,"props":5871,"children":5873},{"id":5872},"_the_vkshaderinstrumentationcreateinfoarm_has_no_parameters_and_can_be_used_to_chain_additional_structures_via_pnext_in_the_future_is_it_worth_keeping",[5874],{"type":1878,"value":5875},"The VkShaderInstrumentationCreateInfoARM has no parameters, and can be used to chain additional structures via pNext in the future. Is it worth keeping?",{"type":1873,"tag":1874,"props":5877,"children":5878},{},[5879],{"type":1878,"value":5880},"Yes. We want to have the option of adding items to the pNext chain in the future.",{"type":1873,"tag":1880,"props":5882,"children":5884},{"id":5883},"_validation_and_tools",[5885],{"type":1878,"value":5886},"Validation and Tools",{"type":1873,"tag":1874,"props":5888,"children":5889},{},[5890],{"type":1878,"value":5891},"Use of this extension is intended to be implemented in a Vulkan debug layer, where tools would hide the extension from the application and insert relevant calls on replay.\nTools may intercept the creation of instrumented pipelines and instrumentation objects and insert begin/end regions around individual draw/dispatch calls.",{"type":1873,"tag":1951,"props":5893,"children":5895},{"id":5894},"_can_tools_safely_replay_with_this_extension_enabled",[5896],{"type":1878,"value":5897},"Can tools safely replay with this extension enabled?",{"type":1873,"tag":1874,"props":5899,"children":5900},{},[5901],{"type":1878,"value":5902},"The extension itself does not enable anything, the tool would have to add a pipeline creation flag and insert relevant calls themselves. Tools can safely replay with the extension enabled.",{"type":1873,"tag":1951,"props":5904,"children":5906},{"id":5905},"_what_happens_if_a_capture_is_replayed_without_instrumentation_enabled",[5907],{"type":1878,"value":5908},"What happens if a capture is replayed without instrumentation enabled?",{"type":1873,"tag":1874,"props":5910,"children":5911},{},[5912],{"type":1878,"value":5913},"The compiler will generate different code based on whether or not the flag is enabled. As such, no counters will be written if the pipeline is created without the instrumentation flag.",{"type":1873,"tag":5915,"props":5916,"children":5917},"style",{},[5918],{"type":1878,"value":5919},"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":2268,"searchDepth":14,"depth":14,"links":5921},[5922,5923,5927,5933,5934,5940],{"id":1882,"depth":14,"text":1885},{"id":1931,"depth":14,"text":1934,"children":5924},[5925,5926],{"id":1953,"depth":18,"text":1956},{"id":2109,"depth":18,"text":2112},{"id":2247,"depth":14,"text":2250,"children":5928},[5929,5930,5931,5932],{"id":2253,"depth":18,"text":2256},{"id":2412,"depth":18,"text":2415},{"id":2694,"depth":18,"text":2697},{"id":2977,"depth":18,"text":2980},{"id":3507,"depth":14,"text":3510},{"id":5804,"depth":14,"text":5807,"children":5935},[5936,5937,5938,5939],{"id":5810,"depth":18,"text":5813},{"id":5826,"depth":18,"text":5829},{"id":5837,"depth":18,"text":5840},{"id":5872,"depth":18,"text":5875},{"id":5883,"depth":14,"text":5886,"children":5941},[5942,5943],{"id":5894,"depth":18,"text":5897},{"id":5905,"depth":18,"text":5908},"markdown",1773121672734]