[{"data":1,"prerenderedAt":9602},["ShallowReactive",2],{"$flTTP1ACxoY3JWxDGBY-XekRsZsxpvIpMBaq215gW9ag":3,"$fGGa3jm2fyiZgwLdx4RmmiEvaouuONKLYoKH9T7IQulI":263,"$fNgRTTvJzWhAI0pEdn4Qt8lenRSY1GZ0iQYRm_kIgEkM":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":9601,"_id":1867},"VK_EXT_present_timing.proposal","This extension provides facilities for applications using VK_KHR_swapchain to obtain timing information about the presentation engine’s display, presentation statistics for each present operation, and to schedule present operations to happen at a specific time.",{"type":1870,"children":1871,"toc":9571},"root",[1872,1879,1886,1891,1896,1901,1906,1912,1917,1951,1956,1973,1990,1996,2002,2012,2098,2118,2156,2169,2252,2265,2270,2275,2411,2423,2485,2521,2527,2547,2552,2630,2643,2663,2669,2676,2689,2781,2808,2825,2837,2918,2943,2961,2986,3005,3036,3042,3047,3137,3163,3174,3269,3366,3378,3460,3485,3506,3589,3649,3654,3659,3743,3769,3840,3853,3944,3982,3993,4099,4177,4218,4229,4416,4546,4562,4587,4620,4629,4634,4654,4845,4864,4917,4942,4968,4980,5068,5093,5111,5126,5163,5169,5174,6170,6176,7584,7597,8564,8570,9338,9344,9357,9369,9419,9431,9444,9449,9454,9459,9465,9470,9476,9500,9506,9518,9524,9536,9542,9547,9565],{"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},"As rendering systems have become more complex and more deeply buffered, rendering workloads have grown increasingly independent of the presentation process. Different hardware may even be involved. As a consequence, applications are left without a clear way to align the presentation process with other workloads, particularly rendering.",{"type":1873,"tag":1874,"props":1892,"children":1893},{},[1894],{"type":1878,"value":1895},"This can result in visual anomalies such as stutter, or increased input latency, when the frames are not being presented to the user at the time the application was expecting it. This effect may be exacerbated in Fixed Refresh Rate (FRR) scenarios when the display refresh rate is not a factor of the application’s rendered frame rate; for example, rendering 50 frames per second on a 60Hz monitor, which will result in some frames being visible for multiple refresh cycles.",{"type":1873,"tag":1874,"props":1897,"children":1898},{},[1899],{"type":1878,"value":1900},"To accomplish smooth animation, applications need to predict and schedule when each frame is going to be displayed so that the application’s simulation time, which places the geometry and camera within a scene, closely matches the display time. This requires various timing information about the presentation engine, such as when previous presentable images were actually displayed and when they could have been displayed, as well as the presentation engine’s refresh cycle duration.",{"type":1873,"tag":1874,"props":1902,"children":1903},{},[1904],{"type":1878,"value":1905},"Multimedia applications also typically require accurate frame timing in order to closely match the content’s expected frame rate and synchronize presentation operations with audio output.",{"type":1873,"tag":1880,"props":1907,"children":1909},{"id":1908},"_solution_space",[1910],{"type":1878,"value":1911},"Solution Space",{"type":1873,"tag":1874,"props":1913,"children":1914},{},[1915],{"type":1878,"value":1916},"Partial solutions exist to address some of the problems described above:",{"type":1873,"tag":1918,"props":1919,"children":1920},"ul",{},[1921,1927,1943],{"type":1873,"tag":1922,"props":1923,"children":1924},"li",{},[1925],{"type":1878,"value":1926},"Variable Refresh Rate",{"type":1873,"tag":1922,"props":1928,"children":1929},{},[1930,1936,1938],{"type":1873,"tag":1931,"props":1932,"children":1934},"code",{"className":1933},[],[1935],{"type":1878,"value":1284},{"type":1878,"value":1937}," and ",{"type":1873,"tag":1931,"props":1939,"children":1941},{"className":1940},[],[1942],{"type":1878,"value":1288},{"type":1873,"tag":1922,"props":1944,"children":1945},{},[1946],{"type":1873,"tag":1931,"props":1947,"children":1949},{"className":1948},[],[1950],{"type":1878,"value":996},{"type":1873,"tag":1874,"props":1952,"children":1953},{},[1954],{"type":1878,"value":1955},"Variable Refresh Rate (VRR) technology can mitigate the effects of stutter, because the display may be able to match the variations in present duration, while FRR displays need to wait for a future refresh cycle if an image was not ready in time for its intended present time. Though this limits some of the visual anomalies, it does not address the issue of providing applications feedback and control over the presentation engine timing.",{"type":1873,"tag":1874,"props":1957,"children":1958},{},[1959,1964,1966,1971],{"type":1873,"tag":1931,"props":1960,"children":1962},{"className":1961},[],[1963],{"type":1878,"value":1284},{"type":1878,"value":1965}," is a Vulkan extension which allows the host to synchronously wait for a present operation to complete. This can be used as a tool to implement efficient frame pacing, but lacks important details such as the latency of the present operation itself, and information about the display timing properties. The ",{"type":1873,"tag":1931,"props":1967,"children":1969},{"className":1968},[],[1970],{"type":1878,"value":1284},{"type":1878,"value":1972}," specification itself also has rather loose requirements which may result in inconsistent implementations.",{"type":1873,"tag":1874,"props":1974,"children":1975},{},[1976,1981,1983,1988],{"type":1873,"tag":1931,"props":1977,"children":1979},{"className":1978},[],[1980],{"type":1878,"value":996},{"type":1878,"value":1982}," is currently the only existing extension which provides a solution to this core problem of interacting with the presentation engine’s timeline. However, it is not implementable by all vendors, and lacks enough details to support technologies such as VRR systems. The proposal that follows is heavily inspired by all the work and discussions surrounding ",{"type":1873,"tag":1931,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":1878,"value":996},{"type":1878,"value":1989},", and provides a more granular approach to its features, allowing for wider vendor adoption.",{"type":1873,"tag":1880,"props":1991,"children":1993},{"id":1992},"_proposal",[1994],{"type":1878,"value":1995},"Proposal",{"type":1873,"tag":1997,"props":1998,"children":2000},"h3",{"id":1999},"_features",[2001],{"type":1878,"value":211},{"type":1873,"tag":1874,"props":2003,"children":2004},{},[2005,2010],{"type":1873,"tag":1931,"props":2006,"children":2008},{"className":2007},[],[2009],{"type":1878,"value":795},{"type":1878,"value":2011}," exposes three new physical device features:",{"type":1873,"tag":2013,"props":2014,"children":2019},"pre",{"className":2015,"code":2016,"language":2017,"meta":2018,"style":2018},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {\n VkStructureType sType;\n void* pNext;\n VkBool32 presentTiming;\n VkBool32 presentAtAbsoluteTime;\n VkBool32 presentAtRelativeTime;\n} VkPhysicalDevicePresentTimingFeaturesEXT;\n","c","",[2020],{"type":1873,"tag":1931,"props":2021,"children":2022},{"__ignoreMap":2018},[2023,2045,2053,2066,2074,2082,2090],{"type":1873,"tag":2024,"props":2025,"children":2027},"span",{"class":2026,"line":10},"line",[2028,2034,2039],{"type":1873,"tag":2024,"props":2029,"children":2031},{"style":2030},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[2032],{"type":1878,"value":2033},"typedef",{"type":1873,"tag":2024,"props":2035,"children":2036},{"style":2030},[2037],{"type":1878,"value":2038}," struct",{"type":1873,"tag":2024,"props":2040,"children":2042},{"style":2041},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[2043],{"type":1878,"value":2044}," VkPhysicalDevicePresentTimingFeaturesEXT {\n",{"type":1873,"tag":2024,"props":2046,"children":2047},{"class":2026,"line":14},[2048],{"type":1873,"tag":2024,"props":2049,"children":2050},{"style":2041},[2051],{"type":1878,"value":2052}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":2054,"children":2055},{"class":2026,"line":18},[2056,2061],{"type":1873,"tag":2024,"props":2057,"children":2058},{"style":2030},[2059],{"type":1878,"value":2060}," void*",{"type":1873,"tag":2024,"props":2062,"children":2063},{"style":2041},[2064],{"type":1878,"value":2065}," pNext;\n",{"type":1873,"tag":2024,"props":2067,"children":2068},{"class":2026,"line":22},[2069],{"type":1873,"tag":2024,"props":2070,"children":2071},{"style":2041},[2072],{"type":1878,"value":2073}," VkBool32 presentTiming;\n",{"type":1873,"tag":2024,"props":2075,"children":2076},{"class":2026,"line":26},[2077],{"type":1873,"tag":2024,"props":2078,"children":2079},{"style":2041},[2080],{"type":1878,"value":2081}," VkBool32 presentAtAbsoluteTime;\n",{"type":1873,"tag":2024,"props":2083,"children":2084},{"class":2026,"line":30},[2085],{"type":1873,"tag":2024,"props":2086,"children":2087},{"style":2041},[2088],{"type":1878,"value":2089}," VkBool32 presentAtRelativeTime;\n",{"type":1873,"tag":2024,"props":2091,"children":2092},{"class":2026,"line":34},[2093],{"type":1873,"tag":2024,"props":2094,"children":2095},{"style":2041},[2096],{"type":1878,"value":2097},"} VkPhysicalDevicePresentTimingFeaturesEXT;\n",{"type":1873,"tag":1874,"props":2099,"children":2100},{},[2101,2103,2108,2110,2116],{"type":1878,"value":2102},"If ",{"type":1873,"tag":1931,"props":2104,"children":2106},{"className":2105},[],[2107],{"type":1878,"value":795},{"type":1878,"value":2109}," is exposed by the device, ",{"type":1873,"tag":1931,"props":2111,"children":2113},{"className":2112},[],[2114],{"type":1878,"value":2115},"presentTiming",{"type":1878,"value":2117}," is required to be supported. This feature allows applications to query details about presentation timing of a given swapchain, such as the refresh rate or supported time domains, as well as statistics about individual present operations.",{"type":1873,"tag":1874,"props":2119,"children":2120},{},[2121,2123,2129,2131,2137,2139,2145,2147,2154],{"type":1878,"value":2122},"When supported, ",{"type":1873,"tag":1931,"props":2124,"children":2126},{"className":2125},[],[2127],{"type":1878,"value":2128},"presentAtAbsoluteTime",{"type":1878,"value":2130}," allows applications to specify an absolute time, in a specific time domain, with each ",{"type":1873,"tag":1931,"props":2132,"children":2134},{"className":2133},[],[2135],{"type":1878,"value":2136},"vkQueuePresentKHR",{"type":1878,"value":2138}," call. ",{"type":1873,"tag":1931,"props":2140,"children":2142},{"className":2141},[],[2143],{"type":1878,"value":2144},"presentAtRelativeTime",{"type":1878,"value":2146}," allows applications to specify a relative time instead, specifying a minimum duration before a new image can presented. See ",{"type":1873,"tag":2148,"props":2149,"children":2151},"a",{"href":2150},"/404#scheduling",[2152],{"type":1878,"value":2153},"scheduling",{"type":1878,"value":2155},".",{"type":1873,"tag":1874,"props":2157,"children":2158},{},[2159,2161,2167],{"type":1878,"value":2160},"These features are also advertised for each ",{"type":1873,"tag":1931,"props":2162,"children":2164},{"className":2163},[],[2165],{"type":1878,"value":2166},"VkSurfaceKHR",{"type":1878,"value":2168}," object with:",{"type":1873,"tag":2013,"props":2170,"children":2172},{"className":2015,"code":2171,"language":2017,"meta":2018,"style":2018},"typedef struct VkPresentTimingSurfaceCapabilitiesEXT {\n VkStructureType sType;\n void* pNext;\n VkBool32 presentTimingSupported;\n VkBool32 presentAtAbsoluteTimeSupported;\n VkBool32 presentAtRelativeTimeSupported;\n VkPresentStageFlagsEXT presentStageQueries;\n} VkPresentTimingSurfaceCapabilitiesEXT;\n",[2173],{"type":1873,"tag":1931,"props":2174,"children":2175},{"__ignoreMap":2018},[2176,2192,2200,2212,2220,2228,2236,2244],{"type":1873,"tag":2024,"props":2177,"children":2178},{"class":2026,"line":10},[2179,2183,2187],{"type":1873,"tag":2024,"props":2180,"children":2181},{"style":2030},[2182],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":2184,"children":2185},{"style":2030},[2186],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":2188,"children":2189},{"style":2041},[2190],{"type":1878,"value":2191}," VkPresentTimingSurfaceCapabilitiesEXT {\n",{"type":1873,"tag":2024,"props":2193,"children":2194},{"class":2026,"line":14},[2195],{"type":1873,"tag":2024,"props":2196,"children":2197},{"style":2041},[2198],{"type":1878,"value":2199}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":2201,"children":2202},{"class":2026,"line":18},[2203,2207],{"type":1873,"tag":2024,"props":2204,"children":2205},{"style":2030},[2206],{"type":1878,"value":2060},{"type":1873,"tag":2024,"props":2208,"children":2209},{"style":2041},[2210],{"type":1878,"value":2211}," pNext;\n",{"type":1873,"tag":2024,"props":2213,"children":2214},{"class":2026,"line":22},[2215],{"type":1873,"tag":2024,"props":2216,"children":2217},{"style":2041},[2218],{"type":1878,"value":2219}," VkBool32 presentTimingSupported;\n",{"type":1873,"tag":2024,"props":2221,"children":2222},{"class":2026,"line":26},[2223],{"type":1873,"tag":2024,"props":2224,"children":2225},{"style":2041},[2226],{"type":1878,"value":2227}," VkBool32 presentAtAbsoluteTimeSupported;\n",{"type":1873,"tag":2024,"props":2229,"children":2230},{"class":2026,"line":30},[2231],{"type":1873,"tag":2024,"props":2232,"children":2233},{"style":2041},[2234],{"type":1878,"value":2235}," VkBool32 presentAtRelativeTimeSupported;\n",{"type":1873,"tag":2024,"props":2237,"children":2238},{"class":2026,"line":34},[2239],{"type":1873,"tag":2024,"props":2240,"children":2241},{"style":2041},[2242],{"type":1878,"value":2243}," VkPresentStageFlagsEXT presentStageQueries;\n",{"type":1873,"tag":2024,"props":2245,"children":2246},{"class":2026,"line":38},[2247],{"type":1873,"tag":2024,"props":2248,"children":2249},{"style":2041},[2250],{"type":1878,"value":2251},"} VkPresentTimingSurfaceCapabilitiesEXT;\n",{"type":1873,"tag":1874,"props":2253,"children":2254},{},[2255,2257,2263],{"type":1878,"value":2256},"In addition of the present timing and present scheduling features, surfaces also advertise which ",{"type":1873,"tag":2148,"props":2258,"children":2260},{"href":2259},"/404#present_stages",[2261],{"type":1878,"value":2262},"present_stages",{"type":1878,"value":2264}," are available to query timings for.",{"type":1873,"tag":1997,"props":2266,"children":2267},{"id":2262},[2268],{"type":1878,"value":2269},"Present stages",{"type":1873,"tag":1874,"props":2271,"children":2272},{},[2273],{"type":1878,"value":2274},"It is difficult to define \"presentation\" while satisfying all implementations, platforms or even display technologies. Thus, this proposal introduces the concept of \"present stages\": a set of well-defined discrete steps within typical present pipelines.",{"type":1873,"tag":2013,"props":2276,"children":2278},{"className":2015,"code":2277,"language":2017,"meta":2018,"style":2018},"typedef enum VkPresentStageFlagBitsEXT {\n VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,\n VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,\n VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,\n VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,\n} VkPresentStageFlagBitsEXT;\n",[2279],{"type":1873,"tag":1931,"props":2280,"children":2281},{"__ignoreMap":2018},[2282,2299,2328,2353,2378,2403],{"type":1873,"tag":2024,"props":2283,"children":2284},{"class":2026,"line":10},[2285,2289,2294],{"type":1873,"tag":2024,"props":2286,"children":2287},{"style":2030},[2288],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":2290,"children":2291},{"style":2030},[2292],{"type":1878,"value":2293}," enum",{"type":1873,"tag":2024,"props":2295,"children":2296},{"style":2041},[2297],{"type":1878,"value":2298}," VkPresentStageFlagBitsEXT {\n",{"type":1873,"tag":2024,"props":2300,"children":2301},{"class":2026,"line":14},[2302,2307,2312,2317,2323],{"type":1873,"tag":2024,"props":2303,"children":2304},{"style":2041},[2305],{"type":1878,"value":2306}," VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT ",{"type":1873,"tag":2024,"props":2308,"children":2309},{"style":2030},[2310],{"type":1878,"value":2311},"=",{"type":1873,"tag":2024,"props":2313,"children":2314},{"style":2030},[2315],{"type":1878,"value":2316}," 0x",{"type":1873,"tag":2024,"props":2318,"children":2320},{"style":2319},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[2321],{"type":1878,"value":2322},"00000001",{"type":1873,"tag":2024,"props":2324,"children":2325},{"style":2041},[2326],{"type":1878,"value":2327},",\n",{"type":1873,"tag":2024,"props":2329,"children":2330},{"class":2026,"line":18},[2331,2336,2340,2344,2349],{"type":1873,"tag":2024,"props":2332,"children":2333},{"style":2041},[2334],{"type":1878,"value":2335}," VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT ",{"type":1873,"tag":2024,"props":2337,"children":2338},{"style":2030},[2339],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":2341,"children":2342},{"style":2030},[2343],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":2345,"children":2346},{"style":2319},[2347],{"type":1878,"value":2348},"00000002",{"type":1873,"tag":2024,"props":2350,"children":2351},{"style":2041},[2352],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2354,"children":2355},{"class":2026,"line":22},[2356,2361,2365,2369,2374],{"type":1873,"tag":2024,"props":2357,"children":2358},{"style":2041},[2359],{"type":1878,"value":2360}," VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT ",{"type":1873,"tag":2024,"props":2362,"children":2363},{"style":2030},[2364],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":2366,"children":2367},{"style":2030},[2368],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":2370,"children":2371},{"style":2319},[2372],{"type":1878,"value":2373},"00000004",{"type":1873,"tag":2024,"props":2375,"children":2376},{"style":2041},[2377],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2379,"children":2380},{"class":2026,"line":26},[2381,2386,2390,2394,2399],{"type":1873,"tag":2024,"props":2382,"children":2383},{"style":2041},[2384],{"type":1878,"value":2385}," VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT ",{"type":1873,"tag":2024,"props":2387,"children":2388},{"style":2030},[2389],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":2391,"children":2392},{"style":2030},[2393],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":2395,"children":2396},{"style":2319},[2397],{"type":1878,"value":2398},"00000008",{"type":1873,"tag":2024,"props":2400,"children":2401},{"style":2041},[2402],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2404,"children":2405},{"class":2026,"line":30},[2406],{"type":1873,"tag":2024,"props":2407,"children":2408},{"style":2041},[2409],{"type":1878,"value":2410},"} VkPresentStageFlagBitsEXT;\n",{"type":1873,"tag":1874,"props":2412,"children":2413},{},[2414,2416,2422],{"type":1878,"value":2415},"When queueing a presentation request for a swapchain, a set of present stages is specified to inform the implementation that timing for those stages is desired. See ",{"type":1873,"tag":2148,"props":2417,"children":2419},{"href":2418},"/404#statistics",[2420],{"type":1878,"value":2421},"statistics",{"type":1878,"value":2155},{"type":1873,"tag":1918,"props":2424,"children":2425},{},[2426,2452,2463,2474],{"type":1873,"tag":1922,"props":2427,"children":2428},{},[2429,2435,2437,2442,2444,2450],{"type":1873,"tag":1931,"props":2430,"children":2432},{"className":2431},[],[2433],{"type":1878,"value":2434},"VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT",{"type":1878,"value":2436}," marks the end of the set of queue operations enqueued by ",{"type":1873,"tag":1931,"props":2438,"children":2440},{"className":2439},[],[2441],{"type":1878,"value":2136},{"type":1878,"value":2443}," on the provided ",{"type":1873,"tag":1931,"props":2445,"children":2447},{"className":2446},[],[2448],{"type":1878,"value":2449},"VkQueue",{"type":1878,"value":2451},". These queue operations are implementation-specific; the usual example is a blit to a system-specific internal surface suited for presentation.",{"type":1873,"tag":1922,"props":2453,"children":2454},{},[2455,2461],{"type":1873,"tag":1931,"props":2456,"children":2458},{"className":2457},[],[2459],{"type":1878,"value":2460},"VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT",{"type":1878,"value":2462}," is the stage after which the presentation request has been dequeued from the swapchain’s internal presentation request queue, as specified by the active present mode.",{"type":1873,"tag":1922,"props":2464,"children":2465},{},[2466,2472],{"type":1873,"tag":1931,"props":2467,"children":2469},{"className":2468},[],[2470],{"type":1878,"value":2471},"VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT",{"type":1878,"value":2473}," is the stage after which data for the first pixel of the presentation request associated with the image has left the presentation engine for the display hardware.",{"type":1873,"tag":1922,"props":2475,"children":2476},{},[2477,2483],{"type":1873,"tag":1931,"props":2478,"children":2480},{"className":2479},[],[2481],{"type":1878,"value":2482},"VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT",{"type":1878,"value":2484}," is the stage after which a display hardware has made the first pixel visible for the presentation request associated with the image to be presented.",{"type":1873,"tag":1874,"props":2486,"children":2487},{},[2488,2490,2495,2497,2503,2505,2511,2513,2519],{"type":1878,"value":2489},"Implementations are required to support at least ",{"type":1873,"tag":1931,"props":2491,"children":2493},{"className":2492},[],[2494],{"type":1878,"value":2434},{"type":1878,"value":2496}," in ",{"type":1873,"tag":1931,"props":2498,"children":2500},{"className":2499},[],[2501],{"type":1878,"value":2502},"VkPresentTimingSurfaceCapabilitiesEXT::presentStageQueries",{"type":1878,"value":2504}," if ",{"type":1873,"tag":1931,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":1878,"value":2510},"presentTimingSupported",{"type":1878,"value":2512}," is ",{"type":1873,"tag":1931,"props":2514,"children":2516},{"className":2515},[],[2517],{"type":1878,"value":2518},"VK_TRUE",{"type":1878,"value":2520}," for the surface.",{"type":1873,"tag":1997,"props":2522,"children":2524},{"id":2523},"_enabling_present_timing_for_a_swapchain",[2525],{"type":1878,"value":2526},"Enabling present timing for a swapchain",{"type":1873,"tag":1874,"props":2528,"children":2529},{},[2530,2532,2538,2540,2546],{"type":1878,"value":2531},"To enable present timing for a swapchain, a new flag must be specified in ",{"type":1873,"tag":1931,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":1878,"value":2537},"VkSwapchainCreateInfoKHR::flags",{"type":1878,"value":2539},": ",{"type":1873,"tag":1931,"props":2541,"children":2543},{"className":2542},[],[2544],{"type":1878,"value":2545},"VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT",{"type":1878,"value":2155},{"type":1873,"tag":1874,"props":2548,"children":2549},{},[2550],{"type":1878,"value":2551},"To provide presentation timing results, implementations need to allocate an internal queue and other resources to collect the necessary timestamps. The size of that queue must be specified by the application with a new function:",{"type":1873,"tag":2013,"props":2553,"children":2555},{"className":2015,"code":2554,"language":2017,"meta":2018,"style":2018},"VkResult vkSetSwapchainPresentTimingQueueSizeEXT(\n VkDevice device,\n VkSwapchainKHR swapchain,\n uint32_t size);\n",[2556],{"type":1873,"tag":1931,"props":2557,"children":2558},{"__ignoreMap":2018},[2559,2578,2595,2612],{"type":1873,"tag":2024,"props":2560,"children":2561},{"class":2026,"line":10},[2562,2567,2573],{"type":1873,"tag":2024,"props":2563,"children":2564},{"style":2041},[2565],{"type":1878,"value":2566},"VkResult ",{"type":1873,"tag":2024,"props":2568,"children":2570},{"style":2569},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[2571],{"type":1878,"value":2572},"vkSetSwapchainPresentTimingQueueSizeEXT",{"type":1873,"tag":2024,"props":2574,"children":2575},{"style":2041},[2576],{"type":1878,"value":2577},"(\n",{"type":1873,"tag":2024,"props":2579,"children":2580},{"class":2026,"line":14},[2581,2586,2591],{"type":1873,"tag":2024,"props":2582,"children":2583},{"style":2041},[2584],{"type":1878,"value":2585}," VkDevice ",{"type":1873,"tag":2024,"props":2587,"children":2589},{"style":2588},"--shiki-default:#953800;--shiki-dark:#FFA657",[2590],{"type":1878,"value":266},{"type":1873,"tag":2024,"props":2592,"children":2593},{"style":2041},[2594],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2596,"children":2597},{"class":2026,"line":18},[2598,2603,2608],{"type":1873,"tag":2024,"props":2599,"children":2600},{"style":2041},[2601],{"type":1878,"value":2602}," VkSwapchainKHR ",{"type":1873,"tag":2024,"props":2604,"children":2605},{"style":2588},[2606],{"type":1878,"value":2607},"swapchain",{"type":1873,"tag":2024,"props":2609,"children":2610},{"style":2041},[2611],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2613,"children":2614},{"class":2026,"line":22},[2615,2620,2625],{"type":1873,"tag":2024,"props":2616,"children":2617},{"style":2030},[2618],{"type":1878,"value":2619}," uint32_t",{"type":1873,"tag":2024,"props":2621,"children":2622},{"style":2588},[2623],{"type":1878,"value":2624}," size",{"type":1873,"tag":2024,"props":2626,"children":2627},{"style":2041},[2628],{"type":1878,"value":2629},");\n",{"type":1873,"tag":1874,"props":2631,"children":2632},{},[2633,2635,2641],{"type":1878,"value":2634},"Calling this function multiple times causes the results queue to be reallocated to the new size. If the new size cannot hold all the current outstanding results, ",{"type":1873,"tag":1931,"props":2636,"children":2638},{"className":2637},[],[2639],{"type":1878,"value":2640},"VK_NOT_READY",{"type":1878,"value":2642}," is returned.",{"type":1873,"tag":1874,"props":2644,"children":2645},{},[2646,2648,2653,2655,2661],{"type":1878,"value":2647},"Calling ",{"type":1873,"tag":1931,"props":2649,"children":2651},{"className":2650},[],[2652],{"type":1878,"value":2136},{"type":1878,"value":2654}," with non-zero stage queries allocates a slot in that internal queue, while ",{"type":1873,"tag":1931,"props":2656,"children":2658},{"className":2657},[],[2659],{"type":1878,"value":2660},"vkGetPastPresentationTimingEXT",{"type":1878,"value":2662}," releases slots when complete results are returned.",{"type":1873,"tag":1997,"props":2664,"children":2666},{"id":2665},"_swapchain_timing_information",[2667],{"type":1878,"value":2668},"Swapchain Timing Information",{"type":1873,"tag":2670,"props":2671,"children":2673},"h4",{"id":2672},"_timing_properties",[2674],{"type":1878,"value":2675},"Timing Properties",{"type":1873,"tag":1874,"props":2677,"children":2678},{},[2679,2681,2687],{"type":1878,"value":2680},"For timing to be meaningful, the application needs to be aware of various properties. Basic properties are exposed in a new structure, ",{"type":1873,"tag":1931,"props":2682,"children":2684},{"className":2683},[],[2685],{"type":1878,"value":2686},"VkSwapchainTimingPropertiesEXT",{"type":1878,"value":2688},", which can be retrieved with:",{"type":1873,"tag":2013,"props":2690,"children":2692},{"className":2015,"code":2691,"language":2017,"meta":2018,"style":2018},"VkResult vkGetSwapchainTimingPropertiesEXT(\n VkDevice device,\n VkSwapchainKHR swapchain,\n VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,\n uint64_t* pSwapchainTimingPropertiesCounter);\n",[2693],{"type":1873,"tag":1931,"props":2694,"children":2695},{"__ignoreMap":2018},[2696,2712,2727,2742,2764],{"type":1873,"tag":2024,"props":2697,"children":2698},{"class":2026,"line":10},[2699,2703,2708],{"type":1873,"tag":2024,"props":2700,"children":2701},{"style":2041},[2702],{"type":1878,"value":2566},{"type":1873,"tag":2024,"props":2704,"children":2705},{"style":2569},[2706],{"type":1878,"value":2707},"vkGetSwapchainTimingPropertiesEXT",{"type":1873,"tag":2024,"props":2709,"children":2710},{"style":2041},[2711],{"type":1878,"value":2577},{"type":1873,"tag":2024,"props":2713,"children":2714},{"class":2026,"line":14},[2715,2719,2723],{"type":1873,"tag":2024,"props":2716,"children":2717},{"style":2041},[2718],{"type":1878,"value":2585},{"type":1873,"tag":2024,"props":2720,"children":2721},{"style":2588},[2722],{"type":1878,"value":266},{"type":1873,"tag":2024,"props":2724,"children":2725},{"style":2041},[2726],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2728,"children":2729},{"class":2026,"line":18},[2730,2734,2738],{"type":1873,"tag":2024,"props":2731,"children":2732},{"style":2041},[2733],{"type":1878,"value":2602},{"type":1873,"tag":2024,"props":2735,"children":2736},{"style":2588},[2737],{"type":1878,"value":2607},{"type":1873,"tag":2024,"props":2739,"children":2740},{"style":2041},[2741],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2743,"children":2744},{"class":2026,"line":22},[2745,2750,2755,2760],{"type":1873,"tag":2024,"props":2746,"children":2747},{"style":2041},[2748],{"type":1878,"value":2749}," VkSwapchainTimingPropertiesEXT",{"type":1873,"tag":2024,"props":2751,"children":2752},{"style":2030},[2753],{"type":1878,"value":2754},"*",{"type":1873,"tag":2024,"props":2756,"children":2757},{"style":2588},[2758],{"type":1878,"value":2759}," pSwapchainTimingProperties",{"type":1873,"tag":2024,"props":2761,"children":2762},{"style":2041},[2763],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":2765,"children":2766},{"class":2026,"line":26},[2767,2772,2777],{"type":1873,"tag":2024,"props":2768,"children":2769},{"style":2030},[2770],{"type":1878,"value":2771}," uint64_t*",{"type":1873,"tag":2024,"props":2773,"children":2774},{"style":2588},[2775],{"type":1878,"value":2776}," pSwapchainTimingPropertiesCounter",{"type":1873,"tag":2024,"props":2778,"children":2779},{"style":2041},[2780],{"type":1878,"value":2629},{"type":1873,"tag":1874,"props":2782,"children":2783},{},[2784,2786,2792,2794,2800,2802,2807],{"type":1878,"value":2785},"Swapchain timing properties may change dynamically at any time without prior notification. For example, enabling power-saving mode on a device may cause it to lower the display panel’s refresh rate. To allow applications to detect changes in those properties, a monotonically increasing counter is used by the implementation to identify the current state. This counter increases every time the swapchain properties are modified. ",{"type":1873,"tag":1931,"props":2787,"children":2789},{"className":2788},[],[2790],{"type":1878,"value":2791},"pSwapchainTimingPropertiesCounter",{"type":1878,"value":2793}," is a pointer to a ",{"type":1873,"tag":1931,"props":2795,"children":2797},{"className":2796},[],[2798],{"type":1878,"value":2799},"uint64_t",{"type":1878,"value":2801}," set by the implementation to the value of the current timing properties counter. Further updates to those properties are also communicated back to the application when querying presentation timings via ",{"type":1873,"tag":1931,"props":2803,"children":2805},{"className":2804},[],[2806],{"type":1878,"value":2660},{"type":1878,"value":2155},{"type":1873,"tag":1874,"props":2809,"children":2810},{},[2811,2816,2818,2823],{"type":1873,"tag":1931,"props":2812,"children":2814},{"className":2813},[],[2815],{"type":1878,"value":2707},{"type":1878,"value":2817}," can return ",{"type":1873,"tag":1931,"props":2819,"children":2821},{"className":2820},[],[2822],{"type":1878,"value":2640},{"type":1878,"value":2824},", because some platforms may not provide timing properties until after at least one image has been presented to the swapchain. If timing properties of the swapchain change, updated results may again only be provided until after at least one additional image has been presented.",{"type":1873,"tag":1874,"props":2826,"children":2827},{},[2828,2830,2835],{"type":1878,"value":2829},"The ",{"type":1873,"tag":1931,"props":2831,"children":2833},{"className":2832},[],[2834],{"type":1878,"value":2686},{"type":1878,"value":2836}," structure is defined as:",{"type":1873,"tag":2013,"props":2838,"children":2840},{"className":2015,"code":2839,"language":2017,"meta":2018,"style":2018},"typedef struct VkSwapchainTimingPropertiesEXT {\n VkStructureType sType;\n const void* pNext;\n uint64_t refreshDuration;\n uint64_t refreshInterval;\n} VkSwapchainTimingPropertiesEXT;\n",[2841],{"type":1873,"tag":1931,"props":2842,"children":2843},{"__ignoreMap":2018},[2844,2860,2867,2885,2898,2910],{"type":1873,"tag":2024,"props":2845,"children":2846},{"class":2026,"line":10},[2847,2851,2855],{"type":1873,"tag":2024,"props":2848,"children":2849},{"style":2030},[2850],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":2852,"children":2853},{"style":2030},[2854],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":2856,"children":2857},{"style":2041},[2858],{"type":1878,"value":2859}," VkSwapchainTimingPropertiesEXT {\n",{"type":1873,"tag":2024,"props":2861,"children":2862},{"class":2026,"line":14},[2863],{"type":1873,"tag":2024,"props":2864,"children":2865},{"style":2041},[2866],{"type":1878,"value":2052},{"type":1873,"tag":2024,"props":2868,"children":2869},{"class":2026,"line":18},[2870,2875,2880],{"type":1873,"tag":2024,"props":2871,"children":2872},{"style":2030},[2873],{"type":1878,"value":2874}," const",{"type":1873,"tag":2024,"props":2876,"children":2877},{"style":2030},[2878],{"type":1878,"value":2879}," void*",{"type":1873,"tag":2024,"props":2881,"children":2882},{"style":2041},[2883],{"type":1878,"value":2884}," pNext;\n",{"type":1873,"tag":2024,"props":2886,"children":2887},{"class":2026,"line":22},[2888,2893],{"type":1873,"tag":2024,"props":2889,"children":2890},{"style":2030},[2891],{"type":1878,"value":2892}," uint64_t",{"type":1873,"tag":2024,"props":2894,"children":2895},{"style":2041},[2896],{"type":1878,"value":2897}," refreshDuration;\n",{"type":1873,"tag":2024,"props":2899,"children":2900},{"class":2026,"line":26},[2901,2905],{"type":1873,"tag":2024,"props":2902,"children":2903},{"style":2030},[2904],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":2906,"children":2907},{"style":2041},[2908],{"type":1878,"value":2909}," refreshInterval;\n",{"type":1873,"tag":2024,"props":2911,"children":2912},{"class":2026,"line":30},[2913],{"type":1873,"tag":2024,"props":2914,"children":2915},{"style":2041},[2916],{"type":1878,"value":2917},"} VkSwapchainTimingPropertiesEXT;\n",{"type":1873,"tag":1918,"props":2919,"children":2920},{},[2921,2932],{"type":1873,"tag":1922,"props":2922,"children":2923},{},[2924,2930],{"type":1873,"tag":1931,"props":2925,"children":2927},{"className":2926},[],[2928],{"type":1878,"value":2929},"refreshDuration",{"type":1878,"value":2931}," is the duration in nanoseconds of the refresh cycle the presentation engine is operating at.",{"type":1873,"tag":1922,"props":2933,"children":2934},{},[2935,2941],{"type":1873,"tag":1931,"props":2936,"children":2938},{"className":2937},[],[2939],{"type":1878,"value":2940},"refreshInterval",{"type":1878,"value":2942}," is a duration in nanoseconds indicating the interval between refresh cycles.",{"type":1873,"tag":1874,"props":2944,"children":2945},{},[2946,2947,2952,2954,2959],{"type":1878,"value":2102},{"type":1873,"tag":1931,"props":2948,"children":2950},{"className":2949},[],[2951],{"type":1878,"value":2929},{"type":1878,"value":2953}," is zero, the presentation engine is unable to provide the current refresh cycle duration. Similarly, if ",{"type":1873,"tag":1931,"props":2955,"children":2957},{"className":2956},[],[2958],{"type":1878,"value":2940},{"type":1878,"value":2960}," is zero, the presentation engine is unable to provide information regarding the dynamics of the refresh cycle.",{"type":1873,"tag":1874,"props":2962,"children":2963},{},[2964,2965,2970,2971,2977,2979,2984],{"type":1878,"value":2102},{"type":1873,"tag":1931,"props":2966,"children":2968},{"className":2967},[],[2969],{"type":1878,"value":2940},{"type":1878,"value":2512},{"type":1873,"tag":1931,"props":2972,"children":2974},{"className":2973},[],[2975],{"type":1878,"value":2976},"UINT64_MAX",{"type":1878,"value":2978},", the presentation engine is operating in VRR mode, and ",{"type":1873,"tag":1931,"props":2980,"children":2982},{"className":2981},[],[2983],{"type":1878,"value":2929},{"type":1878,"value":2985}," is the minimum duration of a refresh cycle.",{"type":1873,"tag":1874,"props":2987,"children":2988},{},[2989,2991,2996,2998,3003],{"type":1878,"value":2990},"When ",{"type":1873,"tag":1931,"props":2992,"children":2994},{"className":2993},[],[2995],{"type":1878,"value":2940},{"type":1878,"value":2997}," is the same as ",{"type":1873,"tag":1931,"props":2999,"children":3001},{"className":3000},[],[3002],{"type":1878,"value":2929},{"type":1878,"value":3004},", the presentation engine is operating in FRR mode.",{"type":1873,"tag":1874,"props":3006,"children":3007},{},[3008,3009,3014,3016,3021,3023,3028,3030,3035],{"type":1878,"value":2102},{"type":1873,"tag":1931,"props":3010,"children":3012},{"className":3011},[],[3013],{"type":1878,"value":2940},{"type":1878,"value":3015}," is not zero and is not ",{"type":1873,"tag":1931,"props":3017,"children":3019},{"className":3018},[],[3020],{"type":1878,"value":2976},{"type":1878,"value":3022},", ",{"type":1873,"tag":1931,"props":3024,"children":3026},{"className":3025},[],[3027],{"type":1878,"value":2929},{"type":1878,"value":3029}," is a multiple of ",{"type":1873,"tag":1931,"props":3031,"children":3033},{"className":3032},[],[3034],{"type":1878,"value":2940},{"type":1878,"value":2155},{"type":1873,"tag":2670,"props":3037,"children":3039},{"id":3038},"_time_domains",[3040],{"type":1878,"value":3041},"Time Domains",{"type":1873,"tag":1874,"props":3043,"children":3044},{},[3045],{"type":1878,"value":3046},"Applications also need to query available time domains using:",{"type":1873,"tag":2013,"props":3048,"children":3050},{"className":2015,"code":3049,"language":2017,"meta":2018,"style":2018},"VkResult vkGetSwapchainTimeDomainPropertiesEXT(\n VkDevice device,\n VkSwapchainKHR swapchain,\n VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,\n uint64_t* pTimeDomainsCounter);\n",[3051],{"type":1873,"tag":1931,"props":3052,"children":3053},{"__ignoreMap":2018},[3054,3070,3085,3100,3121],{"type":1873,"tag":2024,"props":3055,"children":3056},{"class":2026,"line":10},[3057,3061,3066],{"type":1873,"tag":2024,"props":3058,"children":3059},{"style":2041},[3060],{"type":1878,"value":2566},{"type":1873,"tag":2024,"props":3062,"children":3063},{"style":2569},[3064],{"type":1878,"value":3065},"vkGetSwapchainTimeDomainPropertiesEXT",{"type":1873,"tag":2024,"props":3067,"children":3068},{"style":2041},[3069],{"type":1878,"value":2577},{"type":1873,"tag":2024,"props":3071,"children":3072},{"class":2026,"line":14},[3073,3077,3081],{"type":1873,"tag":2024,"props":3074,"children":3075},{"style":2041},[3076],{"type":1878,"value":2585},{"type":1873,"tag":2024,"props":3078,"children":3079},{"style":2588},[3080],{"type":1878,"value":266},{"type":1873,"tag":2024,"props":3082,"children":3083},{"style":2041},[3084],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3086,"children":3087},{"class":2026,"line":18},[3088,3092,3096],{"type":1873,"tag":2024,"props":3089,"children":3090},{"style":2041},[3091],{"type":1878,"value":2602},{"type":1873,"tag":2024,"props":3093,"children":3094},{"style":2588},[3095],{"type":1878,"value":2607},{"type":1873,"tag":2024,"props":3097,"children":3098},{"style":2041},[3099],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3101,"children":3102},{"class":2026,"line":22},[3103,3108,3112,3117],{"type":1873,"tag":2024,"props":3104,"children":3105},{"style":2041},[3106],{"type":1878,"value":3107}," VkSwapchainTimeDomainPropertiesEXT",{"type":1873,"tag":2024,"props":3109,"children":3110},{"style":2030},[3111],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":3113,"children":3114},{"style":2588},[3115],{"type":1878,"value":3116}," pSwapchainTimeDomainProperties",{"type":1873,"tag":2024,"props":3118,"children":3119},{"style":2041},[3120],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3122,"children":3123},{"class":2026,"line":26},[3124,3128,3133],{"type":1873,"tag":2024,"props":3125,"children":3126},{"style":2030},[3127],{"type":1878,"value":2771},{"type":1873,"tag":2024,"props":3129,"children":3130},{"style":2588},[3131],{"type":1878,"value":3132}," pTimeDomainsCounter",{"type":1873,"tag":2024,"props":3134,"children":3135},{"style":2041},[3136],{"type":1878,"value":2629},{"type":1873,"tag":1874,"props":3138,"children":3139},{},[3140,3142,3147,3149,3155,3157,3162],{"type":1878,"value":3141},"Similar to ",{"type":1873,"tag":2148,"props":3143,"children":3145},{"href":3144},"/404#_timing_properties",[3146],{"type":1878,"value":2672},{"type":1878,"value":3148},", supported time domains may change dynamically. ",{"type":1873,"tag":1931,"props":3150,"children":3152},{"className":3151},[],[3153],{"type":1878,"value":3154},"pTimeDomainsCounter",{"type":1878,"value":3156}," identifies the current list of available time domains, and further internal changes to this list are notified to the application when calling ",{"type":1873,"tag":1931,"props":3158,"children":3160},{"className":3159},[],[3161],{"type":1878,"value":2660},{"type":1878,"value":2155},{"type":1873,"tag":1874,"props":3164,"children":3165},{},[3166,3167,3173],{"type":1878,"value":2829},{"type":1873,"tag":1931,"props":3168,"children":3170},{"className":3169},[],[3171],{"type":1878,"value":3172},"VkSwapchainTimeDomainPropertiesEXT",{"type":1878,"value":2836},{"type":1873,"tag":2013,"props":3175,"children":3177},{"className":2015,"code":3176,"language":2017,"meta":2018,"style":2018},"typedef struct VkSwapchainTimeDomainPropertiesEXT {\n VkStructureType sType;\n void* pNext;\n uint32_t timeDomainCount;\n VkTimeDomainKHR *pTimeDomains;\n uint64_t *pTimeDomainIds;\n} VkSwapchainTimeDomainPropertiesEXT;\n",[3178],{"type":1873,"tag":1931,"props":3179,"children":3180},{"__ignoreMap":2018},[3181,3197,3204,3215,3227,3244,3261],{"type":1873,"tag":2024,"props":3182,"children":3183},{"class":2026,"line":10},[3184,3188,3192],{"type":1873,"tag":2024,"props":3185,"children":3186},{"style":2030},[3187],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3189,"children":3190},{"style":2030},[3191],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":3193,"children":3194},{"style":2041},[3195],{"type":1878,"value":3196}," VkSwapchainTimeDomainPropertiesEXT {\n",{"type":1873,"tag":2024,"props":3198,"children":3199},{"class":2026,"line":14},[3200],{"type":1873,"tag":2024,"props":3201,"children":3202},{"style":2041},[3203],{"type":1878,"value":2052},{"type":1873,"tag":2024,"props":3205,"children":3206},{"class":2026,"line":18},[3207,3211],{"type":1873,"tag":2024,"props":3208,"children":3209},{"style":2030},[3210],{"type":1878,"value":2060},{"type":1873,"tag":2024,"props":3212,"children":3213},{"style":2041},[3214],{"type":1878,"value":2065},{"type":1873,"tag":2024,"props":3216,"children":3217},{"class":2026,"line":22},[3218,3222],{"type":1873,"tag":2024,"props":3219,"children":3220},{"style":2030},[3221],{"type":1878,"value":2619},{"type":1873,"tag":2024,"props":3223,"children":3224},{"style":2041},[3225],{"type":1878,"value":3226}," timeDomainCount;\n",{"type":1873,"tag":2024,"props":3228,"children":3229},{"class":2026,"line":26},[3230,3235,3239],{"type":1873,"tag":2024,"props":3231,"children":3232},{"style":2041},[3233],{"type":1878,"value":3234}," VkTimeDomainKHR ",{"type":1873,"tag":2024,"props":3236,"children":3237},{"style":2030},[3238],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":3240,"children":3241},{"style":2041},[3242],{"type":1878,"value":3243},"pTimeDomains;\n",{"type":1873,"tag":2024,"props":3245,"children":3246},{"class":2026,"line":30},[3247,3251,3256],{"type":1873,"tag":2024,"props":3248,"children":3249},{"style":2030},[3250],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":3252,"children":3253},{"style":2030},[3254],{"type":1878,"value":3255}," *",{"type":1873,"tag":2024,"props":3257,"children":3258},{"style":2041},[3259],{"type":1878,"value":3260},"pTimeDomainIds;\n",{"type":1873,"tag":2024,"props":3262,"children":3263},{"class":2026,"line":34},[3264],{"type":1873,"tag":2024,"props":3265,"children":3266},{"style":2041},[3267],{"type":1878,"value":3268},"} VkSwapchainTimeDomainPropertiesEXT;\n",{"type":1873,"tag":1918,"props":3270,"children":3271},{},[3272,3338,3356],{"type":1873,"tag":1922,"props":3273,"children":3274},{},[3275,3281,3283,3289,3290,3296,3298,3303,3304,3309,3311,3317,3319,3324,3326,3331,3332,3337],{"type":1873,"tag":1931,"props":3276,"children":3278},{"className":3277},[],[3279],{"type":1878,"value":3280},"timeDomainCount",{"type":1878,"value":3282}," is an input specifying the size of the ",{"type":1873,"tag":1931,"props":3284,"children":3286},{"className":3285},[],[3287],{"type":1878,"value":3288},"pTimeDomains",{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":3291,"children":3293},{"className":3292},[],[3294],{"type":1878,"value":3295},"pTimeDomainIds",{"type":1878,"value":3297}," arrays. If ",{"type":1873,"tag":1931,"props":3299,"children":3301},{"className":3300},[],[3302],{"type":1878,"value":3288},{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":3305,"children":3307},{"className":3306},[],[3308],{"type":1878,"value":3295},{"type":1878,"value":3310}," are ",{"type":1873,"tag":1931,"props":3312,"children":3314},{"className":3313},[],[3315],{"type":1878,"value":3316},"NULL",{"type":1878,"value":3318},", it is set by the implementation upon return of ",{"type":1873,"tag":1931,"props":3320,"children":3322},{"className":3321},[],[3323],{"type":1878,"value":3065},{"type":1878,"value":3325}," to the number of available time domains. Otherwise, it is set to the number of elements written in ",{"type":1873,"tag":1931,"props":3327,"children":3329},{"className":3328},[],[3330],{"type":1878,"value":3288},{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":3333,"children":3335},{"className":3334},[],[3336],{"type":1878,"value":3295},{"type":1878,"value":2155},{"type":1873,"tag":1922,"props":3339,"children":3340},{},[3341,3346,3348,3354],{"type":1873,"tag":1931,"props":3342,"children":3344},{"className":3343},[],[3345],{"type":1878,"value":3288},{"type":1878,"value":3347}," is an array of ",{"type":1873,"tag":1931,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":1878,"value":3353},"VkTimeDomainKHR",{"type":1878,"value":3355}," currently supported by the swapchain.",{"type":1873,"tag":1922,"props":3357,"children":3358},{},[3359,3364],{"type":1873,"tag":1931,"props":3360,"children":3362},{"className":3361},[],[3363],{"type":1878,"value":3295},{"type":1878,"value":3365}," is an array of unique identifiers for each supported time domain. Time domains are assigned a unique identifier within a swapchain by the implementation. This id is used to differentiate between multiple swapchain-local time domains of the same scope.",{"type":1873,"tag":1874,"props":3367,"children":3368},{},[3369,3371,3376],{"type":1878,"value":3370},"Two new swapchain-local time domains are added in this proposal as ",{"type":1873,"tag":1931,"props":3372,"children":3374},{"className":3373},[],[3375],{"type":1878,"value":3353},{"type":1878,"value":3377}," values:",{"type":1873,"tag":2013,"props":3379,"children":3381},{"className":2015,"code":3380,"language":2017,"meta":2018,"style":2018},"typedef enum VkTimeDomainKHR {\n // ...\n VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,\n VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,\n} VkTimeDomainKHR;\n",[3382],{"type":1873,"tag":1931,"props":3383,"children":3384},{"__ignoreMap":2018},[3385,3401,3410,3431,3452],{"type":1873,"tag":2024,"props":3386,"children":3387},{"class":2026,"line":10},[3388,3392,3396],{"type":1873,"tag":2024,"props":3389,"children":3390},{"style":2030},[3391],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3393,"children":3394},{"style":2030},[3395],{"type":1878,"value":2293},{"type":1873,"tag":2024,"props":3397,"children":3398},{"style":2041},[3399],{"type":1878,"value":3400}," VkTimeDomainKHR {\n",{"type":1873,"tag":2024,"props":3402,"children":3403},{"class":2026,"line":14},[3404],{"type":1873,"tag":2024,"props":3405,"children":3407},{"style":3406},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[3408],{"type":1878,"value":3409}," // ...\n",{"type":1873,"tag":2024,"props":3411,"children":3412},{"class":2026,"line":18},[3413,3418,3422,3427],{"type":1873,"tag":2024,"props":3414,"children":3415},{"style":2041},[3416],{"type":1878,"value":3417}," VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT ",{"type":1873,"tag":2024,"props":3419,"children":3420},{"style":2030},[3421],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":3423,"children":3424},{"style":2319},[3425],{"type":1878,"value":3426}," 1000208000",{"type":1873,"tag":2024,"props":3428,"children":3429},{"style":2041},[3430],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3432,"children":3433},{"class":2026,"line":22},[3434,3439,3443,3448],{"type":1873,"tag":2024,"props":3435,"children":3436},{"style":2041},[3437],{"type":1878,"value":3438}," VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT ",{"type":1873,"tag":2024,"props":3440,"children":3441},{"style":2030},[3442],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":3444,"children":3445},{"style":2319},[3446],{"type":1878,"value":3447}," 1000208001",{"type":1873,"tag":2024,"props":3449,"children":3450},{"style":2041},[3451],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3453,"children":3454},{"class":2026,"line":26},[3455],{"type":1873,"tag":2024,"props":3456,"children":3457},{"style":2041},[3458],{"type":1878,"value":3459},"} VkTimeDomainKHR;\n",{"type":1873,"tag":1918,"props":3461,"children":3462},{},[3463,3474],{"type":1873,"tag":1922,"props":3464,"children":3465},{},[3466,3472],{"type":1873,"tag":1931,"props":3467,"children":3469},{"className":3468},[],[3470],{"type":1878,"value":3471},"VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT",{"type":1878,"value":3473}," is a stage-local and swapchain-local time domain. It allows platforms where different presentation stages are handled by independent hardware to report timings in their own time domain. It is required to be supported.",{"type":1873,"tag":1922,"props":3475,"children":3476},{},[3477,3483],{"type":1873,"tag":1931,"props":3478,"children":3480},{"className":3479},[],[3481],{"type":1878,"value":3482},"VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT",{"type":1878,"value":3484}," is a swapchain-local time domain, shared by all present stages.",{"type":1873,"tag":1874,"props":3486,"children":3487},{},[3488,3490,3496,3498,3504],{"type":1878,"value":3489},"To calibrate a swapchain-local or stage-local timestamp with another time domain, a new structure can be chained to ",{"type":1873,"tag":1931,"props":3491,"children":3493},{"className":3492},[],[3494],{"type":1878,"value":3495},"VkCalibratedTimestampInfoKHR",{"type":1878,"value":3497}," and passed to ",{"type":1873,"tag":1931,"props":3499,"children":3501},{"className":3500},[],[3502],{"type":1878,"value":3503},"vkGetCalibratedTimestampsKHR",{"type":1878,"value":3505},":",{"type":1873,"tag":2013,"props":3507,"children":3509},{"className":2015,"code":3508,"language":2017,"meta":2018,"style":2018},"typedef struct VkSwapchainCalibratedTimestampInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkSwapchainKHR swapchain;\n VkPresentStageFlagsEXT presentStage;\n uint64_t timeDomainId;\n} VkSwapchainCalibratedTimestampInfoEXT;\n",[3510],{"type":1873,"tag":1931,"props":3511,"children":3512},{"__ignoreMap":2018},[3513,3529,3537,3553,3561,3569,3581],{"type":1873,"tag":2024,"props":3514,"children":3515},{"class":2026,"line":10},[3516,3520,3524],{"type":1873,"tag":2024,"props":3517,"children":3518},{"style":2030},[3519],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3521,"children":3522},{"style":2030},[3523],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":3525,"children":3526},{"style":2041},[3527],{"type":1878,"value":3528}," VkSwapchainCalibratedTimestampInfoEXT {\n",{"type":1873,"tag":2024,"props":3530,"children":3531},{"class":2026,"line":14},[3532],{"type":1873,"tag":2024,"props":3533,"children":3534},{"style":2041},[3535],{"type":1878,"value":3536}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":3538,"children":3539},{"class":2026,"line":18},[3540,3544,3548],{"type":1873,"tag":2024,"props":3541,"children":3542},{"style":2030},[3543],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":3545,"children":3546},{"style":2030},[3547],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":3549,"children":3550},{"style":2041},[3551],{"type":1878,"value":3552}," pNext;\n",{"type":1873,"tag":2024,"props":3554,"children":3555},{"class":2026,"line":22},[3556],{"type":1873,"tag":2024,"props":3557,"children":3558},{"style":2041},[3559],{"type":1878,"value":3560}," VkSwapchainKHR swapchain;\n",{"type":1873,"tag":2024,"props":3562,"children":3563},{"class":2026,"line":26},[3564],{"type":1873,"tag":2024,"props":3565,"children":3566},{"style":2041},[3567],{"type":1878,"value":3568}," VkPresentStageFlagsEXT presentStage;\n",{"type":1873,"tag":2024,"props":3570,"children":3571},{"class":2026,"line":30},[3572,3576],{"type":1873,"tag":2024,"props":3573,"children":3574},{"style":2030},[3575],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":3577,"children":3578},{"style":2041},[3579],{"type":1878,"value":3580}," timeDomainId;\n",{"type":1873,"tag":2024,"props":3582,"children":3583},{"class":2026,"line":34},[3584],{"type":1873,"tag":2024,"props":3585,"children":3586},{"style":2041},[3587],{"type":1878,"value":3588},"} VkSwapchainCalibratedTimestampInfoEXT;\n",{"type":1873,"tag":1918,"props":3590,"children":3591},{},[3592,3625],{"type":1873,"tag":1922,"props":3593,"children":3594},{},[3595,3601,3603,3608,3610,3616,3618,3623],{"type":1873,"tag":1931,"props":3596,"children":3598},{"className":3597},[],[3599],{"type":1878,"value":3600},"presentStage",{"type":1878,"value":3602}," is zero to calibrate a ",{"type":1873,"tag":1931,"props":3604,"children":3606},{"className":3605},[],[3607],{"type":1878,"value":3482},{"type":1878,"value":3609}," time domain, or a single ",{"type":1873,"tag":1931,"props":3611,"children":3613},{"className":3612},[],[3614],{"type":1878,"value":3615},"VkPresentStageFlagsEXT",{"type":1878,"value":3617}," bit to calibrate a ",{"type":1873,"tag":1931,"props":3619,"children":3621},{"className":3620},[],[3622],{"type":1878,"value":3471},{"type":1878,"value":3624}," from that stage.",{"type":1873,"tag":1922,"props":3626,"children":3627},{},[3628,3634,3636,3641,3643,3648],{"type":1873,"tag":1931,"props":3629,"children":3631},{"className":3630},[],[3632],{"type":1878,"value":3633},"timeDomainId",{"type":1878,"value":3635}," is the identifier of the swapchain-local time domain returned by ",{"type":1873,"tag":1931,"props":3637,"children":3639},{"className":3638},[],[3640],{"type":1878,"value":3065},{"type":1878,"value":3642}," or ",{"type":1873,"tag":1931,"props":3644,"children":3646},{"className":3645},[],[3647],{"type":1878,"value":2660},{"type":1878,"value":2155},{"type":1873,"tag":1997,"props":3650,"children":3651},{"id":2421},[3652],{"type":1878,"value":3653},"Presentation timings feedback",{"type":1873,"tag":1874,"props":3655,"children":3656},{},[3657],{"type":1878,"value":3658},"Applications can obtain timing information about previous presents using:",{"type":1873,"tag":2013,"props":3660,"children":3662},{"className":2015,"code":3661,"language":2017,"meta":2018,"style":2018},"VkResult vkGetPastPresentationTimingEXT(\n VkDevice device,\n const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,\n VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);\n",[3663],{"type":1873,"tag":1931,"props":3664,"children":3665},{"__ignoreMap":2018},[3666,3681,3697,3722],{"type":1873,"tag":2024,"props":3667,"children":3668},{"class":2026,"line":10},[3669,3673,3677],{"type":1873,"tag":2024,"props":3670,"children":3671},{"style":2041},[3672],{"type":1878,"value":2566},{"type":1873,"tag":2024,"props":3674,"children":3675},{"style":2569},[3676],{"type":1878,"value":2660},{"type":1873,"tag":2024,"props":3678,"children":3679},{"style":2041},[3680],{"type":1878,"value":2577},{"type":1873,"tag":2024,"props":3682,"children":3683},{"class":2026,"line":14},[3684,3689,3693],{"type":1873,"tag":2024,"props":3685,"children":3686},{"style":2041},[3687],{"type":1878,"value":3688}," VkDevice ",{"type":1873,"tag":2024,"props":3690,"children":3691},{"style":2588},[3692],{"type":1878,"value":266},{"type":1873,"tag":2024,"props":3694,"children":3695},{"style":2041},[3696],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3698,"children":3699},{"class":2026,"line":18},[3700,3704,3709,3713,3718],{"type":1873,"tag":2024,"props":3701,"children":3702},{"style":2030},[3703],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":3705,"children":3706},{"style":2041},[3707],{"type":1878,"value":3708}," VkPastPresentationTimingInfoEXT",{"type":1873,"tag":2024,"props":3710,"children":3711},{"style":2030},[3712],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":3714,"children":3715},{"style":2588},[3716],{"type":1878,"value":3717}," pPastPresentationTimingInfo",{"type":1873,"tag":2024,"props":3719,"children":3720},{"style":2041},[3721],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3723,"children":3724},{"class":2026,"line":22},[3725,3730,3734,3739],{"type":1873,"tag":2024,"props":3726,"children":3727},{"style":2041},[3728],{"type":1878,"value":3729}," VkPastPresentationTimingPropertiesEXT",{"type":1873,"tag":2024,"props":3731,"children":3732},{"style":2030},[3733],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":3735,"children":3736},{"style":2588},[3737],{"type":1878,"value":3738}," pPastPresentationTimingProperties",{"type":1873,"tag":2024,"props":3740,"children":3741},{"style":2041},[3742],{"type":1878,"value":2629},{"type":1873,"tag":1874,"props":3744,"children":3745},{},[3746,3752,3754,3759,3761,3767],{"type":1873,"tag":1931,"props":3747,"children":3749},{"className":3748},[],[3750],{"type":1878,"value":3751},"VkPastPresentationTimingInfoEXT",{"type":1878,"value":3753}," is a simple input structure referencing the ",{"type":1873,"tag":1931,"props":3755,"children":3757},{"className":3756},[],[3758],{"type":1878,"value":2607},{"type":1878,"value":3760}," to target, allowing for potential future extensions to hook into the ",{"type":1873,"tag":1931,"props":3762,"children":3764},{"className":3763},[],[3765],{"type":1878,"value":3766},"pNext",{"type":1878,"value":3768}," chain:",{"type":1873,"tag":2013,"props":3770,"children":3772},{"className":2015,"code":3771,"language":2017,"meta":2018,"style":2018},"typedef struct VkPastPresentationTimingInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkPastPresentationTimingFlagsEXT flags;\n VkSwapchainKHR swapchain;\n};\n",[3773],{"type":1873,"tag":1931,"props":3774,"children":3775},{"__ignoreMap":2018},[3776,3792,3800,3816,3824,3832],{"type":1873,"tag":2024,"props":3777,"children":3778},{"class":2026,"line":10},[3779,3783,3787],{"type":1873,"tag":2024,"props":3780,"children":3781},{"style":2030},[3782],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3784,"children":3785},{"style":2030},[3786],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":3788,"children":3789},{"style":2041},[3790],{"type":1878,"value":3791}," VkPastPresentationTimingInfoEXT {\n",{"type":1873,"tag":2024,"props":3793,"children":3794},{"class":2026,"line":14},[3795],{"type":1873,"tag":2024,"props":3796,"children":3797},{"style":2041},[3798],{"type":1878,"value":3799}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":3801,"children":3802},{"class":2026,"line":18},[3803,3807,3811],{"type":1873,"tag":2024,"props":3804,"children":3805},{"style":2030},[3806],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":3808,"children":3809},{"style":2030},[3810],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":3812,"children":3813},{"style":2041},[3814],{"type":1878,"value":3815}," pNext;\n",{"type":1873,"tag":2024,"props":3817,"children":3818},{"class":2026,"line":22},[3819],{"type":1873,"tag":2024,"props":3820,"children":3821},{"style":2041},[3822],{"type":1878,"value":3823}," VkPastPresentationTimingFlagsEXT flags;\n",{"type":1873,"tag":2024,"props":3825,"children":3826},{"class":2026,"line":26},[3827],{"type":1873,"tag":2024,"props":3828,"children":3829},{"style":2041},[3830],{"type":1878,"value":3831}," VkSwapchainKHR swapchain;\n",{"type":1873,"tag":2024,"props":3833,"children":3834},{"class":2026,"line":30},[3835],{"type":1873,"tag":2024,"props":3836,"children":3837},{"style":2041},[3838],{"type":1878,"value":3839},"};\n",{"type":1873,"tag":1874,"props":3841,"children":3842},{},[3843,3845,3851],{"type":1878,"value":3844},"The flag bits for ",{"type":1873,"tag":1931,"props":3846,"children":3848},{"className":3847},[],[3849],{"type":1878,"value":3850},"VkPastPresentationTimingFlagsEXT",{"type":1878,"value":3852}," are defined as:",{"type":1873,"tag":2013,"props":3854,"children":3856},{"className":2015,"code":3855,"language":2017,"meta":2018,"style":2018},"typedef enum VkPastPresentationTimingFlagBitsEXT {\n VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,\n VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,\n} VkPastPresentationTimingFlagBitsEXT;\ntypedef VkFlags VkPastPresentationTimingFlagsEXT;\n",[3857],{"type":1873,"tag":1931,"props":3858,"children":3859},{"__ignoreMap":2018},[3860,3876,3900,3924,3932],{"type":1873,"tag":2024,"props":3861,"children":3862},{"class":2026,"line":10},[3863,3867,3871],{"type":1873,"tag":2024,"props":3864,"children":3865},{"style":2030},[3866],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3868,"children":3869},{"style":2030},[3870],{"type":1878,"value":2293},{"type":1873,"tag":2024,"props":3872,"children":3873},{"style":2041},[3874],{"type":1878,"value":3875}," VkPastPresentationTimingFlagBitsEXT {\n",{"type":1873,"tag":2024,"props":3877,"children":3878},{"class":2026,"line":14},[3879,3884,3888,3892,3896],{"type":1873,"tag":2024,"props":3880,"children":3881},{"style":2041},[3882],{"type":1878,"value":3883}," VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT ",{"type":1873,"tag":2024,"props":3885,"children":3886},{"style":2030},[3887],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":3889,"children":3890},{"style":2030},[3891],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":3893,"children":3894},{"style":2319},[3895],{"type":1878,"value":2322},{"type":1873,"tag":2024,"props":3897,"children":3898},{"style":2041},[3899],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3901,"children":3902},{"class":2026,"line":18},[3903,3908,3912,3916,3920],{"type":1873,"tag":2024,"props":3904,"children":3905},{"style":2041},[3906],{"type":1878,"value":3907}," VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT ",{"type":1873,"tag":2024,"props":3909,"children":3910},{"style":2030},[3911],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":3913,"children":3914},{"style":2030},[3915],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":3917,"children":3918},{"style":2319},[3919],{"type":1878,"value":2348},{"type":1873,"tag":2024,"props":3921,"children":3922},{"style":2041},[3923],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":3925,"children":3926},{"class":2026,"line":22},[3927],{"type":1873,"tag":2024,"props":3928,"children":3929},{"style":2041},[3930],{"type":1878,"value":3931},"} VkPastPresentationTimingFlagBitsEXT;\n",{"type":1873,"tag":2024,"props":3933,"children":3934},{"class":2026,"line":26},[3935,3939],{"type":1873,"tag":2024,"props":3936,"children":3937},{"style":2030},[3938],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":3940,"children":3941},{"style":2041},[3942],{"type":1878,"value":3943}," VkFlags VkPastPresentationTimingFlagsEXT;\n",{"type":1873,"tag":1918,"props":3945,"children":3946},{},[3947,3965],{"type":1873,"tag":1922,"props":3948,"children":3949},{},[3950,3956,3958,3963],{"type":1873,"tag":1931,"props":3951,"children":3953},{"className":3952},[],[3954],{"type":1878,"value":3955},"VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT",{"type":1878,"value":3957}," allows ",{"type":1873,"tag":1931,"props":3959,"children":3961},{"className":3960},[],[3962],{"type":1878,"value":2660},{"type":1878,"value":3964}," to return partial results for presentation requests that have not completed all requested present stages.",{"type":1873,"tag":1922,"props":3966,"children":3967},{},[3968,3974,3975,3980],{"type":1873,"tag":1931,"props":3969,"children":3971},{"className":3970},[],[3972],{"type":1878,"value":3973},"VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT",{"type":1878,"value":3957},{"type":1873,"tag":1931,"props":3976,"children":3978},{"className":3977},[],[3979],{"type":1878,"value":2660},{"type":1878,"value":3981}," to return results out of order with respect to the presentation order.",{"type":1873,"tag":1874,"props":3983,"children":3984},{},[3985,3986,3992],{"type":1878,"value":2829},{"type":1873,"tag":1931,"props":3987,"children":3989},{"className":3988},[],[3990],{"type":1878,"value":3991},"VkPastPresentationTimingPropertiesEXT",{"type":1878,"value":2836},{"type":1873,"tag":2013,"props":3994,"children":3996},{"className":2015,"code":3995,"language":2017,"meta":2018,"style":2018},"typedef struct VkPastPresentationTimingPropertiesEXT {\n VkStructureType sType;\n const void* pNext;\n uint64_t timingPropertiesCounter;\n uint64_t timeDomainsCounter;\n uint32_t presentationTimingCount;\n VkPastPresentationTimingEXT* pPresentationTimings;\n};\n",[3997],{"type":1873,"tag":1931,"props":3998,"children":3999},{"__ignoreMap":2018},[4000,4016,4024,4039,4051,4063,4075,4092],{"type":1873,"tag":2024,"props":4001,"children":4002},{"class":2026,"line":10},[4003,4007,4011],{"type":1873,"tag":2024,"props":4004,"children":4005},{"style":2030},[4006],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4008,"children":4009},{"style":2030},[4010],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":4012,"children":4013},{"style":2041},[4014],{"type":1878,"value":4015}," VkPastPresentationTimingPropertiesEXT {\n",{"type":1873,"tag":2024,"props":4017,"children":4018},{"class":2026,"line":14},[4019],{"type":1873,"tag":2024,"props":4020,"children":4021},{"style":2041},[4022],{"type":1878,"value":4023}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":4025,"children":4026},{"class":2026,"line":18},[4027,4031,4035],{"type":1873,"tag":2024,"props":4028,"children":4029},{"style":2030},[4030],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":4032,"children":4033},{"style":2030},[4034],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":4036,"children":4037},{"style":2041},[4038],{"type":1878,"value":2211},{"type":1873,"tag":2024,"props":4040,"children":4041},{"class":2026,"line":22},[4042,4046],{"type":1873,"tag":2024,"props":4043,"children":4044},{"style":2030},[4045],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4047,"children":4048},{"style":2041},[4049],{"type":1878,"value":4050}," timingPropertiesCounter;\n",{"type":1873,"tag":2024,"props":4052,"children":4053},{"class":2026,"line":26},[4054,4058],{"type":1873,"tag":2024,"props":4055,"children":4056},{"style":2030},[4057],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4059,"children":4060},{"style":2041},[4061],{"type":1878,"value":4062}," timeDomainsCounter;\n",{"type":1873,"tag":2024,"props":4064,"children":4065},{"class":2026,"line":30},[4066,4070],{"type":1873,"tag":2024,"props":4067,"children":4068},{"style":2030},[4069],{"type":1878,"value":2619},{"type":1873,"tag":2024,"props":4071,"children":4072},{"style":2041},[4073],{"type":1878,"value":4074}," presentationTimingCount;\n",{"type":1873,"tag":2024,"props":4076,"children":4077},{"class":2026,"line":34},[4078,4083,4087],{"type":1873,"tag":2024,"props":4079,"children":4080},{"style":2041},[4081],{"type":1878,"value":4082}," VkPastPresentationTimingEXT",{"type":1873,"tag":2024,"props":4084,"children":4085},{"style":2030},[4086],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":4088,"children":4089},{"style":2041},[4090],{"type":1878,"value":4091}," pPresentationTimings;\n",{"type":1873,"tag":2024,"props":4093,"children":4094},{"class":2026,"line":38},[4095],{"type":1873,"tag":2024,"props":4096,"children":4097},{"style":2041},[4098],{"type":1878,"value":3839},{"type":1873,"tag":1918,"props":4100,"children":4101},{},[4102,4113,4124],{"type":1873,"tag":1922,"props":4103,"children":4104},{},[4105,4111],{"type":1873,"tag":1931,"props":4106,"children":4108},{"className":4107},[],[4109],{"type":1878,"value":4110},"timingPropertiesCounter",{"type":1878,"value":4112}," is set to the current internal counter of the swapchain’s timing properties.",{"type":1873,"tag":1922,"props":4114,"children":4115},{},[4116,4122],{"type":1873,"tag":1931,"props":4117,"children":4119},{"className":4118},[],[4120],{"type":1878,"value":4121},"timeDomainsCounter",{"type":1878,"value":4123}," is set to the current internal counter of the swapchain’s supported time domain list.",{"type":1873,"tag":1922,"props":4125,"children":4126},{},[4127,4133,4135,4141,4143,4148,4149,4154,4156,4161,4163,4168,4170,4176],{"type":1873,"tag":1931,"props":4128,"children":4130},{"className":4129},[],[4131],{"type":1878,"value":4132},"presentationTimingCount",{"type":1878,"value":4134}," specifies the size of the ",{"type":1873,"tag":1931,"props":4136,"children":4138},{"className":4137},[],[4139],{"type":1878,"value":4140},"pPresentationTimings",{"type":1878,"value":4142}," array. If ",{"type":1873,"tag":1931,"props":4144,"children":4146},{"className":4145},[],[4147],{"type":1878,"value":4140},{"type":1878,"value":2512},{"type":1873,"tag":1931,"props":4150,"children":4152},{"className":4151},[],[4153],{"type":1878,"value":3316},{"type":1878,"value":4155},", the implementation sets it to the number of pending results available in the swapchain’s internal queue. Otherwise, it is overwritten upon return with the number of entries written to ",{"type":1873,"tag":1931,"props":4157,"children":4159},{"className":4158},[],[4160],{"type":1878,"value":4140},{"type":1878,"value":4162},". If the implementation is not able to write all the available results in the provided ",{"type":1873,"tag":1931,"props":4164,"children":4166},{"className":4165},[],[4167],{"type":1878,"value":4140},{"type":1878,"value":4169}," array, ",{"type":1873,"tag":1931,"props":4171,"children":4173},{"className":4172},[],[4174],{"type":1878,"value":4175},"VK_INCOMPLETE",{"type":1878,"value":2642},{"type":1873,"tag":1874,"props":4178,"children":4179},{},[4180,4182,4187,4189,4195,4197,4202,4204,4209,4211,4217],{"type":1878,"value":4181},"Results for presentation requests whose entries in ",{"type":1873,"tag":1931,"props":4183,"children":4185},{"className":4184},[],[4186],{"type":1878,"value":4140},{"type":1878,"value":4188}," are marked as complete with ",{"type":1873,"tag":1931,"props":4190,"children":4192},{"className":4191},[],[4193],{"type":1878,"value":4194},"VkPastPresentationTimingEXT::reportComplete",{"type":1878,"value":4196}," will not be returned anymore. For each of those, a slot in the swapchain’s internal results queue is released. Incomplete results for presentation requests will keep being reported in further ",{"type":1873,"tag":1931,"props":4198,"children":4200},{"className":4199},[],[4201],{"type":1878,"value":2660},{"type":1878,"value":4203}," calls until complete, if the ",{"type":1873,"tag":1931,"props":4205,"children":4207},{"className":4206},[],[4208],{"type":1878,"value":3955},{"type":1878,"value":4210}," flag is set in ",{"type":1873,"tag":1931,"props":4212,"children":4214},{"className":4213},[],[4215],{"type":1878,"value":4216},"VkPastPresentationTimingInfoEXT::flags",{"type":1878,"value":2155},{"type":1873,"tag":1874,"props":4219,"children":4220},{},[4221,4227],{"type":1873,"tag":1931,"props":4222,"children":4224},{"className":4223},[],[4225],{"type":1878,"value":4226},"VkPastPresentationTimingEXT",{"type":1878,"value":4228}," is defined as:",{"type":1873,"tag":2013,"props":4230,"children":4232},{"className":2015,"code":4231,"language":2017,"meta":2018,"style":2018},"typedef struct VkPresentStageTimeEXT {\n VkPresentStageFlagsEXT stage;\n uint64_t time;\n} VkPresentStageTimeEXT;\n\ntypedef struct VkPastPresentationTimingEXT {\n VkStructureType sType;\n const void* pNext;\n uint64_t presentId;\n uint64_t targetTime;\n uint32_t presentStageCount;\n VkPresentStageTimeEXT* pPresentStages;\n VkTimeDomainKHR timeDomain;\n uint64_t timeDomainId;\n VkBool32 reportComplete;\n} VkPastPresentationTimingEXT;\n",[4233],{"type":1873,"tag":1931,"props":4234,"children":4235},{"__ignoreMap":2018},[4236,4252,4260,4272,4280,4288,4304,4311,4327,4339,4351,4363,4380,4388,4400,4408],{"type":1873,"tag":2024,"props":4237,"children":4238},{"class":2026,"line":10},[4239,4243,4247],{"type":1873,"tag":2024,"props":4240,"children":4241},{"style":2030},[4242],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4244,"children":4245},{"style":2030},[4246],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":4248,"children":4249},{"style":2041},[4250],{"type":1878,"value":4251}," VkPresentStageTimeEXT {\n",{"type":1873,"tag":2024,"props":4253,"children":4254},{"class":2026,"line":14},[4255],{"type":1873,"tag":2024,"props":4256,"children":4257},{"style":2041},[4258],{"type":1878,"value":4259}," VkPresentStageFlagsEXT stage;\n",{"type":1873,"tag":2024,"props":4261,"children":4262},{"class":2026,"line":18},[4263,4267],{"type":1873,"tag":2024,"props":4264,"children":4265},{"style":2030},[4266],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4268,"children":4269},{"style":2041},[4270],{"type":1878,"value":4271}," time;\n",{"type":1873,"tag":2024,"props":4273,"children":4274},{"class":2026,"line":22},[4275],{"type":1873,"tag":2024,"props":4276,"children":4277},{"style":2041},[4278],{"type":1878,"value":4279},"} VkPresentStageTimeEXT;\n",{"type":1873,"tag":2024,"props":4281,"children":4282},{"class":2026,"line":26},[4283],{"type":1873,"tag":2024,"props":4284,"children":4285},{"emptyLinePlaceholder":232},[4286],{"type":1878,"value":4287},"\n",{"type":1873,"tag":2024,"props":4289,"children":4290},{"class":2026,"line":30},[4291,4295,4299],{"type":1873,"tag":2024,"props":4292,"children":4293},{"style":2030},[4294],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4296,"children":4297},{"style":2030},[4298],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":4300,"children":4301},{"style":2041},[4302],{"type":1878,"value":4303}," VkPastPresentationTimingEXT {\n",{"type":1873,"tag":2024,"props":4305,"children":4306},{"class":2026,"line":34},[4307],{"type":1873,"tag":2024,"props":4308,"children":4309},{"style":2041},[4310],{"type":1878,"value":2199},{"type":1873,"tag":2024,"props":4312,"children":4313},{"class":2026,"line":38},[4314,4318,4322],{"type":1873,"tag":2024,"props":4315,"children":4316},{"style":2030},[4317],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":4319,"children":4320},{"style":2030},[4321],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":4323,"children":4324},{"style":2041},[4325],{"type":1878,"value":4326}," pNext;\n",{"type":1873,"tag":2024,"props":4328,"children":4329},{"class":2026,"line":42},[4330,4334],{"type":1873,"tag":2024,"props":4331,"children":4332},{"style":2030},[4333],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4335,"children":4336},{"style":2041},[4337],{"type":1878,"value":4338}," presentId;\n",{"type":1873,"tag":2024,"props":4340,"children":4341},{"class":2026,"line":46},[4342,4346],{"type":1873,"tag":2024,"props":4343,"children":4344},{"style":2030},[4345],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4347,"children":4348},{"style":2041},[4349],{"type":1878,"value":4350}," targetTime;\n",{"type":1873,"tag":2024,"props":4352,"children":4353},{"class":2026,"line":50},[4354,4358],{"type":1873,"tag":2024,"props":4355,"children":4356},{"style":2030},[4357],{"type":1878,"value":2619},{"type":1873,"tag":2024,"props":4359,"children":4360},{"style":2041},[4361],{"type":1878,"value":4362}," presentStageCount;\n",{"type":1873,"tag":2024,"props":4364,"children":4365},{"class":2026,"line":54},[4366,4371,4375],{"type":1873,"tag":2024,"props":4367,"children":4368},{"style":2041},[4369],{"type":1878,"value":4370}," VkPresentStageTimeEXT",{"type":1873,"tag":2024,"props":4372,"children":4373},{"style":2030},[4374],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":4376,"children":4377},{"style":2041},[4378],{"type":1878,"value":4379}," pPresentStages;\n",{"type":1873,"tag":2024,"props":4381,"children":4382},{"class":2026,"line":58},[4383],{"type":1873,"tag":2024,"props":4384,"children":4385},{"style":2041},[4386],{"type":1878,"value":4387}," VkTimeDomainKHR timeDomain;\n",{"type":1873,"tag":2024,"props":4389,"children":4390},{"class":2026,"line":62},[4391,4395],{"type":1873,"tag":2024,"props":4392,"children":4393},{"style":2030},[4394],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4396,"children":4397},{"style":2041},[4398],{"type":1878,"value":4399}," timeDomainId;\n",{"type":1873,"tag":2024,"props":4401,"children":4402},{"class":2026,"line":66},[4403],{"type":1873,"tag":2024,"props":4404,"children":4405},{"style":2041},[4406],{"type":1878,"value":4407}," VkBool32 reportComplete;\n",{"type":1873,"tag":2024,"props":4409,"children":4410},{"class":2026,"line":70},[4411],{"type":1873,"tag":2024,"props":4412,"children":4413},{"style":2041},[4414],{"type":1878,"value":4415},"} VkPastPresentationTimingEXT;\n",{"type":1873,"tag":1918,"props":4417,"children":4418},{},[4419,4453,4471,4504,4535],{"type":1873,"tag":1922,"props":4420,"children":4421},{},[4422,4428,4430,4435,4437,4443,4445,4451],{"type":1873,"tag":1931,"props":4423,"children":4425},{"className":4424},[],[4426],{"type":1878,"value":4427},"presentId",{"type":1878,"value":4429}," is zero or a present id provided to ",{"type":1873,"tag":1931,"props":4431,"children":4433},{"className":4432},[],[4434],{"type":1878,"value":2136},{"type":1878,"value":4436}," by adding a ",{"type":1873,"tag":1931,"props":4438,"children":4440},{"className":4439},[],[4441],{"type":1878,"value":4442},"VkPresentId2KHR",{"type":1878,"value":4444}," to the ",{"type":1873,"tag":1931,"props":4446,"children":4448},{"className":4447},[],[4449],{"type":1878,"value":4450},"VkPresentInfoKHR",{"type":1878,"value":4452}," pNext chain. Timing results can be correlated to specific presents using this value.",{"type":1873,"tag":1922,"props":4454,"children":4455},{},[4456,4462,4464,4470],{"type":1873,"tag":1931,"props":4457,"children":4459},{"className":4458},[],[4460],{"type":1878,"value":4461},"targetTime",{"type":1878,"value":4463}," is the target present time or duration in nanoseconds specified by the application for the associated presentation request in ",{"type":1873,"tag":1931,"props":4465,"children":4467},{"className":4466},[],[4468],{"type":1878,"value":4469},"VkPresentTimingInfoEXT::targetTime",{"type":1878,"value":2155},{"type":1873,"tag":1922,"props":4472,"children":4473},{},[4474,4480,4481,4487,4489,4495,4497,4502],{"type":1873,"tag":1931,"props":4475,"children":4477},{"className":4476},[],[4478],{"type":1878,"value":4479},"presentStageCount",{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":4482,"children":4484},{"className":4483},[],[4485],{"type":1878,"value":4486},"pPresentStages",{"type":1878,"value":4488}," contain the timing information for the present stages that were specified in the ",{"type":1873,"tag":1931,"props":4490,"children":4492},{"className":4491},[],[4493],{"type":1878,"value":4494},"VkPresentTimingInfoEXT",{"type":1878,"value":4496}," passed to the corresponding ",{"type":1873,"tag":1931,"props":4498,"children":4500},{"className":4499},[],[4501],{"type":1878,"value":2136},{"type":1878,"value":4503}," call.",{"type":1873,"tag":1922,"props":4505,"children":4506},{},[4507,4513,4514,4519,4521,4526,4528,4533],{"type":1873,"tag":1931,"props":4508,"children":4510},{"className":4509},[],[4511],{"type":1878,"value":4512},"timeDomain",{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":4515,"children":4517},{"className":4516},[],[4518],{"type":1878,"value":3633},{"type":1878,"value":4520}," define the time domain used for ",{"type":1873,"tag":1931,"props":4522,"children":4524},{"className":4523},[],[4525],{"type":1878,"value":4486},{"type":1878,"value":4527}," result times. It may be different than the time domain specified for the associated ",{"type":1873,"tag":1931,"props":4529,"children":4531},{"className":4530},[],[4532],{"type":1878,"value":2136},{"type":1878,"value":4534}," call if that time domain was unavailable when the presentation request was processed.",{"type":1873,"tag":1922,"props":4536,"children":4537},{},[4538,4544],{"type":1873,"tag":1931,"props":4539,"children":4541},{"className":4540},[],[4542],{"type":1878,"value":4543},"reportComplete",{"type":1878,"value":4545}," indicates whether results for all present stages have been reported.",{"type":1873,"tag":1874,"props":4547,"children":4548},{},[4549,4554,4555,4560],{"type":1873,"tag":1931,"props":4550,"children":4552},{"className":4551},[],[4553],{"type":1878,"value":4479},{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":4556,"children":4558},{"className":4557},[],[4559],{"type":1878,"value":4486},{"type":1878,"value":4561}," must be setup by the application to hold enough present stage results for the outstanding presentation requests.",{"type":1873,"tag":1874,"props":4563,"children":4564},{},[4565,4570,4572,4577,4579,4585],{"type":1873,"tag":1931,"props":4566,"children":4568},{"className":4567},[],[4569],{"type":1878,"value":4479},{"type":1878,"value":4571}," only reports the number of stages which contain definitive results. However, time values in completed ",{"type":1873,"tag":1931,"props":4573,"children":4575},{"className":4574},[],[4576],{"type":1878,"value":4486},{"type":1878,"value":4578}," can still be 0 for multiple reasons. Most notably, it is possible for a presentation request to never reach some present stages, for example if using a present mode that allows images to be replaced in the queue, such as ",{"type":1873,"tag":1931,"props":4580,"children":4582},{"className":4581},[],[4583],{"type":1878,"value":4584},"VK_PRESENT_MODE_FIFO_LATEST_READY_KHR",{"type":1878,"value":4586},". Platform-specific events can also cause results for some present stages to be unavailable for a specific presentation request.",{"type":1873,"tag":1874,"props":4588,"children":4589},{},[4590,4592,4598,4600,4605,4606,4611,4613,4618],{"type":1878,"value":4591},"To accommodate for the difference in query latency among the different present stages, timing results can be reported as incomplete when multiple present stages were specified in ",{"type":1873,"tag":1931,"props":4593,"children":4595},{"className":4594},[],[4596],{"type":1878,"value":4597},"VkPresentTimingInfoEXT::presentStageQueries",{"type":1878,"value":4599}," and the ",{"type":1873,"tag":1931,"props":4601,"children":4603},{"className":4602},[],[4604],{"type":1878,"value":3955},{"type":1878,"value":4210},{"type":1873,"tag":1931,"props":4607,"children":4609},{"className":4608},[],[4610],{"type":1878,"value":4216},{"type":1878,"value":4612},". For example, in more complex topologies of the display system, such as network-based configurations, results for the ",{"type":1873,"tag":1931,"props":4614,"children":4616},{"className":4615},[],[4617],{"type":1878,"value":2434},{"type":1878,"value":4619}," present stage can be available much earlier than for subsequent stages.",{"type":1873,"tag":4621,"props":4622,"children":4623},"note",{},[4624],{"type":1873,"tag":1874,"props":4625,"children":4626},{},[4627],{"type":1878,"value":4628},"One key aspect that is notably missing from this extension is the ability to collect timing information from individual \"nodes\" of the display topology. A typical example would be a system connected to two displays, running in \"mirror\" mode so that both will display the swapchain contents; in this case, this API does not provide any way to know which monitor the timings correspond to: the only requirement is that the timings are from an entity that is affected by the presentation. There are security considerations to providing such details that are best covered by system-specific extensions.",{"type":1873,"tag":1997,"props":4630,"children":4631},{"id":2153},[4632],{"type":1878,"value":4633},"Scheduling presents",{"type":1873,"tag":1874,"props":4635,"children":4636},{},[4637,4639,4645,4647,4652],{"type":1878,"value":4638},"A new struct ",{"type":1873,"tag":1931,"props":4640,"children":4642},{"className":4641},[],[4643],{"type":1878,"value":4644},"VkPresentTimingsInfoEXT",{"type":1878,"value":4646}," can be appended to the ",{"type":1873,"tag":1931,"props":4648,"children":4650},{"className":4649},[],[4651],{"type":1878,"value":4450},{"type":1878,"value":4653}," pNext chain to specify present timing properties:",{"type":1873,"tag":2013,"props":4655,"children":4657},{"className":2015,"code":4656,"language":2017,"meta":2018,"style":2018},"typedef struct VkPresentTimingInfoEXT {\n VkStructureType sType;\n const void* pNext;\n VkPresentTimingInfoFlagsEXT flags;\n uint64_t targetTime;\n uint64_t timeDomainId;\n VkPresentStageFlagsEXT presentStageQueries;\n VkPresentStageFlagsEXT targetTimeDomainPresentStage;\n} VkPresentTimingInfoEXT;\n\ntypedef struct VkPresentTimingsInfoEXT {\n VkStructureType sType;\n const void* pNext;\n uint32_t swapchainCount;\n const VkPresentTimingInfoEXT* pTimingInfos;\n} VkPresentTimingsInfoEXT;\n",[4658],{"type":1873,"tag":1931,"props":4659,"children":4660},{"__ignoreMap":2018},[4661,4677,4685,4701,4709,4721,4733,4741,4749,4757,4764,4780,4788,4804,4816,4837],{"type":1873,"tag":2024,"props":4662,"children":4663},{"class":2026,"line":10},[4664,4668,4672],{"type":1873,"tag":2024,"props":4665,"children":4666},{"style":2030},[4667],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4669,"children":4670},{"style":2030},[4671],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":4673,"children":4674},{"style":2041},[4675],{"type":1878,"value":4676}," VkPresentTimingInfoEXT {\n",{"type":1873,"tag":2024,"props":4678,"children":4679},{"class":2026,"line":14},[4680],{"type":1873,"tag":2024,"props":4681,"children":4682},{"style":2041},[4683],{"type":1878,"value":4684}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":4686,"children":4687},{"class":2026,"line":18},[4688,4692,4696],{"type":1873,"tag":2024,"props":4689,"children":4690},{"style":2030},[4691],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":4693,"children":4694},{"style":2030},[4695],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":4697,"children":4698},{"style":2041},[4699],{"type":1878,"value":4700}," pNext;\n",{"type":1873,"tag":2024,"props":4702,"children":4703},{"class":2026,"line":22},[4704],{"type":1873,"tag":2024,"props":4705,"children":4706},{"style":2041},[4707],{"type":1878,"value":4708}," VkPresentTimingInfoFlagsEXT flags;\n",{"type":1873,"tag":2024,"props":4710,"children":4711},{"class":2026,"line":26},[4712,4716],{"type":1873,"tag":2024,"props":4713,"children":4714},{"style":2030},[4715],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4717,"children":4718},{"style":2041},[4719],{"type":1878,"value":4720}," targetTime;\n",{"type":1873,"tag":2024,"props":4722,"children":4723},{"class":2026,"line":30},[4724,4728],{"type":1873,"tag":2024,"props":4725,"children":4726},{"style":2030},[4727],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":4729,"children":4730},{"style":2041},[4731],{"type":1878,"value":4732}," timeDomainId;\n",{"type":1873,"tag":2024,"props":4734,"children":4735},{"class":2026,"line":34},[4736],{"type":1873,"tag":2024,"props":4737,"children":4738},{"style":2041},[4739],{"type":1878,"value":4740}," VkPresentStageFlagsEXT presentStageQueries;\n",{"type":1873,"tag":2024,"props":4742,"children":4743},{"class":2026,"line":38},[4744],{"type":1873,"tag":2024,"props":4745,"children":4746},{"style":2041},[4747],{"type":1878,"value":4748}," VkPresentStageFlagsEXT targetTimeDomainPresentStage;\n",{"type":1873,"tag":2024,"props":4750,"children":4751},{"class":2026,"line":42},[4752],{"type":1873,"tag":2024,"props":4753,"children":4754},{"style":2041},[4755],{"type":1878,"value":4756},"} VkPresentTimingInfoEXT;\n",{"type":1873,"tag":2024,"props":4758,"children":4759},{"class":2026,"line":46},[4760],{"type":1873,"tag":2024,"props":4761,"children":4762},{"emptyLinePlaceholder":232},[4763],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":4765,"children":4766},{"class":2026,"line":50},[4767,4771,4775],{"type":1873,"tag":2024,"props":4768,"children":4769},{"style":2030},[4770],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4772,"children":4773},{"style":2030},[4774],{"type":1878,"value":2038},{"type":1873,"tag":2024,"props":4776,"children":4777},{"style":2041},[4778],{"type":1878,"value":4779}," VkPresentTimingsInfoEXT {\n",{"type":1873,"tag":2024,"props":4781,"children":4782},{"class":2026,"line":54},[4783],{"type":1873,"tag":2024,"props":4784,"children":4785},{"style":2041},[4786],{"type":1878,"value":4787}," VkStructureType sType;\n",{"type":1873,"tag":2024,"props":4789,"children":4790},{"class":2026,"line":58},[4791,4795,4799],{"type":1873,"tag":2024,"props":4792,"children":4793},{"style":2030},[4794],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":4796,"children":4797},{"style":2030},[4798],{"type":1878,"value":2879},{"type":1873,"tag":2024,"props":4800,"children":4801},{"style":2041},[4802],{"type":1878,"value":4803}," pNext;\n",{"type":1873,"tag":2024,"props":4805,"children":4806},{"class":2026,"line":62},[4807,4811],{"type":1873,"tag":2024,"props":4808,"children":4809},{"style":2030},[4810],{"type":1878,"value":2619},{"type":1873,"tag":2024,"props":4812,"children":4813},{"style":2041},[4814],{"type":1878,"value":4815}," swapchainCount;\n",{"type":1873,"tag":2024,"props":4817,"children":4818},{"class":2026,"line":66},[4819,4823,4828,4832],{"type":1873,"tag":2024,"props":4820,"children":4821},{"style":2030},[4822],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":4824,"children":4825},{"style":2041},[4826],{"type":1878,"value":4827}," VkPresentTimingInfoEXT",{"type":1873,"tag":2024,"props":4829,"children":4830},{"style":2030},[4831],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":4833,"children":4834},{"style":2041},[4835],{"type":1878,"value":4836}," pTimingInfos;\n",{"type":1873,"tag":2024,"props":4838,"children":4839},{"class":2026,"line":70},[4840],{"type":1873,"tag":2024,"props":4841,"children":4842},{"style":2041},[4843],{"type":1878,"value":4844},"} VkPresentTimingsInfoEXT;\n",{"type":1873,"tag":1874,"props":4846,"children":4847},{},[4848,4850,4855,4857,4862],{"type":1878,"value":4849},"For each swapchain referenced in ",{"type":1873,"tag":1931,"props":4851,"children":4853},{"className":4852},[],[4854],{"type":1878,"value":4450},{"type":1878,"value":4856},", a ",{"type":1873,"tag":1931,"props":4858,"children":4860},{"className":4859},[],[4861],{"type":1878,"value":4494},{"type":1878,"value":4863}," is specified:",{"type":1873,"tag":1918,"props":4865,"children":4866},{},[4867,4877,4895,4906],{"type":1873,"tag":1922,"props":4868,"children":4869},{},[4870,4875],{"type":1873,"tag":1931,"props":4871,"children":4873},{"className":4872},[],[4874],{"type":1878,"value":4461},{"type":1878,"value":4876}," is the absolute or relative time used to schedule this presentation request.",{"type":1873,"tag":1922,"props":4878,"children":4879},{},[4880,4885,4887,4893],{"type":1873,"tag":1931,"props":4881,"children":4883},{"className":4882},[],[4884],{"type":1878,"value":3633},{"type":1878,"value":4886}," is the id of the time domain used to specify ",{"type":1873,"tag":1931,"props":4888,"children":4890},{"className":4889},[],[4891],{"type":1878,"value":4892},"time",{"type":1878,"value":4894}," and to query timing results.",{"type":1873,"tag":1922,"props":4896,"children":4897},{},[4898,4904],{"type":1873,"tag":1931,"props":4899,"children":4901},{"className":4900},[],[4902],{"type":1878,"value":4903},"presentStageQueries",{"type":1878,"value":4905}," is a bitmask specifying all the present stages the application would like timings for.",{"type":1873,"tag":1922,"props":4907,"children":4908},{},[4909,4915],{"type":1873,"tag":1931,"props":4910,"children":4912},{"className":4911},[],[4913],{"type":1878,"value":4914},"targetTimeDomainPresentStage",{"type":1878,"value":4916}," is used to associate a stage-local time domain with a specific present stage.",{"type":1873,"tag":1874,"props":4918,"children":4919},{},[4920,4921,4926,4928,4933,4935,4941],{"type":1878,"value":2102},{"type":1873,"tag":1931,"props":4922,"children":4924},{"className":4923},[],[4925],{"type":1878,"value":4903},{"type":1878,"value":4927}," is not zero, and the swapchain’s internal timing queue is full, calling ",{"type":1873,"tag":1931,"props":4929,"children":4931},{"className":4930},[],[4932],{"type":1878,"value":2136},{"type":1878,"value":4934}," yields a new error: ",{"type":1873,"tag":1931,"props":4936,"children":4938},{"className":4937},[],[4939],{"type":1878,"value":4940},"VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT",{"type":1878,"value":2155},{"type":1873,"tag":1874,"props":4943,"children":4944},{},[4945,4947,4953,4954,4960,4961,4966],{"type":1878,"value":4946},"The semantics of specifying a target present time only apply to FIFO present modes (",{"type":1873,"tag":1931,"props":4948,"children":4950},{"className":4949},[],[4951],{"type":1878,"value":4952},"VK_PRESENT_MODE_FIFO_KHR",{"type":1878,"value":3022},{"type":1873,"tag":1931,"props":4955,"children":4957},{"className":4956},[],[4958],{"type":1878,"value":4959},"VK_PRESENT_MODE_FIFO_RELAXED_KHR",{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":4962,"children":4964},{"className":4963},[],[4965],{"type":1878,"value":4584},{"type":1878,"value":4967},"). When attempting to dequeue a presentation request from the FIFO queue, the presentation engine checks the current time against the target time.",{"type":1873,"tag":1874,"props":4969,"children":4970},{},[4971,4972,4978],{"type":1878,"value":2829},{"type":1873,"tag":1931,"props":4973,"children":4975},{"className":4974},[],[4976],{"type":1878,"value":4977},"VkPresentTimingInfoFlags",{"type":1878,"value":4979}," flags are defined as:",{"type":1873,"tag":2013,"props":4981,"children":4983},{"className":2015,"code":4982,"language":2017,"meta":2018,"style":2018},"typedef enum VkPresentTimingInfoFlagBitsEXT {\n VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,\n VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002\n} VkPresentTimingInfoFlagBitsEXT;\ntypedef VkFlags VkPresentTimingInfoFlagsEXT;\n",[4984],{"type":1873,"tag":1931,"props":4985,"children":4986},{"__ignoreMap":2018},[4987,5003,5027,5048,5056],{"type":1873,"tag":2024,"props":4988,"children":4989},{"class":2026,"line":10},[4990,4994,4998],{"type":1873,"tag":2024,"props":4991,"children":4992},{"style":2030},[4993],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":4995,"children":4996},{"style":2030},[4997],{"type":1878,"value":2293},{"type":1873,"tag":2024,"props":4999,"children":5000},{"style":2041},[5001],{"type":1878,"value":5002}," VkPresentTimingInfoFlagBitsEXT {\n",{"type":1873,"tag":2024,"props":5004,"children":5005},{"class":2026,"line":14},[5006,5011,5015,5019,5023],{"type":1873,"tag":2024,"props":5007,"children":5008},{"style":2041},[5009],{"type":1878,"value":5010}," VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT ",{"type":1873,"tag":2024,"props":5012,"children":5013},{"style":2030},[5014],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5016,"children":5017},{"style":2030},[5018],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":5020,"children":5021},{"style":2319},[5022],{"type":1878,"value":2322},{"type":1873,"tag":2024,"props":5024,"children":5025},{"style":2041},[5026],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":5028,"children":5029},{"class":2026,"line":18},[5030,5035,5039,5043],{"type":1873,"tag":2024,"props":5031,"children":5032},{"style":2041},[5033],{"type":1878,"value":5034}," VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT ",{"type":1873,"tag":2024,"props":5036,"children":5037},{"style":2030},[5038],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5040,"children":5041},{"style":2030},[5042],{"type":1878,"value":2316},{"type":1873,"tag":2024,"props":5044,"children":5045},{"style":2319},[5046],{"type":1878,"value":5047},"00000002\n",{"type":1873,"tag":2024,"props":5049,"children":5050},{"class":2026,"line":22},[5051],{"type":1873,"tag":2024,"props":5052,"children":5053},{"style":2041},[5054],{"type":1878,"value":5055},"} VkPresentTimingInfoFlagBitsEXT;\n",{"type":1873,"tag":2024,"props":5057,"children":5058},{"class":2026,"line":26},[5059,5063],{"type":1873,"tag":2024,"props":5060,"children":5061},{"style":2030},[5062],{"type":1878,"value":2033},{"type":1873,"tag":2024,"props":5064,"children":5065},{"style":2041},[5066],{"type":1878,"value":5067}," VkFlags VkPresentTimingInfoFlagsEXT;\n",{"type":1873,"tag":1874,"props":5069,"children":5070},{},[5071,5077,5079,5084,5086,5091],{"type":1873,"tag":1931,"props":5072,"children":5074},{"className":5073},[],[5075],{"type":1878,"value":5076},"VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT",{"type":1878,"value":5078}," specifies whether ",{"type":1873,"tag":1931,"props":5080,"children":5082},{"className":5081},[],[5083],{"type":1878,"value":4892},{"type":1878,"value":5085}," is to be interpreted as an absolute or a relative time value. If ",{"type":1873,"tag":1931,"props":5087,"children":5089},{"className":5088},[],[5090],{"type":1878,"value":4892},{"type":1878,"value":5092}," is interpreted as an absolute time, it specifies the earliest time in nanoseconds at which the image should be visible. Otherwise, if it is interpreted as a relative time, it specifies the minimum duration in nanoseconds the previously presented image should be visible.",{"type":1873,"tag":1874,"props":5094,"children":5095},{},[5096,5097,5103,5105,5110],{"type":1878,"value":2102},{"type":1873,"tag":1931,"props":5098,"children":5100},{"className":5099},[],[5101],{"type":1878,"value":5102},"VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT",{"type":1878,"value":5104}," is set, it indicates that the application would prefer the image to be made visible during the refresh cycle that is closest to the target present time, even if that refresh cycle starts earlier than the specified ",{"type":1873,"tag":1931,"props":5106,"children":5108},{"className":5107},[],[5109],{"type":1878,"value":4892},{"type":1878,"value":2155},{"type":1873,"tag":4621,"props":5112,"children":5113},{},[5114],{"type":1873,"tag":1874,"props":5115,"children":5116},{},[5117,5119,5124],{"type":1878,"value":5118},"More specifically, the implementation attempts to align the ",{"type":1873,"tag":1931,"props":5120,"children":5122},{"className":5121},[],[5123],{"type":1878,"value":2482},{"type":1878,"value":5125}," present stage with the requested target present time.",{"type":1873,"tag":4621,"props":5127,"children":5128},{},[5129],{"type":1873,"tag":1874,"props":5130,"children":5131},{},[5132,5134,5139,5141,5147,5149,5154,5156,5161],{"type":1878,"value":5133},"To maintain a constant image present duration (IPD), applications should use timing information collected via ",{"type":1873,"tag":1931,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":1878,"value":2660},{"type":1878,"value":5140}," to determine the target time of each present. If the presentation engine is operating with a fixed refresh rate, the application’s IPD should be a multiple of ",{"type":1873,"tag":1931,"props":5142,"children":5144},{"className":5143},[],[5145],{"type":1878,"value":5146},"VkSwapchainTimingPropertiesEXT::refreshInterval",{"type":1878,"value":5148},". That is, the quanta for changing the IPD is ",{"type":1873,"tag":1931,"props":5150,"children":5152},{"className":5151},[],[5153],{"type":1878,"value":2940},{"type":1878,"value":5155},". For example, if ",{"type":1873,"tag":1931,"props":5157,"children":5159},{"className":5158},[],[5160],{"type":1878,"value":2929},{"type":1878,"value":5162}," is 16.67ms, the IPD can be 16.67ms, 33.33ms, 50.0ms, etc.",{"type":1873,"tag":1880,"props":5164,"children":5166},{"id":5165},"_examples",[5167],{"type":1878,"value":5168},"Examples",{"type":1873,"tag":1997,"props":5170,"children":5172},{"id":5171},"_enabling_present_timing_for_a_swapchain_2",[5173],{"type":1878,"value":2526},{"type":1873,"tag":2013,"props":5175,"children":5177},{"className":2015,"code":5176,"language":2017,"meta":2018,"style":2018}," // Query device features\n VkPhysicalDevicePresentTimingFeaturesEXT deviceFeaturesPresentTiming = {\n .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT\n };\n\n VkPhysicalDeviceFeatures2 features2 = {\n .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,\n .pNext = &deviceFeaturesPresentTiming\n };\n\n vkGetPhysicalDeviceFeatures2(physicalDevice, &features2);\n\n // Create device\n // (...)\n\n // Create swapchain\n VkSwapchainCreateInfoKHR swapchainCreateInfo = {\n .sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,\n .pNext = NULL,\n .flags = VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT\n // (...)\n };\n\n result = vkCreateSwapchainKHR(device, &swapchainCreateInfo, NULL, &swapchain);\n\n // Query timing properties and time domains\n // Note: On some systems, this may only be available after some\n // presentation requests have been processed.\n VkSwapchainTimingPropertiesEXT swapchainTimingProperties = {\n .sType = VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT,\n .pNext = NULL\n };\n\n uint64_t currentTimingPropertiesCounter = 0;\n result = vkGetSwapchainTimingPropertiesEXT(device, swapchain, &swapchainTimingProperties, ¤tTimingPropertiesCounter);\n\n uint64_t currentTimeDomainsCounter = 0;\n VkSwapchainTimeDomainPropertiesEXT timeDomains = {\n .sType = VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT,\n .pNext = NULL,\n .timeDomainCount = 0,\n .pTimeDomains = NULL,\n .pTimeDomainIds = NULL\n };\n\n result = vkGetSwapchainTimeDomainPropertiesEXT(device, swapchain, &timeDomains, NULL);\n timeDomains.pTimeDomains = (VkTimeDomainKHR *) malloc(timeDomains.timeDomainCount * sizeof(VkTimeDomainKHR));\n timeDomains.pTimeDomainIds = (uint64_t *) malloc(timeDomains.timeDomainCount * sizeof(uint64_t));\n result = vkGetSwapchainTimeDomainPropertiesEXT(device, swapchain, &timeDomains, ¤tTimeDomainsCounter);\n\n // Find the ID of the current VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT time domain\n uint64_t swapchainLocalTimeDomainId = FindTimeDomain(&timeDomains, VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT);\n\n // Allocate internal queue to collect present timing results\n const uint32_t maxTimingCount = GetMaxTimingCount(); // Default to sane value, e.g. swapchainImageCount * 2\n result = vkSetSwapchainPresentTimingQueueSizeEXT(device, swapchain, maxTimingCount);\n\n // (Start presenting...)\n",[5178],{"type":1873,"tag":1931,"props":5179,"children":5180},{"__ignoreMap":2018},[5181,5189,5206,5223,5231,5238,5254,5270,5292,5299,5306,5333,5340,5348,5356,5363,5371,5387,5403,5423,5440,5448,5455,5462,5517,5524,5532,5540,5548,5564,5580,5596,5603,5610,5636,5683,5690,5714,5730,5746,5765,5785,5805,5821,5828,5835,5876,5926,5986,6030,6037,6045,6083,6090,6098,6134,6155,6162],{"type":1873,"tag":2024,"props":5182,"children":5183},{"class":2026,"line":10},[5184],{"type":1873,"tag":2024,"props":5185,"children":5186},{"style":3406},[5187],{"type":1878,"value":5188}," // Query device features\n",{"type":1873,"tag":2024,"props":5190,"children":5191},{"class":2026,"line":14},[5192,5197,5201],{"type":1873,"tag":2024,"props":5193,"children":5194},{"style":2041},[5195],{"type":1878,"value":5196}," VkPhysicalDevicePresentTimingFeaturesEXT deviceFeaturesPresentTiming ",{"type":1873,"tag":2024,"props":5198,"children":5199},{"style":2030},[5200],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5202,"children":5203},{"style":2041},[5204],{"type":1878,"value":5205}," {\n",{"type":1873,"tag":2024,"props":5207,"children":5208},{"class":2026,"line":18},[5209,5214,5218],{"type":1873,"tag":2024,"props":5210,"children":5211},{"style":2041},[5212],{"type":1878,"value":5213}," .sType ",{"type":1873,"tag":2024,"props":5215,"children":5216},{"style":2030},[5217],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5219,"children":5220},{"style":2041},[5221],{"type":1878,"value":5222}," VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT\n",{"type":1873,"tag":2024,"props":5224,"children":5225},{"class":2026,"line":22},[5226],{"type":1873,"tag":2024,"props":5227,"children":5228},{"style":2041},[5229],{"type":1878,"value":5230}," };\n",{"type":1873,"tag":2024,"props":5232,"children":5233},{"class":2026,"line":26},[5234],{"type":1873,"tag":2024,"props":5235,"children":5236},{"emptyLinePlaceholder":232},[5237],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5239,"children":5240},{"class":2026,"line":30},[5241,5246,5250],{"type":1873,"tag":2024,"props":5242,"children":5243},{"style":2041},[5244],{"type":1878,"value":5245}," VkPhysicalDeviceFeatures2 features2 ",{"type":1873,"tag":2024,"props":5247,"children":5248},{"style":2030},[5249],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5251,"children":5252},{"style":2041},[5253],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":5255,"children":5256},{"class":2026,"line":34},[5257,5261,5265],{"type":1873,"tag":2024,"props":5258,"children":5259},{"style":2041},[5260],{"type":1878,"value":5213},{"type":1873,"tag":2024,"props":5262,"children":5263},{"style":2030},[5264],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5266,"children":5267},{"style":2041},[5268],{"type":1878,"value":5269}," VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,\n",{"type":1873,"tag":2024,"props":5271,"children":5272},{"class":2026,"line":38},[5273,5278,5282,5287],{"type":1873,"tag":2024,"props":5274,"children":5275},{"style":2041},[5276],{"type":1878,"value":5277}," .pNext ",{"type":1873,"tag":2024,"props":5279,"children":5280},{"style":2030},[5281],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5283,"children":5284},{"style":2030},[5285],{"type":1878,"value":5286}," &",{"type":1873,"tag":2024,"props":5288,"children":5289},{"style":2041},[5290],{"type":1878,"value":5291},"deviceFeaturesPresentTiming\n",{"type":1873,"tag":2024,"props":5293,"children":5294},{"class":2026,"line":42},[5295],{"type":1873,"tag":2024,"props":5296,"children":5297},{"style":2041},[5298],{"type":1878,"value":5230},{"type":1873,"tag":2024,"props":5300,"children":5301},{"class":2026,"line":46},[5302],{"type":1873,"tag":2024,"props":5303,"children":5304},{"emptyLinePlaceholder":232},[5305],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5307,"children":5308},{"class":2026,"line":50},[5309,5314,5319,5324,5329],{"type":1873,"tag":2024,"props":5310,"children":5311},{"style":2569},[5312],{"type":1878,"value":5313}," vkGetPhysicalDeviceFeatures2",{"type":1873,"tag":2024,"props":5315,"children":5316},{"style":2041},[5317],{"type":1878,"value":5318},"(physicalDevice, ",{"type":1873,"tag":2024,"props":5320,"children":5321},{"style":2030},[5322],{"type":1878,"value":5323},"&",{"type":1873,"tag":2024,"props":5325,"children":5326},{"style":2588},[5327],{"type":1878,"value":5328},"features2",{"type":1873,"tag":2024,"props":5330,"children":5331},{"style":2041},[5332],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":5334,"children":5335},{"class":2026,"line":54},[5336],{"type":1873,"tag":2024,"props":5337,"children":5338},{"emptyLinePlaceholder":232},[5339],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5341,"children":5342},{"class":2026,"line":58},[5343],{"type":1873,"tag":2024,"props":5344,"children":5345},{"style":3406},[5346],{"type":1878,"value":5347}," // Create device\n",{"type":1873,"tag":2024,"props":5349,"children":5350},{"class":2026,"line":62},[5351],{"type":1873,"tag":2024,"props":5352,"children":5353},{"style":3406},[5354],{"type":1878,"value":5355}," // (...)\n",{"type":1873,"tag":2024,"props":5357,"children":5358},{"class":2026,"line":66},[5359],{"type":1873,"tag":2024,"props":5360,"children":5361},{"emptyLinePlaceholder":232},[5362],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5364,"children":5365},{"class":2026,"line":70},[5366],{"type":1873,"tag":2024,"props":5367,"children":5368},{"style":3406},[5369],{"type":1878,"value":5370}," // Create swapchain\n",{"type":1873,"tag":2024,"props":5372,"children":5373},{"class":2026,"line":74},[5374,5379,5383],{"type":1873,"tag":2024,"props":5375,"children":5376},{"style":2041},[5377],{"type":1878,"value":5378}," VkSwapchainCreateInfoKHR swapchainCreateInfo ",{"type":1873,"tag":2024,"props":5380,"children":5381},{"style":2030},[5382],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5384,"children":5385},{"style":2041},[5386],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":5388,"children":5389},{"class":2026,"line":78},[5390,5394,5398],{"type":1873,"tag":2024,"props":5391,"children":5392},{"style":2041},[5393],{"type":1878,"value":5213},{"type":1873,"tag":2024,"props":5395,"children":5396},{"style":2030},[5397],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5399,"children":5400},{"style":2041},[5401],{"type":1878,"value":5402}," VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,\n",{"type":1873,"tag":2024,"props":5404,"children":5405},{"class":2026,"line":82},[5406,5410,5414,5419],{"type":1873,"tag":2024,"props":5407,"children":5408},{"style":2041},[5409],{"type":1878,"value":5277},{"type":1873,"tag":2024,"props":5411,"children":5412},{"style":2030},[5413],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5415,"children":5416},{"style":2319},[5417],{"type":1878,"value":5418}," NULL",{"type":1873,"tag":2024,"props":5420,"children":5421},{"style":2041},[5422],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":5424,"children":5425},{"class":2026,"line":86},[5426,5431,5435],{"type":1873,"tag":2024,"props":5427,"children":5428},{"style":2041},[5429],{"type":1878,"value":5430}," .flags ",{"type":1873,"tag":2024,"props":5432,"children":5433},{"style":2030},[5434],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5436,"children":5437},{"style":2041},[5438],{"type":1878,"value":5439}," VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT\n",{"type":1873,"tag":2024,"props":5441,"children":5442},{"class":2026,"line":90},[5443],{"type":1873,"tag":2024,"props":5444,"children":5445},{"style":3406},[5446],{"type":1878,"value":5447}," // (...)\n",{"type":1873,"tag":2024,"props":5449,"children":5450},{"class":2026,"line":94},[5451],{"type":1873,"tag":2024,"props":5452,"children":5453},{"style":2041},[5454],{"type":1878,"value":5230},{"type":1873,"tag":2024,"props":5456,"children":5457},{"class":2026,"line":98},[5458],{"type":1873,"tag":2024,"props":5459,"children":5460},{"emptyLinePlaceholder":232},[5461],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5463,"children":5464},{"class":2026,"line":102},[5465,5470,5474,5479,5484,5488,5493,5497,5501,5505,5509,5513],{"type":1873,"tag":2024,"props":5466,"children":5467},{"style":2041},[5468],{"type":1878,"value":5469}," result ",{"type":1873,"tag":2024,"props":5471,"children":5472},{"style":2030},[5473],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5475,"children":5476},{"style":2569},[5477],{"type":1878,"value":5478}," vkCreateSwapchainKHR",{"type":1873,"tag":2024,"props":5480,"children":5481},{"style":2041},[5482],{"type":1878,"value":5483},"(device, ",{"type":1873,"tag":2024,"props":5485,"children":5486},{"style":2030},[5487],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":5489,"children":5490},{"style":2588},[5491],{"type":1878,"value":5492},"swapchainCreateInfo",{"type":1873,"tag":2024,"props":5494,"children":5495},{"style":2041},[5496],{"type":1878,"value":3022},{"type":1873,"tag":2024,"props":5498,"children":5499},{"style":2319},[5500],{"type":1878,"value":3316},{"type":1873,"tag":2024,"props":5502,"children":5503},{"style":2041},[5504],{"type":1878,"value":3022},{"type":1873,"tag":2024,"props":5506,"children":5507},{"style":2030},[5508],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":5510,"children":5511},{"style":2588},[5512],{"type":1878,"value":2607},{"type":1873,"tag":2024,"props":5514,"children":5515},{"style":2041},[5516],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":5518,"children":5519},{"class":2026,"line":106},[5520],{"type":1873,"tag":2024,"props":5521,"children":5522},{"emptyLinePlaceholder":232},[5523],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5525,"children":5526},{"class":2026,"line":110},[5527],{"type":1873,"tag":2024,"props":5528,"children":5529},{"style":3406},[5530],{"type":1878,"value":5531}," // Query timing properties and time domains\n",{"type":1873,"tag":2024,"props":5533,"children":5534},{"class":2026,"line":114},[5535],{"type":1873,"tag":2024,"props":5536,"children":5537},{"style":3406},[5538],{"type":1878,"value":5539}," // Note: On some systems, this may only be available after some\n",{"type":1873,"tag":2024,"props":5541,"children":5542},{"class":2026,"line":118},[5543],{"type":1873,"tag":2024,"props":5544,"children":5545},{"style":3406},[5546],{"type":1878,"value":5547}," // presentation requests have been processed.\n",{"type":1873,"tag":2024,"props":5549,"children":5550},{"class":2026,"line":122},[5551,5556,5560],{"type":1873,"tag":2024,"props":5552,"children":5553},{"style":2041},[5554],{"type":1878,"value":5555}," VkSwapchainTimingPropertiesEXT swapchainTimingProperties ",{"type":1873,"tag":2024,"props":5557,"children":5558},{"style":2030},[5559],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5561,"children":5562},{"style":2041},[5563],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":5565,"children":5566},{"class":2026,"line":126},[5567,5571,5575],{"type":1873,"tag":2024,"props":5568,"children":5569},{"style":2041},[5570],{"type":1878,"value":5213},{"type":1873,"tag":2024,"props":5572,"children":5573},{"style":2030},[5574],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5576,"children":5577},{"style":2041},[5578],{"type":1878,"value":5579}," VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT,\n",{"type":1873,"tag":2024,"props":5581,"children":5582},{"class":2026,"line":130},[5583,5587,5591],{"type":1873,"tag":2024,"props":5584,"children":5585},{"style":2041},[5586],{"type":1878,"value":5277},{"type":1873,"tag":2024,"props":5588,"children":5589},{"style":2030},[5590],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5592,"children":5593},{"style":2319},[5594],{"type":1878,"value":5595}," NULL\n",{"type":1873,"tag":2024,"props":5597,"children":5598},{"class":2026,"line":134},[5599],{"type":1873,"tag":2024,"props":5600,"children":5601},{"style":2041},[5602],{"type":1878,"value":5230},{"type":1873,"tag":2024,"props":5604,"children":5605},{"class":2026,"line":138},[5606],{"type":1873,"tag":2024,"props":5607,"children":5608},{"emptyLinePlaceholder":232},[5609],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5611,"children":5612},{"class":2026,"line":142},[5613,5617,5622,5626,5631],{"type":1873,"tag":2024,"props":5614,"children":5615},{"style":2030},[5616],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":5618,"children":5619},{"style":2041},[5620],{"type":1878,"value":5621}," currentTimingPropertiesCounter ",{"type":1873,"tag":2024,"props":5623,"children":5624},{"style":2030},[5625],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5627,"children":5628},{"style":2319},[5629],{"type":1878,"value":5630}," 0",{"type":1873,"tag":2024,"props":5632,"children":5633},{"style":2041},[5634],{"type":1878,"value":5635},";\n",{"type":1873,"tag":2024,"props":5637,"children":5638},{"class":2026,"line":146},[5639,5643,5647,5652,5657,5661,5666,5670,5674,5679],{"type":1873,"tag":2024,"props":5640,"children":5641},{"style":2041},[5642],{"type":1878,"value":5469},{"type":1873,"tag":2024,"props":5644,"children":5645},{"style":2030},[5646],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5648,"children":5649},{"style":2569},[5650],{"type":1878,"value":5651}," vkGetSwapchainTimingPropertiesEXT",{"type":1873,"tag":2024,"props":5653,"children":5654},{"style":2041},[5655],{"type":1878,"value":5656},"(device, swapchain, ",{"type":1873,"tag":2024,"props":5658,"children":5659},{"style":2030},[5660],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":5662,"children":5663},{"style":2588},[5664],{"type":1878,"value":5665},"swapchainTimingProperties",{"type":1873,"tag":2024,"props":5667,"children":5668},{"style":2041},[5669],{"type":1878,"value":3022},{"type":1873,"tag":2024,"props":5671,"children":5672},{"style":2030},[5673],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":5675,"children":5676},{"style":2588},[5677],{"type":1878,"value":5678},"currentTimingPropertiesCounter",{"type":1873,"tag":2024,"props":5680,"children":5681},{"style":2041},[5682],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":5684,"children":5685},{"class":2026,"line":150},[5686],{"type":1873,"tag":2024,"props":5687,"children":5688},{"emptyLinePlaceholder":232},[5689],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5691,"children":5692},{"class":2026,"line":154},[5693,5697,5702,5706,5710],{"type":1873,"tag":2024,"props":5694,"children":5695},{"style":2030},[5696],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":5698,"children":5699},{"style":2041},[5700],{"type":1878,"value":5701}," currentTimeDomainsCounter ",{"type":1873,"tag":2024,"props":5703,"children":5704},{"style":2030},[5705],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5707,"children":5708},{"style":2319},[5709],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":5711,"children":5712},{"style":2041},[5713],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":5715,"children":5716},{"class":2026,"line":158},[5717,5722,5726],{"type":1873,"tag":2024,"props":5718,"children":5719},{"style":2041},[5720],{"type":1878,"value":5721}," VkSwapchainTimeDomainPropertiesEXT timeDomains ",{"type":1873,"tag":2024,"props":5723,"children":5724},{"style":2030},[5725],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5727,"children":5728},{"style":2041},[5729],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":5731,"children":5732},{"class":2026,"line":162},[5733,5737,5741],{"type":1873,"tag":2024,"props":5734,"children":5735},{"style":2041},[5736],{"type":1878,"value":5213},{"type":1873,"tag":2024,"props":5738,"children":5739},{"style":2030},[5740],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5742,"children":5743},{"style":2041},[5744],{"type":1878,"value":5745}," VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT,\n",{"type":1873,"tag":2024,"props":5747,"children":5748},{"class":2026,"line":166},[5749,5753,5757,5761],{"type":1873,"tag":2024,"props":5750,"children":5751},{"style":2041},[5752],{"type":1878,"value":5277},{"type":1873,"tag":2024,"props":5754,"children":5755},{"style":2030},[5756],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5758,"children":5759},{"style":2319},[5760],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":5762,"children":5763},{"style":2041},[5764],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":5766,"children":5767},{"class":2026,"line":170},[5768,5773,5777,5781],{"type":1873,"tag":2024,"props":5769,"children":5770},{"style":2041},[5771],{"type":1878,"value":5772}," .timeDomainCount ",{"type":1873,"tag":2024,"props":5774,"children":5775},{"style":2030},[5776],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5778,"children":5779},{"style":2319},[5780],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":5782,"children":5783},{"style":2041},[5784],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":5786,"children":5787},{"class":2026,"line":174},[5788,5793,5797,5801],{"type":1873,"tag":2024,"props":5789,"children":5790},{"style":2041},[5791],{"type":1878,"value":5792}," .pTimeDomains ",{"type":1873,"tag":2024,"props":5794,"children":5795},{"style":2030},[5796],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5798,"children":5799},{"style":2319},[5800],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":5802,"children":5803},{"style":2041},[5804],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":5806,"children":5807},{"class":2026,"line":178},[5808,5813,5817],{"type":1873,"tag":2024,"props":5809,"children":5810},{"style":2041},[5811],{"type":1878,"value":5812}," .pTimeDomainIds ",{"type":1873,"tag":2024,"props":5814,"children":5815},{"style":2030},[5816],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5818,"children":5819},{"style":2319},[5820],{"type":1878,"value":5595},{"type":1873,"tag":2024,"props":5822,"children":5823},{"class":2026,"line":182},[5824],{"type":1873,"tag":2024,"props":5825,"children":5826},{"style":2041},[5827],{"type":1878,"value":5230},{"type":1873,"tag":2024,"props":5829,"children":5830},{"class":2026,"line":186},[5831],{"type":1873,"tag":2024,"props":5832,"children":5833},{"emptyLinePlaceholder":232},[5834],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":5836,"children":5837},{"class":2026,"line":190},[5838,5842,5846,5851,5855,5859,5864,5868,5872],{"type":1873,"tag":2024,"props":5839,"children":5840},{"style":2041},[5841],{"type":1878,"value":5469},{"type":1873,"tag":2024,"props":5843,"children":5844},{"style":2030},[5845],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5847,"children":5848},{"style":2569},[5849],{"type":1878,"value":5850}," vkGetSwapchainTimeDomainPropertiesEXT",{"type":1873,"tag":2024,"props":5852,"children":5853},{"style":2041},[5854],{"type":1878,"value":5656},{"type":1873,"tag":2024,"props":5856,"children":5857},{"style":2030},[5858],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":5860,"children":5861},{"style":2588},[5862],{"type":1878,"value":5863},"timeDomains",{"type":1873,"tag":2024,"props":5865,"children":5866},{"style":2041},[5867],{"type":1878,"value":3022},{"type":1873,"tag":2024,"props":5869,"children":5870},{"style":2319},[5871],{"type":1878,"value":3316},{"type":1873,"tag":2024,"props":5873,"children":5874},{"style":2041},[5875],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":5877,"children":5878},{"class":2026,"line":194},[5879,5884,5888,5893,5897,5902,5907,5912,5916,5921],{"type":1873,"tag":2024,"props":5880,"children":5881},{"style":2041},[5882],{"type":1878,"value":5883}," timeDomains.pTimeDomains ",{"type":1873,"tag":2024,"props":5885,"children":5886},{"style":2030},[5887],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5889,"children":5890},{"style":2041},[5891],{"type":1878,"value":5892}," (VkTimeDomainKHR ",{"type":1873,"tag":2024,"props":5894,"children":5895},{"style":2030},[5896],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":5898,"children":5899},{"style":2041},[5900],{"type":1878,"value":5901},") ",{"type":1873,"tag":2024,"props":5903,"children":5904},{"style":2569},[5905],{"type":1878,"value":5906},"malloc",{"type":1873,"tag":2024,"props":5908,"children":5909},{"style":2041},[5910],{"type":1878,"value":5911},"(timeDomains.timeDomainCount ",{"type":1873,"tag":2024,"props":5913,"children":5914},{"style":2030},[5915],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":5917,"children":5918},{"style":2030},[5919],{"type":1878,"value":5920}," sizeof",{"type":1873,"tag":2024,"props":5922,"children":5923},{"style":2041},[5924],{"type":1878,"value":5925},"(VkTimeDomainKHR));\n",{"type":1873,"tag":2024,"props":5927,"children":5928},{"class":2026,"line":198},[5929,5934,5938,5943,5947,5952,5956,5960,5964,5968,5972,5977,5981],{"type":1873,"tag":2024,"props":5930,"children":5931},{"style":2041},[5932],{"type":1878,"value":5933}," timeDomains.pTimeDomainIds ",{"type":1873,"tag":2024,"props":5935,"children":5936},{"style":2030},[5937],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5939,"children":5940},{"style":2041},[5941],{"type":1878,"value":5942}," (",{"type":1873,"tag":2024,"props":5944,"children":5945},{"style":2030},[5946],{"type":1878,"value":2799},{"type":1873,"tag":2024,"props":5948,"children":5949},{"style":2030},[5950],{"type":1878,"value":5951}," *",{"type":1873,"tag":2024,"props":5953,"children":5954},{"style":2041},[5955],{"type":1878,"value":5901},{"type":1873,"tag":2024,"props":5957,"children":5958},{"style":2569},[5959],{"type":1878,"value":5906},{"type":1873,"tag":2024,"props":5961,"children":5962},{"style":2041},[5963],{"type":1878,"value":5911},{"type":1873,"tag":2024,"props":5965,"children":5966},{"style":2030},[5967],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":5969,"children":5970},{"style":2030},[5971],{"type":1878,"value":5920},{"type":1873,"tag":2024,"props":5973,"children":5974},{"style":2041},[5975],{"type":1878,"value":5976},"(",{"type":1873,"tag":2024,"props":5978,"children":5979},{"style":2030},[5980],{"type":1878,"value":2799},{"type":1873,"tag":2024,"props":5982,"children":5983},{"style":2041},[5984],{"type":1878,"value":5985},"));\n",{"type":1873,"tag":2024,"props":5987,"children":5988},{"class":2026,"line":202},[5989,5993,5997,6001,6005,6009,6013,6017,6021,6026],{"type":1873,"tag":2024,"props":5990,"children":5991},{"style":2041},[5992],{"type":1878,"value":5469},{"type":1873,"tag":2024,"props":5994,"children":5995},{"style":2030},[5996],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":5998,"children":5999},{"style":2569},[6000],{"type":1878,"value":5850},{"type":1873,"tag":2024,"props":6002,"children":6003},{"style":2041},[6004],{"type":1878,"value":5656},{"type":1873,"tag":2024,"props":6006,"children":6007},{"style":2030},[6008],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":6010,"children":6011},{"style":2588},[6012],{"type":1878,"value":5863},{"type":1873,"tag":2024,"props":6014,"children":6015},{"style":2041},[6016],{"type":1878,"value":3022},{"type":1873,"tag":2024,"props":6018,"children":6019},{"style":2030},[6020],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":6022,"children":6023},{"style":2588},[6024],{"type":1878,"value":6025},"currentTimeDomainsCounter",{"type":1873,"tag":2024,"props":6027,"children":6028},{"style":2041},[6029],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":6031,"children":6032},{"class":2026,"line":206},[6033],{"type":1873,"tag":2024,"props":6034,"children":6035},{"emptyLinePlaceholder":232},[6036],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6038,"children":6039},{"class":2026,"line":210},[6040],{"type":1873,"tag":2024,"props":6041,"children":6042},{"style":3406},[6043],{"type":1878,"value":6044}," // Find the ID of the current VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT time domain\n",{"type":1873,"tag":2024,"props":6046,"children":6047},{"class":2026,"line":214},[6048,6052,6057,6061,6066,6070,6074,6078],{"type":1873,"tag":2024,"props":6049,"children":6050},{"style":2030},[6051],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":6053,"children":6054},{"style":2041},[6055],{"type":1878,"value":6056}," swapchainLocalTimeDomainId ",{"type":1873,"tag":2024,"props":6058,"children":6059},{"style":2030},[6060],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6062,"children":6063},{"style":2569},[6064],{"type":1878,"value":6065}," FindTimeDomain",{"type":1873,"tag":2024,"props":6067,"children":6068},{"style":2041},[6069],{"type":1878,"value":5976},{"type":1873,"tag":2024,"props":6071,"children":6072},{"style":2030},[6073],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":6075,"children":6076},{"style":2588},[6077],{"type":1878,"value":5863},{"type":1873,"tag":2024,"props":6079,"children":6080},{"style":2041},[6081],{"type":1878,"value":6082},", VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT);\n",{"type":1873,"tag":2024,"props":6084,"children":6085},{"class":2026,"line":218},[6086],{"type":1873,"tag":2024,"props":6087,"children":6088},{"emptyLinePlaceholder":232},[6089],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6091,"children":6092},{"class":2026,"line":222},[6093],{"type":1873,"tag":2024,"props":6094,"children":6095},{"style":3406},[6096],{"type":1878,"value":6097}," // Allocate internal queue to collect present timing results\n",{"type":1873,"tag":2024,"props":6099,"children":6100},{"class":2026,"line":226},[6101,6105,6110,6115,6119,6124,6129],{"type":1873,"tag":2024,"props":6102,"children":6103},{"style":2030},[6104],{"type":1878,"value":2874},{"type":1873,"tag":2024,"props":6106,"children":6107},{"style":2030},[6108],{"type":1878,"value":6109}," uint32_t",{"type":1873,"tag":2024,"props":6111,"children":6112},{"style":2041},[6113],{"type":1878,"value":6114}," maxTimingCount ",{"type":1873,"tag":2024,"props":6116,"children":6117},{"style":2030},[6118],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6120,"children":6121},{"style":2569},[6122],{"type":1878,"value":6123}," GetMaxTimingCount",{"type":1873,"tag":2024,"props":6125,"children":6126},{"style":2041},[6127],{"type":1878,"value":6128},"();",{"type":1873,"tag":2024,"props":6130,"children":6131},{"style":3406},[6132],{"type":1878,"value":6133}," // Default to sane value, e.g. swapchainImageCount * 2\n",{"type":1873,"tag":2024,"props":6135,"children":6136},{"class":2026,"line":1622},[6137,6141,6145,6150],{"type":1873,"tag":2024,"props":6138,"children":6139},{"style":2041},[6140],{"type":1878,"value":5469},{"type":1873,"tag":2024,"props":6142,"children":6143},{"style":2030},[6144],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6146,"children":6147},{"style":2569},[6148],{"type":1878,"value":6149}," vkSetSwapchainPresentTimingQueueSizeEXT",{"type":1873,"tag":2024,"props":6151,"children":6152},{"style":2041},[6153],{"type":1878,"value":6154},"(device, swapchain, maxTimingCount);\n",{"type":1873,"tag":2024,"props":6156,"children":6157},{"class":2026,"line":1618},[6158],{"type":1873,"tag":2024,"props":6159,"children":6160},{"emptyLinePlaceholder":232},[6161],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6163,"children":6164},{"class":2026,"line":1629},[6165],{"type":1873,"tag":2024,"props":6166,"children":6167},{"style":3406},[6168],{"type":1878,"value":6169}," // (Start presenting...)\n",{"type":1873,"tag":1997,"props":6171,"children":6173},{"id":6172},"_query_presentation_timing_results",[6174],{"type":1878,"value":6175},"Query presentation timing results",{"type":1873,"tag":2013,"props":6177,"children":6179},{"className":2015,"code":6178,"language":2017,"meta":2018,"style":2018}," // See previous examples for how to get the timing properties and time domain IDs\n uint64_t currentTimingPropertiesCounter = GetCurrentTimingPropertiesCounter(...);\n uint64_t currentTimeDomainsCounter = GetCurrentTimeDomainsCounter(...);\n uint64_t timeDomainId = GetDesiredTimeDomain(...);\n VkPresentStageFlagsEXT presentStageQueries = GetDesiredPresentStageQueries(...);\n uint32_t pendingPresentResults = 0;\n\n VkPastPresentationTimingEXT *timings = (VkPastPresentationTimingEXT *) malloc(maxTimingCount * sizeof(VkPastPresentationTimingEXT));\n VkPresentStageTimeEXT *stageTimes = (VkPresentStageTimeEXT *) malloc(maxStageCount * maxTimingCount * sizeof(VkPresentStageTimeEXT));\n\n for (uint32_t i = 0; i \u003C maxTimingCount; ++i) {\n timings[i].sType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT;\n timings[i].pNext = NULL;\n timings[i].pPresentStages = stageTimes + i * maxStageCount;\n }\n\n while (presenting) {\n // Render & Present\n // (...)\n VkPresentTimingInfoEXT timingInfo = {\n .sType = VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT,\n .pNext = NULL,\n .flags = 0,\n .targetTime = 0,\n .timeDomainId = timeDomainId,\n .presentStageQueries = presentStageQueries\n };\n\n VkPresentTimingsInfoEXT presentTimingsInfo = {\n .sType = VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT,\n .pNext = NULL,\n .swapchainCount = 1,\n .pTimingInfos = &timingInfo\n };\n\n presentInfoTail.pNext = &presentTimingsInfo;\n result = vkQueuePresentKHR(...);\n\n if (result == VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT) {\n // We are presenting faster than results are coming in. We can either\n // wait to drain the results queue, grow the results queue, or\n // present again without asking for present timing data.\n // (...)\n }\n\n if (result != VK_SUCCESS) {\n // Handle vkQueuePresentKHR other non-success return values\n // (...)\n }\n\n // Track the number of pending present results, each present taking one slot in the internal queue\n pendingPresentResults++;\n\n VkPastPresentationTimingInfoEXT pastTimingInfo = {\n .sType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT,\n .pNext = NULL,\n .flags = 0,\n .swapchain = swapchain\n };\n\n VkPastPresentationTimingPropertiesEXT pastTimingProperties = {\n .sType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT,\n .pNext = NULL,\n .timingPropertiesCounter = 0,\n .timeDomainsCounter = 0,\n .presentationTimingCount = maxTimingCount,\n .pPresentationTimings = timings\n };\n\n result = vkGetPastPresentationTimingEXT(device, &pastTimingInfo, &pastTimingProperties);\n\n if (result != VK_SUCCESS) {\n // Handle error\n // (...)\n }\n\n if (pastTimingProperties.timingPropertiesCounter != currentTimingPropertiesCounter) {\n currentTimingPropertiesCounter = pastTimingProperties.timingPropertiesCounter;\n // Update swapchain timing properties\n // (...)\n }\n\n if (pastTimingProperties.timeDomainsCounter != currentTimeDomainsCounter) {\n currentTimeDomainsCounter = pastTimingProperties.timeDomainsCounter;\n // Update time domains\n // (...)\n }\n\n pendingPresentResults -= pastTimingProperties.presentationTimingCount;\n\n // Process timing results\n }\n",[6180],{"type":1873,"tag":1931,"props":6181,"children":6182},{"__ignoreMap":2018},[6183,6191,6216,6240,6265,6286,6310,6317,6373,6437,6444,6499,6521,6545,6584,6592,6599,6612,6620,6627,6643,6660,6680,6700,6720,6737,6754,6762,6769,6785,6801,6820,6841,6862,6869,6876,6897,6918,6925,6948,6956,6964,6972,6980,6988,6995,7016,7024,7031,7038,7045,7053,7069,7076,7092,7108,7127,7146,7163,7170,7177,7193,7209,7228,7248,7268,7285,7302,7309,7316,7354,7361,7380,7388,7395,7402,7409,7430,7447,7455,7462,7469,7476,7497,7514,7522,7529,7537,7544,7562,7569,7577],{"type":1873,"tag":2024,"props":6184,"children":6185},{"class":2026,"line":10},[6186],{"type":1873,"tag":2024,"props":6187,"children":6188},{"style":3406},[6189],{"type":1878,"value":6190}," // See previous examples for how to get the timing properties and time domain IDs\n",{"type":1873,"tag":2024,"props":6192,"children":6193},{"class":2026,"line":14},[6194,6198,6202,6206,6211],{"type":1873,"tag":2024,"props":6195,"children":6196},{"style":2030},[6197],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":6199,"children":6200},{"style":2041},[6201],{"type":1878,"value":5621},{"type":1873,"tag":2024,"props":6203,"children":6204},{"style":2030},[6205],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6207,"children":6208},{"style":2569},[6209],{"type":1878,"value":6210}," GetCurrentTimingPropertiesCounter",{"type":1873,"tag":2024,"props":6212,"children":6213},{"style":2041},[6214],{"type":1878,"value":6215},"(...);\n",{"type":1873,"tag":2024,"props":6217,"children":6218},{"class":2026,"line":18},[6219,6223,6227,6231,6236],{"type":1873,"tag":2024,"props":6220,"children":6221},{"style":2030},[6222],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":6224,"children":6225},{"style":2041},[6226],{"type":1878,"value":5701},{"type":1873,"tag":2024,"props":6228,"children":6229},{"style":2030},[6230],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6232,"children":6233},{"style":2569},[6234],{"type":1878,"value":6235}," GetCurrentTimeDomainsCounter",{"type":1873,"tag":2024,"props":6237,"children":6238},{"style":2041},[6239],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":6241,"children":6242},{"class":2026,"line":22},[6243,6247,6252,6256,6261],{"type":1873,"tag":2024,"props":6244,"children":6245},{"style":2030},[6246],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":6248,"children":6249},{"style":2041},[6250],{"type":1878,"value":6251}," timeDomainId ",{"type":1873,"tag":2024,"props":6253,"children":6254},{"style":2030},[6255],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6257,"children":6258},{"style":2569},[6259],{"type":1878,"value":6260}," GetDesiredTimeDomain",{"type":1873,"tag":2024,"props":6262,"children":6263},{"style":2041},[6264],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":6266,"children":6267},{"class":2026,"line":26},[6268,6273,6277,6282],{"type":1873,"tag":2024,"props":6269,"children":6270},{"style":2041},[6271],{"type":1878,"value":6272}," VkPresentStageFlagsEXT presentStageQueries ",{"type":1873,"tag":2024,"props":6274,"children":6275},{"style":2030},[6276],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6278,"children":6279},{"style":2569},[6280],{"type":1878,"value":6281}," GetDesiredPresentStageQueries",{"type":1873,"tag":2024,"props":6283,"children":6284},{"style":2041},[6285],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":6287,"children":6288},{"class":2026,"line":30},[6289,6293,6298,6302,6306],{"type":1873,"tag":2024,"props":6290,"children":6291},{"style":2030},[6292],{"type":1878,"value":2619},{"type":1873,"tag":2024,"props":6294,"children":6295},{"style":2041},[6296],{"type":1878,"value":6297}," pendingPresentResults ",{"type":1873,"tag":2024,"props":6299,"children":6300},{"style":2030},[6301],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6303,"children":6304},{"style":2319},[6305],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":6307,"children":6308},{"style":2041},[6309],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":6311,"children":6312},{"class":2026,"line":34},[6313],{"type":1873,"tag":2024,"props":6314,"children":6315},{"emptyLinePlaceholder":232},[6316],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6318,"children":6319},{"class":2026,"line":38},[6320,6325,6329,6334,6338,6343,6347,6351,6355,6360,6364,6368],{"type":1873,"tag":2024,"props":6321,"children":6322},{"style":2041},[6323],{"type":1878,"value":6324}," VkPastPresentationTimingEXT ",{"type":1873,"tag":2024,"props":6326,"children":6327},{"style":2030},[6328],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6330,"children":6331},{"style":2041},[6332],{"type":1878,"value":6333},"timings ",{"type":1873,"tag":2024,"props":6335,"children":6336},{"style":2030},[6337],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6339,"children":6340},{"style":2041},[6341],{"type":1878,"value":6342}," (VkPastPresentationTimingEXT ",{"type":1873,"tag":2024,"props":6344,"children":6345},{"style":2030},[6346],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6348,"children":6349},{"style":2041},[6350],{"type":1878,"value":5901},{"type":1873,"tag":2024,"props":6352,"children":6353},{"style":2569},[6354],{"type":1878,"value":5906},{"type":1873,"tag":2024,"props":6356,"children":6357},{"style":2041},[6358],{"type":1878,"value":6359},"(maxTimingCount ",{"type":1873,"tag":2024,"props":6361,"children":6362},{"style":2030},[6363],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6365,"children":6366},{"style":2030},[6367],{"type":1878,"value":5920},{"type":1873,"tag":2024,"props":6369,"children":6370},{"style":2041},[6371],{"type":1878,"value":6372},"(VkPastPresentationTimingEXT));\n",{"type":1873,"tag":2024,"props":6374,"children":6375},{"class":2026,"line":42},[6376,6381,6385,6390,6394,6399,6403,6407,6411,6416,6420,6424,6428,6432],{"type":1873,"tag":2024,"props":6377,"children":6378},{"style":2041},[6379],{"type":1878,"value":6380}," VkPresentStageTimeEXT ",{"type":1873,"tag":2024,"props":6382,"children":6383},{"style":2030},[6384],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6386,"children":6387},{"style":2041},[6388],{"type":1878,"value":6389},"stageTimes ",{"type":1873,"tag":2024,"props":6391,"children":6392},{"style":2030},[6393],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6395,"children":6396},{"style":2041},[6397],{"type":1878,"value":6398}," (VkPresentStageTimeEXT ",{"type":1873,"tag":2024,"props":6400,"children":6401},{"style":2030},[6402],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6404,"children":6405},{"style":2041},[6406],{"type":1878,"value":5901},{"type":1873,"tag":2024,"props":6408,"children":6409},{"style":2569},[6410],{"type":1878,"value":5906},{"type":1873,"tag":2024,"props":6412,"children":6413},{"style":2041},[6414],{"type":1878,"value":6415},"(maxStageCount ",{"type":1873,"tag":2024,"props":6417,"children":6418},{"style":2030},[6419],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6421,"children":6422},{"style":2041},[6423],{"type":1878,"value":6114},{"type":1873,"tag":2024,"props":6425,"children":6426},{"style":2030},[6427],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6429,"children":6430},{"style":2030},[6431],{"type":1878,"value":5920},{"type":1873,"tag":2024,"props":6433,"children":6434},{"style":2041},[6435],{"type":1878,"value":6436},"(VkPresentStageTimeEXT));\n",{"type":1873,"tag":2024,"props":6438,"children":6439},{"class":2026,"line":46},[6440],{"type":1873,"tag":2024,"props":6441,"children":6442},{"emptyLinePlaceholder":232},[6443],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6445,"children":6446},{"class":2026,"line":50},[6447,6452,6456,6461,6466,6470,6474,6479,6484,6489,6494],{"type":1873,"tag":2024,"props":6448,"children":6449},{"style":2030},[6450],{"type":1878,"value":6451}," for",{"type":1873,"tag":2024,"props":6453,"children":6454},{"style":2041},[6455],{"type":1878,"value":5942},{"type":1873,"tag":2024,"props":6457,"children":6458},{"style":2030},[6459],{"type":1878,"value":6460},"uint32_t",{"type":1873,"tag":2024,"props":6462,"children":6463},{"style":2041},[6464],{"type":1878,"value":6465}," i ",{"type":1873,"tag":2024,"props":6467,"children":6468},{"style":2030},[6469],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6471,"children":6472},{"style":2319},[6473],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":6475,"children":6476},{"style":2041},[6477],{"type":1878,"value":6478},"; i ",{"type":1873,"tag":2024,"props":6480,"children":6481},{"style":2030},[6482],{"type":1878,"value":6483},"\u003C",{"type":1873,"tag":2024,"props":6485,"children":6486},{"style":2041},[6487],{"type":1878,"value":6488}," maxTimingCount; ",{"type":1873,"tag":2024,"props":6490,"children":6491},{"style":2030},[6492],{"type":1878,"value":6493},"++",{"type":1873,"tag":2024,"props":6495,"children":6496},{"style":2041},[6497],{"type":1878,"value":6498},"i) {\n",{"type":1873,"tag":2024,"props":6500,"children":6501},{"class":2026,"line":54},[6502,6507,6512,6516],{"type":1873,"tag":2024,"props":6503,"children":6504},{"style":2588},[6505],{"type":1878,"value":6506}," timings",{"type":1873,"tag":2024,"props":6508,"children":6509},{"style":2041},[6510],{"type":1878,"value":6511},"[i].sType ",{"type":1873,"tag":2024,"props":6513,"children":6514},{"style":2030},[6515],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6517,"children":6518},{"style":2041},[6519],{"type":1878,"value":6520}," VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT;\n",{"type":1873,"tag":2024,"props":6522,"children":6523},{"class":2026,"line":58},[6524,6528,6533,6537,6541],{"type":1873,"tag":2024,"props":6525,"children":6526},{"style":2588},[6527],{"type":1878,"value":6506},{"type":1873,"tag":2024,"props":6529,"children":6530},{"style":2041},[6531],{"type":1878,"value":6532},"[i].pNext ",{"type":1873,"tag":2024,"props":6534,"children":6535},{"style":2030},[6536],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6538,"children":6539},{"style":2319},[6540],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":6542,"children":6543},{"style":2041},[6544],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":6546,"children":6547},{"class":2026,"line":62},[6548,6552,6557,6561,6566,6571,6575,6579],{"type":1873,"tag":2024,"props":6549,"children":6550},{"style":2588},[6551],{"type":1878,"value":6506},{"type":1873,"tag":2024,"props":6553,"children":6554},{"style":2041},[6555],{"type":1878,"value":6556},"[i].pPresentStages ",{"type":1873,"tag":2024,"props":6558,"children":6559},{"style":2030},[6560],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6562,"children":6563},{"style":2041},[6564],{"type":1878,"value":6565}," stageTimes ",{"type":1873,"tag":2024,"props":6567,"children":6568},{"style":2030},[6569],{"type":1878,"value":6570},"+",{"type":1873,"tag":2024,"props":6572,"children":6573},{"style":2041},[6574],{"type":1878,"value":6465},{"type":1873,"tag":2024,"props":6576,"children":6577},{"style":2030},[6578],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":6580,"children":6581},{"style":2041},[6582],{"type":1878,"value":6583}," maxStageCount;\n",{"type":1873,"tag":2024,"props":6585,"children":6586},{"class":2026,"line":66},[6587],{"type":1873,"tag":2024,"props":6588,"children":6589},{"style":2041},[6590],{"type":1878,"value":6591}," }\n",{"type":1873,"tag":2024,"props":6593,"children":6594},{"class":2026,"line":70},[6595],{"type":1873,"tag":2024,"props":6596,"children":6597},{"emptyLinePlaceholder":232},[6598],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6600,"children":6601},{"class":2026,"line":74},[6602,6607],{"type":1873,"tag":2024,"props":6603,"children":6604},{"style":2030},[6605],{"type":1878,"value":6606}," while",{"type":1873,"tag":2024,"props":6608,"children":6609},{"style":2041},[6610],{"type":1878,"value":6611}," (presenting) {\n",{"type":1873,"tag":2024,"props":6613,"children":6614},{"class":2026,"line":78},[6615],{"type":1873,"tag":2024,"props":6616,"children":6617},{"style":3406},[6618],{"type":1878,"value":6619}," // Render & Present\n",{"type":1873,"tag":2024,"props":6621,"children":6622},{"class":2026,"line":82},[6623],{"type":1873,"tag":2024,"props":6624,"children":6625},{"style":3406},[6626],{"type":1878,"value":5447},{"type":1873,"tag":2024,"props":6628,"children":6629},{"class":2026,"line":86},[6630,6635,6639],{"type":1873,"tag":2024,"props":6631,"children":6632},{"style":2041},[6633],{"type":1878,"value":6634}," VkPresentTimingInfoEXT timingInfo ",{"type":1873,"tag":2024,"props":6636,"children":6637},{"style":2030},[6638],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6640,"children":6641},{"style":2041},[6642],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":6644,"children":6645},{"class":2026,"line":90},[6646,6651,6655],{"type":1873,"tag":2024,"props":6647,"children":6648},{"style":2041},[6649],{"type":1878,"value":6650}," .sType ",{"type":1873,"tag":2024,"props":6652,"children":6653},{"style":2030},[6654],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6656,"children":6657},{"style":2041},[6658],{"type":1878,"value":6659}," VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT,\n",{"type":1873,"tag":2024,"props":6661,"children":6662},{"class":2026,"line":94},[6663,6668,6672,6676],{"type":1873,"tag":2024,"props":6664,"children":6665},{"style":2041},[6666],{"type":1878,"value":6667}," .pNext ",{"type":1873,"tag":2024,"props":6669,"children":6670},{"style":2030},[6671],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6673,"children":6674},{"style":2319},[6675],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":6677,"children":6678},{"style":2041},[6679],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":6681,"children":6682},{"class":2026,"line":98},[6683,6688,6692,6696],{"type":1873,"tag":2024,"props":6684,"children":6685},{"style":2041},[6686],{"type":1878,"value":6687}," .flags ",{"type":1873,"tag":2024,"props":6689,"children":6690},{"style":2030},[6691],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6693,"children":6694},{"style":2319},[6695],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":6697,"children":6698},{"style":2041},[6699],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":6701,"children":6702},{"class":2026,"line":102},[6703,6708,6712,6716],{"type":1873,"tag":2024,"props":6704,"children":6705},{"style":2041},[6706],{"type":1878,"value":6707}," .targetTime ",{"type":1873,"tag":2024,"props":6709,"children":6710},{"style":2030},[6711],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6713,"children":6714},{"style":2319},[6715],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":6717,"children":6718},{"style":2041},[6719],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":6721,"children":6722},{"class":2026,"line":106},[6723,6728,6732],{"type":1873,"tag":2024,"props":6724,"children":6725},{"style":2041},[6726],{"type":1878,"value":6727}," .timeDomainId ",{"type":1873,"tag":2024,"props":6729,"children":6730},{"style":2030},[6731],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6733,"children":6734},{"style":2041},[6735],{"type":1878,"value":6736}," timeDomainId,\n",{"type":1873,"tag":2024,"props":6738,"children":6739},{"class":2026,"line":110},[6740,6745,6749],{"type":1873,"tag":2024,"props":6741,"children":6742},{"style":2041},[6743],{"type":1878,"value":6744}," .presentStageQueries ",{"type":1873,"tag":2024,"props":6746,"children":6747},{"style":2030},[6748],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6750,"children":6751},{"style":2041},[6752],{"type":1878,"value":6753}," presentStageQueries\n",{"type":1873,"tag":2024,"props":6755,"children":6756},{"class":2026,"line":114},[6757],{"type":1873,"tag":2024,"props":6758,"children":6759},{"style":2041},[6760],{"type":1878,"value":6761}," };\n",{"type":1873,"tag":2024,"props":6763,"children":6764},{"class":2026,"line":118},[6765],{"type":1873,"tag":2024,"props":6766,"children":6767},{"emptyLinePlaceholder":232},[6768],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6770,"children":6771},{"class":2026,"line":122},[6772,6777,6781],{"type":1873,"tag":2024,"props":6773,"children":6774},{"style":2041},[6775],{"type":1878,"value":6776}," VkPresentTimingsInfoEXT presentTimingsInfo ",{"type":1873,"tag":2024,"props":6778,"children":6779},{"style":2030},[6780],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6782,"children":6783},{"style":2041},[6784],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":6786,"children":6787},{"class":2026,"line":126},[6788,6792,6796],{"type":1873,"tag":2024,"props":6789,"children":6790},{"style":2041},[6791],{"type":1878,"value":6650},{"type":1873,"tag":2024,"props":6793,"children":6794},{"style":2030},[6795],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6797,"children":6798},{"style":2041},[6799],{"type":1878,"value":6800}," VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT,\n",{"type":1873,"tag":2024,"props":6802,"children":6803},{"class":2026,"line":130},[6804,6808,6812,6816],{"type":1873,"tag":2024,"props":6805,"children":6806},{"style":2041},[6807],{"type":1878,"value":6667},{"type":1873,"tag":2024,"props":6809,"children":6810},{"style":2030},[6811],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6813,"children":6814},{"style":2319},[6815],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":6817,"children":6818},{"style":2041},[6819],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":6821,"children":6822},{"class":2026,"line":134},[6823,6828,6832,6837],{"type":1873,"tag":2024,"props":6824,"children":6825},{"style":2041},[6826],{"type":1878,"value":6827}," .swapchainCount ",{"type":1873,"tag":2024,"props":6829,"children":6830},{"style":2030},[6831],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6833,"children":6834},{"style":2319},[6835],{"type":1878,"value":6836}," 1",{"type":1873,"tag":2024,"props":6838,"children":6839},{"style":2041},[6840],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":6842,"children":6843},{"class":2026,"line":138},[6844,6849,6853,6857],{"type":1873,"tag":2024,"props":6845,"children":6846},{"style":2041},[6847],{"type":1878,"value":6848}," .pTimingInfos ",{"type":1873,"tag":2024,"props":6850,"children":6851},{"style":2030},[6852],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6854,"children":6855},{"style":2030},[6856],{"type":1878,"value":5286},{"type":1873,"tag":2024,"props":6858,"children":6859},{"style":2041},[6860],{"type":1878,"value":6861},"timingInfo\n",{"type":1873,"tag":2024,"props":6863,"children":6864},{"class":2026,"line":142},[6865],{"type":1873,"tag":2024,"props":6866,"children":6867},{"style":2041},[6868],{"type":1878,"value":6761},{"type":1873,"tag":2024,"props":6870,"children":6871},{"class":2026,"line":146},[6872],{"type":1873,"tag":2024,"props":6873,"children":6874},{"emptyLinePlaceholder":232},[6875],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6877,"children":6878},{"class":2026,"line":150},[6879,6884,6888,6892],{"type":1873,"tag":2024,"props":6880,"children":6881},{"style":2041},[6882],{"type":1878,"value":6883}," presentInfoTail.pNext ",{"type":1873,"tag":2024,"props":6885,"children":6886},{"style":2030},[6887],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6889,"children":6890},{"style":2030},[6891],{"type":1878,"value":5286},{"type":1873,"tag":2024,"props":6893,"children":6894},{"style":2041},[6895],{"type":1878,"value":6896},"presentTimingsInfo;\n",{"type":1873,"tag":2024,"props":6898,"children":6899},{"class":2026,"line":154},[6900,6905,6909,6914],{"type":1873,"tag":2024,"props":6901,"children":6902},{"style":2041},[6903],{"type":1878,"value":6904}," result ",{"type":1873,"tag":2024,"props":6906,"children":6907},{"style":2030},[6908],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":6910,"children":6911},{"style":2569},[6912],{"type":1878,"value":6913}," vkQueuePresentKHR",{"type":1873,"tag":2024,"props":6915,"children":6916},{"style":2041},[6917],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":6919,"children":6920},{"class":2026,"line":158},[6921],{"type":1873,"tag":2024,"props":6922,"children":6923},{"emptyLinePlaceholder":232},[6924],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6926,"children":6927},{"class":2026,"line":162},[6928,6933,6938,6943],{"type":1873,"tag":2024,"props":6929,"children":6930},{"style":2030},[6931],{"type":1878,"value":6932}," if",{"type":1873,"tag":2024,"props":6934,"children":6935},{"style":2041},[6936],{"type":1878,"value":6937}," (result ",{"type":1873,"tag":2024,"props":6939,"children":6940},{"style":2030},[6941],{"type":1878,"value":6942},"==",{"type":1873,"tag":2024,"props":6944,"children":6945},{"style":2041},[6946],{"type":1878,"value":6947}," VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT) {\n",{"type":1873,"tag":2024,"props":6949,"children":6950},{"class":2026,"line":166},[6951],{"type":1873,"tag":2024,"props":6952,"children":6953},{"style":3406},[6954],{"type":1878,"value":6955}," // We are presenting faster than results are coming in. We can either\n",{"type":1873,"tag":2024,"props":6957,"children":6958},{"class":2026,"line":170},[6959],{"type":1873,"tag":2024,"props":6960,"children":6961},{"style":3406},[6962],{"type":1878,"value":6963}," // wait to drain the results queue, grow the results queue, or\n",{"type":1873,"tag":2024,"props":6965,"children":6966},{"class":2026,"line":174},[6967],{"type":1873,"tag":2024,"props":6968,"children":6969},{"style":3406},[6970],{"type":1878,"value":6971}," // present again without asking for present timing data.\n",{"type":1873,"tag":2024,"props":6973,"children":6974},{"class":2026,"line":178},[6975],{"type":1873,"tag":2024,"props":6976,"children":6977},{"style":3406},[6978],{"type":1878,"value":6979}," // (...)\n",{"type":1873,"tag":2024,"props":6981,"children":6982},{"class":2026,"line":182},[6983],{"type":1873,"tag":2024,"props":6984,"children":6985},{"style":2041},[6986],{"type":1878,"value":6987}," }\n",{"type":1873,"tag":2024,"props":6989,"children":6990},{"class":2026,"line":186},[6991],{"type":1873,"tag":2024,"props":6992,"children":6993},{"emptyLinePlaceholder":232},[6994],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":6996,"children":6997},{"class":2026,"line":190},[6998,7002,7006,7011],{"type":1873,"tag":2024,"props":6999,"children":7000},{"style":2030},[7001],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":7003,"children":7004},{"style":2041},[7005],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":7007,"children":7008},{"style":2030},[7009],{"type":1878,"value":7010},"!=",{"type":1873,"tag":2024,"props":7012,"children":7013},{"style":2041},[7014],{"type":1878,"value":7015}," VK_SUCCESS) {\n",{"type":1873,"tag":2024,"props":7017,"children":7018},{"class":2026,"line":194},[7019],{"type":1873,"tag":2024,"props":7020,"children":7021},{"style":3406},[7022],{"type":1878,"value":7023}," // Handle vkQueuePresentKHR other non-success return values\n",{"type":1873,"tag":2024,"props":7025,"children":7026},{"class":2026,"line":198},[7027],{"type":1873,"tag":2024,"props":7028,"children":7029},{"style":3406},[7030],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":7032,"children":7033},{"class":2026,"line":202},[7034],{"type":1873,"tag":2024,"props":7035,"children":7036},{"style":2041},[7037],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":7039,"children":7040},{"class":2026,"line":206},[7041],{"type":1873,"tag":2024,"props":7042,"children":7043},{"emptyLinePlaceholder":232},[7044],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7046,"children":7047},{"class":2026,"line":210},[7048],{"type":1873,"tag":2024,"props":7049,"children":7050},{"style":3406},[7051],{"type":1878,"value":7052}," // Track the number of pending present results, each present taking one slot in the internal queue\n",{"type":1873,"tag":2024,"props":7054,"children":7055},{"class":2026,"line":214},[7056,7061,7065],{"type":1873,"tag":2024,"props":7057,"children":7058},{"style":2041},[7059],{"type":1878,"value":7060}," pendingPresentResults",{"type":1873,"tag":2024,"props":7062,"children":7063},{"style":2030},[7064],{"type":1878,"value":6493},{"type":1873,"tag":2024,"props":7066,"children":7067},{"style":2041},[7068],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":7070,"children":7071},{"class":2026,"line":218},[7072],{"type":1873,"tag":2024,"props":7073,"children":7074},{"emptyLinePlaceholder":232},[7075],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7077,"children":7078},{"class":2026,"line":222},[7079,7084,7088],{"type":1873,"tag":2024,"props":7080,"children":7081},{"style":2041},[7082],{"type":1878,"value":7083}," VkPastPresentationTimingInfoEXT pastTimingInfo ",{"type":1873,"tag":2024,"props":7085,"children":7086},{"style":2030},[7087],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7089,"children":7090},{"style":2041},[7091],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":7093,"children":7094},{"class":2026,"line":226},[7095,7099,7103],{"type":1873,"tag":2024,"props":7096,"children":7097},{"style":2041},[7098],{"type":1878,"value":6650},{"type":1873,"tag":2024,"props":7100,"children":7101},{"style":2030},[7102],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7104,"children":7105},{"style":2041},[7106],{"type":1878,"value":7107}," VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT,\n",{"type":1873,"tag":2024,"props":7109,"children":7110},{"class":2026,"line":1622},[7111,7115,7119,7123],{"type":1873,"tag":2024,"props":7112,"children":7113},{"style":2041},[7114],{"type":1878,"value":6667},{"type":1873,"tag":2024,"props":7116,"children":7117},{"style":2030},[7118],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7120,"children":7121},{"style":2319},[7122],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":7124,"children":7125},{"style":2041},[7126],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7128,"children":7129},{"class":2026,"line":1618},[7130,7134,7138,7142],{"type":1873,"tag":2024,"props":7131,"children":7132},{"style":2041},[7133],{"type":1878,"value":6687},{"type":1873,"tag":2024,"props":7135,"children":7136},{"style":2030},[7137],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7139,"children":7140},{"style":2319},[7141],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7143,"children":7144},{"style":2041},[7145],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7147,"children":7148},{"class":2026,"line":1629},[7149,7154,7158],{"type":1873,"tag":2024,"props":7150,"children":7151},{"style":2041},[7152],{"type":1878,"value":7153}," .swapchain ",{"type":1873,"tag":2024,"props":7155,"children":7156},{"style":2030},[7157],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7159,"children":7160},{"style":2041},[7161],{"type":1878,"value":7162}," swapchain\n",{"type":1873,"tag":2024,"props":7164,"children":7165},{"class":2026,"line":1753},[7166],{"type":1873,"tag":2024,"props":7167,"children":7168},{"style":2041},[7169],{"type":1878,"value":6761},{"type":1873,"tag":2024,"props":7171,"children":7172},{"class":2026,"line":1184},[7173],{"type":1873,"tag":2024,"props":7174,"children":7175},{"emptyLinePlaceholder":232},[7176],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7178,"children":7179},{"class":2026,"line":1107},[7180,7185,7189],{"type":1873,"tag":2024,"props":7181,"children":7182},{"style":2041},[7183],{"type":1878,"value":7184}," VkPastPresentationTimingPropertiesEXT pastTimingProperties ",{"type":1873,"tag":2024,"props":7186,"children":7187},{"style":2030},[7188],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7190,"children":7191},{"style":2041},[7192],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":7194,"children":7195},{"class":2026,"line":939},[7196,7200,7204],{"type":1873,"tag":2024,"props":7197,"children":7198},{"style":2041},[7199],{"type":1878,"value":6650},{"type":1873,"tag":2024,"props":7201,"children":7202},{"style":2030},[7203],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7205,"children":7206},{"style":2041},[7207],{"type":1878,"value":7208}," VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT,\n",{"type":1873,"tag":2024,"props":7210,"children":7211},{"class":2026,"line":1517},[7212,7216,7220,7224],{"type":1873,"tag":2024,"props":7213,"children":7214},{"style":2041},[7215],{"type":1878,"value":6667},{"type":1873,"tag":2024,"props":7217,"children":7218},{"style":2030},[7219],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7221,"children":7222},{"style":2319},[7223],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":7225,"children":7226},{"style":2041},[7227],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7229,"children":7230},{"class":2026,"line":1332},[7231,7236,7240,7244],{"type":1873,"tag":2024,"props":7232,"children":7233},{"style":2041},[7234],{"type":1878,"value":7235}," .timingPropertiesCounter ",{"type":1873,"tag":2024,"props":7237,"children":7238},{"style":2030},[7239],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7241,"children":7242},{"style":2319},[7243],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7245,"children":7246},{"style":2041},[7247],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7249,"children":7250},{"class":2026,"line":877},[7251,7256,7260,7264],{"type":1873,"tag":2024,"props":7252,"children":7253},{"style":2041},[7254],{"type":1878,"value":7255}," .timeDomainsCounter ",{"type":1873,"tag":2024,"props":7257,"children":7258},{"style":2030},[7259],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7261,"children":7262},{"style":2319},[7263],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7265,"children":7266},{"style":2041},[7267],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7269,"children":7270},{"class":2026,"line":883},[7271,7276,7280],{"type":1873,"tag":2024,"props":7272,"children":7273},{"style":2041},[7274],{"type":1878,"value":7275}," .presentationTimingCount ",{"type":1873,"tag":2024,"props":7277,"children":7278},{"style":2030},[7279],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7281,"children":7282},{"style":2041},[7283],{"type":1878,"value":7284}," maxTimingCount,\n",{"type":1873,"tag":2024,"props":7286,"children":7287},{"class":2026,"line":922},[7288,7293,7297],{"type":1873,"tag":2024,"props":7289,"children":7290},{"style":2041},[7291],{"type":1878,"value":7292}," .pPresentationTimings ",{"type":1873,"tag":2024,"props":7294,"children":7295},{"style":2030},[7296],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7298,"children":7299},{"style":2041},[7300],{"type":1878,"value":7301}," timings\n",{"type":1873,"tag":2024,"props":7303,"children":7304},{"class":2026,"line":427},[7305],{"type":1873,"tag":2024,"props":7306,"children":7307},{"style":2041},[7308],{"type":1878,"value":6761},{"type":1873,"tag":2024,"props":7310,"children":7311},{"class":2026,"line":779},[7312],{"type":1873,"tag":2024,"props":7313,"children":7314},{"emptyLinePlaceholder":232},[7315],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7317,"children":7318},{"class":2026,"line":1211},[7319,7323,7327,7332,7336,7340,7345,7349],{"type":1873,"tag":2024,"props":7320,"children":7321},{"style":2041},[7322],{"type":1878,"value":6904},{"type":1873,"tag":2024,"props":7324,"children":7325},{"style":2030},[7326],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7328,"children":7329},{"style":2569},[7330],{"type":1878,"value":7331}," vkGetPastPresentationTimingEXT",{"type":1873,"tag":2024,"props":7333,"children":7334},{"style":2041},[7335],{"type":1878,"value":5483},{"type":1873,"tag":2024,"props":7337,"children":7338},{"style":2030},[7339],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":7341,"children":7342},{"style":2041},[7343],{"type":1878,"value":7344},"pastTimingInfo, ",{"type":1873,"tag":2024,"props":7346,"children":7347},{"style":2030},[7348],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":7350,"children":7351},{"style":2041},[7352],{"type":1878,"value":7353},"pastTimingProperties);\n",{"type":1873,"tag":2024,"props":7355,"children":7356},{"class":2026,"line":1111},[7357],{"type":1873,"tag":2024,"props":7358,"children":7359},{"emptyLinePlaceholder":232},[7360],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7362,"children":7363},{"class":2026,"line":1147},[7364,7368,7372,7376],{"type":1873,"tag":2024,"props":7365,"children":7366},{"style":2030},[7367],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":7369,"children":7370},{"style":2041},[7371],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":7373,"children":7374},{"style":2030},[7375],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":7377,"children":7378},{"style":2041},[7379],{"type":1878,"value":7015},{"type":1873,"tag":2024,"props":7381,"children":7382},{"class":2026,"line":1143},[7383],{"type":1873,"tag":2024,"props":7384,"children":7385},{"style":3406},[7386],{"type":1878,"value":7387}," // Handle error\n",{"type":1873,"tag":2024,"props":7389,"children":7390},{"class":2026,"line":1152},[7391],{"type":1873,"tag":2024,"props":7392,"children":7393},{"style":3406},[7394],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":7396,"children":7397},{"class":2026,"line":1150},[7398],{"type":1873,"tag":2024,"props":7399,"children":7400},{"style":2041},[7401],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":7403,"children":7404},{"class":2026,"line":1477},[7405],{"type":1873,"tag":2024,"props":7406,"children":7407},{"emptyLinePlaceholder":232},[7408],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7410,"children":7411},{"class":2026,"line":1159},[7412,7416,7421,7425],{"type":1873,"tag":2024,"props":7413,"children":7414},{"style":2030},[7415],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":7417,"children":7418},{"style":2041},[7419],{"type":1878,"value":7420}," (pastTimingProperties.timingPropertiesCounter ",{"type":1873,"tag":2024,"props":7422,"children":7423},{"style":2030},[7424],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":7426,"children":7427},{"style":2041},[7428],{"type":1878,"value":7429}," currentTimingPropertiesCounter) {\n",{"type":1873,"tag":2024,"props":7431,"children":7432},{"class":2026,"line":1155},[7433,7438,7442],{"type":1873,"tag":2024,"props":7434,"children":7435},{"style":2041},[7436],{"type":1878,"value":7437}," currentTimingPropertiesCounter ",{"type":1873,"tag":2024,"props":7439,"children":7440},{"style":2030},[7441],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7443,"children":7444},{"style":2041},[7445],{"type":1878,"value":7446}," pastTimingProperties.timingPropertiesCounter;\n",{"type":1873,"tag":2024,"props":7448,"children":7449},{"class":2026,"line":1165},[7450],{"type":1873,"tag":2024,"props":7451,"children":7452},{"style":3406},[7453],{"type":1878,"value":7454}," // Update swapchain timing properties\n",{"type":1873,"tag":2024,"props":7456,"children":7457},{"class":2026,"line":1161},[7458],{"type":1873,"tag":2024,"props":7459,"children":7460},{"style":3406},[7461],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":7463,"children":7464},{"class":2026,"line":1290},[7465],{"type":1873,"tag":2024,"props":7466,"children":7467},{"style":2041},[7468],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":7470,"children":7471},{"class":2026,"line":461},[7472],{"type":1873,"tag":2024,"props":7473,"children":7474},{"emptyLinePlaceholder":232},[7475],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7477,"children":7478},{"class":2026,"line":1338},[7479,7483,7488,7492],{"type":1873,"tag":2024,"props":7480,"children":7481},{"style":2030},[7482],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":7484,"children":7485},{"style":2041},[7486],{"type":1878,"value":7487}," (pastTimingProperties.timeDomainsCounter ",{"type":1873,"tag":2024,"props":7489,"children":7490},{"style":2030},[7491],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":7493,"children":7494},{"style":2041},[7495],{"type":1878,"value":7496}," currentTimeDomainsCounter) {\n",{"type":1873,"tag":2024,"props":7498,"children":7499},{"class":2026,"line":1046},[7500,7505,7509],{"type":1873,"tag":2024,"props":7501,"children":7502},{"style":2041},[7503],{"type":1878,"value":7504}," currentTimeDomainsCounter ",{"type":1873,"tag":2024,"props":7506,"children":7507},{"style":2030},[7508],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7510,"children":7511},{"style":2041},[7512],{"type":1878,"value":7513}," pastTimingProperties.timeDomainsCounter;\n",{"type":1873,"tag":2024,"props":7515,"children":7516},{"class":2026,"line":1199},[7517],{"type":1873,"tag":2024,"props":7518,"children":7519},{"style":3406},[7520],{"type":1878,"value":7521}," // Update time domains\n",{"type":1873,"tag":2024,"props":7523,"children":7524},{"class":2026,"line":1103},[7525],{"type":1873,"tag":2024,"props":7526,"children":7527},{"style":3406},[7528],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":7530,"children":7532},{"class":2026,"line":7531},87,[7533],{"type":1873,"tag":2024,"props":7534,"children":7535},{"style":2041},[7536],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":7538,"children":7539},{"class":2026,"line":1537},[7540],{"type":1873,"tag":2024,"props":7541,"children":7542},{"emptyLinePlaceholder":232},[7543],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7545,"children":7546},{"class":2026,"line":538},[7547,7552,7557],{"type":1873,"tag":2024,"props":7548,"children":7549},{"style":2041},[7550],{"type":1878,"value":7551}," pendingPresentResults ",{"type":1873,"tag":2024,"props":7553,"children":7554},{"style":2030},[7555],{"type":1878,"value":7556},"-=",{"type":1873,"tag":2024,"props":7558,"children":7559},{"style":2041},[7560],{"type":1878,"value":7561}," pastTimingProperties.presentationTimingCount;\n",{"type":1873,"tag":2024,"props":7563,"children":7564},{"class":2026,"line":419},[7565],{"type":1873,"tag":2024,"props":7566,"children":7567},{"emptyLinePlaceholder":232},[7568],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7570,"children":7571},{"class":2026,"line":554},[7572],{"type":1873,"tag":2024,"props":7573,"children":7574},{"style":3406},[7575],{"type":1878,"value":7576}," // Process timing results\n",{"type":1873,"tag":2024,"props":7578,"children":7579},{"class":2026,"line":550},[7580],{"type":1873,"tag":2024,"props":7581,"children":7582},{"style":2041},[7583],{"type":1878,"value":6591},{"type":1873,"tag":1997,"props":7585,"children":7587},{"id":7586},"_handling_vk_error_present_timing_queue_full_ext_waiting_for_results",[7588,7590,7595],{"type":1878,"value":7589},"Handling ",{"type":1873,"tag":1931,"props":7591,"children":7593},{"className":7592},[],[7594],{"type":1878,"value":4940},{"type":1878,"value":7596},": waiting for results",{"type":1873,"tag":2013,"props":7598,"children":7600},{"className":2015,"code":7599,"language":2017,"meta":2018,"style":2018}," VkSwapchainTimingPropertiesEXT swapchainTimingProperties = {\n .sType = VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT,\n .pNext = NULL\n };\n\n // Initialize timing properties, time domains, timing results queue, etc.\n // (...)\n\n while (presenting) {\n // Render & Present\n // (...)\n\n result = vkQueuePresentKHR(...);\n\n if (result == VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT) {\n // Synchronously wait for timing results to be available. There\n // is no synchronization built in the API for this, so the\n // application must poll. We use the refresh cycle duration as\n // our poll interval in this example.\n\n VkPastPresentationTimingInfoEXT pastTimingInfo = {\n .sType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT,\n .pNext = NULL,\n .flags = 0,\n .swapchain = swapchain\n };\n\n VkPastPresentationTimingPropertiesEXT pastTimingProperties = {\n .sType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT,\n .pNext = NULL,\n .timingPropertiesCounter = 0,\n .timeDomainsCounter = 0,\n .presentationTimingCount = 0,\n .pPresentationTimings = NULL\n };\n\n // Note: this loop can result in stutter if the presentation engine takes a long time to\n // return results. After a couple tries, it would be reasonable to bail and present without\n // requesting timing results.\n uint64_t sleepDuration = swapchainTimingProperties.refreshDuration;\n\n do {\n result = vkGetPastPresentationTimingEXT(device, &pastTimingInfo, &pastTimingProperties);\n\n if (result != VK_SUCCESS) {\n // Handle error\n // (...)\n }\n\n if (pastTimingProperties.timingPropertiesCounter != currentTimingPropertiesCounter) {\n currentTimingPropertiesCounter = pastTimingProperties.timingPropertiesCounter;\n result = vkGetSwapchainTimingPropertiesEXT(device, swapchain, &swapchainTimingProperties, ¤tTimingPropertiesCounter);\n\n if (result != VK_SUCCESS) {\n // Handle error\n // (...)\n }\n\n sleepDuration = swapchainTimingProperties.refreshDuration;\n }\n\n // Check pastTimingProperties.timeDomainsCounter as well\n // (...)\n\n if (pastTimingProperties.presentationTimingCount > 0) {\n // We have results, break out of the loop and process them\n break;\n } else {\n // We do not have results yet, sleep for the refresh cycle duration\n SleepNS(sleepDuration);\n }\n\n } while (pastTimingProperties.presentationTimingCount == 0);\n\n // Actually retrieve the timing results now that we know they are available\n // (...)\n }\n\n // (...)\n }\n",[7601],{"type":1873,"tag":1931,"props":7602,"children":7603},{"__ignoreMap":2018},[7604,7619,7634,7649,7656,7663,7671,7678,7685,7696,7703,7710,7717,7736,7743,7762,7770,7778,7786,7794,7801,7817,7833,7853,7873,7889,7897,7904,7920,7935,7954,7974,7994,8014,8030,8037,8044,8052,8060,8068,8090,8097,8109,8145,8152,8172,8180,8188,8196,8203,8222,8238,8276,8283,8303,8311,8319,8327,8334,8350,8357,8364,8372,8380,8387,8413,8421,8433,8450,8458,8471,8478,8485,8514,8521,8529,8536,8543,8550,8557],{"type":1873,"tag":2024,"props":7605,"children":7606},{"class":2026,"line":10},[7607,7611,7615],{"type":1873,"tag":2024,"props":7608,"children":7609},{"style":2041},[7610],{"type":1878,"value":5555},{"type":1873,"tag":2024,"props":7612,"children":7613},{"style":2030},[7614],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7616,"children":7617},{"style":2041},[7618],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":7620,"children":7621},{"class":2026,"line":14},[7622,7626,7630],{"type":1873,"tag":2024,"props":7623,"children":7624},{"style":2041},[7625],{"type":1878,"value":5213},{"type":1873,"tag":2024,"props":7627,"children":7628},{"style":2030},[7629],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7631,"children":7632},{"style":2041},[7633],{"type":1878,"value":5579},{"type":1873,"tag":2024,"props":7635,"children":7636},{"class":2026,"line":18},[7637,7641,7645],{"type":1873,"tag":2024,"props":7638,"children":7639},{"style":2041},[7640],{"type":1878,"value":5277},{"type":1873,"tag":2024,"props":7642,"children":7643},{"style":2030},[7644],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7646,"children":7647},{"style":2319},[7648],{"type":1878,"value":5595},{"type":1873,"tag":2024,"props":7650,"children":7651},{"class":2026,"line":22},[7652],{"type":1873,"tag":2024,"props":7653,"children":7654},{"style":2041},[7655],{"type":1878,"value":5230},{"type":1873,"tag":2024,"props":7657,"children":7658},{"class":2026,"line":26},[7659],{"type":1873,"tag":2024,"props":7660,"children":7661},{"emptyLinePlaceholder":232},[7662],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7664,"children":7665},{"class":2026,"line":30},[7666],{"type":1873,"tag":2024,"props":7667,"children":7668},{"style":3406},[7669],{"type":1878,"value":7670}," // Initialize timing properties, time domains, timing results queue, etc.\n",{"type":1873,"tag":2024,"props":7672,"children":7673},{"class":2026,"line":34},[7674],{"type":1873,"tag":2024,"props":7675,"children":7676},{"style":3406},[7677],{"type":1878,"value":5355},{"type":1873,"tag":2024,"props":7679,"children":7680},{"class":2026,"line":38},[7681],{"type":1873,"tag":2024,"props":7682,"children":7683},{"emptyLinePlaceholder":232},[7684],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7686,"children":7687},{"class":2026,"line":42},[7688,7692],{"type":1873,"tag":2024,"props":7689,"children":7690},{"style":2030},[7691],{"type":1878,"value":6606},{"type":1873,"tag":2024,"props":7693,"children":7694},{"style":2041},[7695],{"type":1878,"value":6611},{"type":1873,"tag":2024,"props":7697,"children":7698},{"class":2026,"line":46},[7699],{"type":1873,"tag":2024,"props":7700,"children":7701},{"style":3406},[7702],{"type":1878,"value":6619},{"type":1873,"tag":2024,"props":7704,"children":7705},{"class":2026,"line":50},[7706],{"type":1873,"tag":2024,"props":7707,"children":7708},{"style":3406},[7709],{"type":1878,"value":5447},{"type":1873,"tag":2024,"props":7711,"children":7712},{"class":2026,"line":54},[7713],{"type":1873,"tag":2024,"props":7714,"children":7715},{"emptyLinePlaceholder":232},[7716],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7718,"children":7719},{"class":2026,"line":58},[7720,7724,7728,7732],{"type":1873,"tag":2024,"props":7721,"children":7722},{"style":2041},[7723],{"type":1878,"value":6904},{"type":1873,"tag":2024,"props":7725,"children":7726},{"style":2030},[7727],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7729,"children":7730},{"style":2569},[7731],{"type":1878,"value":6913},{"type":1873,"tag":2024,"props":7733,"children":7734},{"style":2041},[7735],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":7737,"children":7738},{"class":2026,"line":62},[7739],{"type":1873,"tag":2024,"props":7740,"children":7741},{"emptyLinePlaceholder":232},[7742],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7744,"children":7745},{"class":2026,"line":66},[7746,7750,7754,7758],{"type":1873,"tag":2024,"props":7747,"children":7748},{"style":2030},[7749],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":7751,"children":7752},{"style":2041},[7753],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":7755,"children":7756},{"style":2030},[7757],{"type":1878,"value":6942},{"type":1873,"tag":2024,"props":7759,"children":7760},{"style":2041},[7761],{"type":1878,"value":6947},{"type":1873,"tag":2024,"props":7763,"children":7764},{"class":2026,"line":70},[7765],{"type":1873,"tag":2024,"props":7766,"children":7767},{"style":3406},[7768],{"type":1878,"value":7769}," // Synchronously wait for timing results to be available. There\n",{"type":1873,"tag":2024,"props":7771,"children":7772},{"class":2026,"line":74},[7773],{"type":1873,"tag":2024,"props":7774,"children":7775},{"style":3406},[7776],{"type":1878,"value":7777}," // is no synchronization built in the API for this, so the\n",{"type":1873,"tag":2024,"props":7779,"children":7780},{"class":2026,"line":78},[7781],{"type":1873,"tag":2024,"props":7782,"children":7783},{"style":3406},[7784],{"type":1878,"value":7785}," // application must poll. We use the refresh cycle duration as\n",{"type":1873,"tag":2024,"props":7787,"children":7788},{"class":2026,"line":82},[7789],{"type":1873,"tag":2024,"props":7790,"children":7791},{"style":3406},[7792],{"type":1878,"value":7793}," // our poll interval in this example.\n",{"type":1873,"tag":2024,"props":7795,"children":7796},{"class":2026,"line":86},[7797],{"type":1873,"tag":2024,"props":7798,"children":7799},{"emptyLinePlaceholder":232},[7800],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7802,"children":7803},{"class":2026,"line":90},[7804,7809,7813],{"type":1873,"tag":2024,"props":7805,"children":7806},{"style":2041},[7807],{"type":1878,"value":7808}," VkPastPresentationTimingInfoEXT pastTimingInfo ",{"type":1873,"tag":2024,"props":7810,"children":7811},{"style":2030},[7812],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7814,"children":7815},{"style":2041},[7816],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":7818,"children":7819},{"class":2026,"line":94},[7820,7825,7829],{"type":1873,"tag":2024,"props":7821,"children":7822},{"style":2041},[7823],{"type":1878,"value":7824}," .sType ",{"type":1873,"tag":2024,"props":7826,"children":7827},{"style":2030},[7828],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7830,"children":7831},{"style":2041},[7832],{"type":1878,"value":7107},{"type":1873,"tag":2024,"props":7834,"children":7835},{"class":2026,"line":98},[7836,7841,7845,7849],{"type":1873,"tag":2024,"props":7837,"children":7838},{"style":2041},[7839],{"type":1878,"value":7840}," .pNext ",{"type":1873,"tag":2024,"props":7842,"children":7843},{"style":2030},[7844],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7846,"children":7847},{"style":2319},[7848],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":7850,"children":7851},{"style":2041},[7852],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7854,"children":7855},{"class":2026,"line":102},[7856,7861,7865,7869],{"type":1873,"tag":2024,"props":7857,"children":7858},{"style":2041},[7859],{"type":1878,"value":7860}," .flags ",{"type":1873,"tag":2024,"props":7862,"children":7863},{"style":2030},[7864],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7866,"children":7867},{"style":2319},[7868],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7870,"children":7871},{"style":2041},[7872],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7874,"children":7875},{"class":2026,"line":106},[7876,7881,7885],{"type":1873,"tag":2024,"props":7877,"children":7878},{"style":2041},[7879],{"type":1878,"value":7880}," .swapchain ",{"type":1873,"tag":2024,"props":7882,"children":7883},{"style":2030},[7884],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7886,"children":7887},{"style":2041},[7888],{"type":1878,"value":7162},{"type":1873,"tag":2024,"props":7890,"children":7891},{"class":2026,"line":110},[7892],{"type":1873,"tag":2024,"props":7893,"children":7894},{"style":2041},[7895],{"type":1878,"value":7896}," };\n",{"type":1873,"tag":2024,"props":7898,"children":7899},{"class":2026,"line":114},[7900],{"type":1873,"tag":2024,"props":7901,"children":7902},{"emptyLinePlaceholder":232},[7903],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":7905,"children":7906},{"class":2026,"line":118},[7907,7912,7916],{"type":1873,"tag":2024,"props":7908,"children":7909},{"style":2041},[7910],{"type":1878,"value":7911}," VkPastPresentationTimingPropertiesEXT pastTimingProperties ",{"type":1873,"tag":2024,"props":7913,"children":7914},{"style":2030},[7915],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7917,"children":7918},{"style":2041},[7919],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":7921,"children":7922},{"class":2026,"line":122},[7923,7927,7931],{"type":1873,"tag":2024,"props":7924,"children":7925},{"style":2041},[7926],{"type":1878,"value":7824},{"type":1873,"tag":2024,"props":7928,"children":7929},{"style":2030},[7930],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7932,"children":7933},{"style":2041},[7934],{"type":1878,"value":7208},{"type":1873,"tag":2024,"props":7936,"children":7937},{"class":2026,"line":126},[7938,7942,7946,7950],{"type":1873,"tag":2024,"props":7939,"children":7940},{"style":2041},[7941],{"type":1878,"value":7840},{"type":1873,"tag":2024,"props":7943,"children":7944},{"style":2030},[7945],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7947,"children":7948},{"style":2319},[7949],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":7951,"children":7952},{"style":2041},[7953],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7955,"children":7956},{"class":2026,"line":130},[7957,7962,7966,7970],{"type":1873,"tag":2024,"props":7958,"children":7959},{"style":2041},[7960],{"type":1878,"value":7961}," .timingPropertiesCounter ",{"type":1873,"tag":2024,"props":7963,"children":7964},{"style":2030},[7965],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7967,"children":7968},{"style":2319},[7969],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7971,"children":7972},{"style":2041},[7973],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7975,"children":7976},{"class":2026,"line":134},[7977,7982,7986,7990],{"type":1873,"tag":2024,"props":7978,"children":7979},{"style":2041},[7980],{"type":1878,"value":7981}," .timeDomainsCounter ",{"type":1873,"tag":2024,"props":7983,"children":7984},{"style":2030},[7985],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":7987,"children":7988},{"style":2319},[7989],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":7991,"children":7992},{"style":2041},[7993],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":7995,"children":7996},{"class":2026,"line":138},[7997,8002,8006,8010],{"type":1873,"tag":2024,"props":7998,"children":7999},{"style":2041},[8000],{"type":1878,"value":8001}," .presentationTimingCount ",{"type":1873,"tag":2024,"props":8003,"children":8004},{"style":2030},[8005],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8007,"children":8008},{"style":2319},[8009],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8011,"children":8012},{"style":2041},[8013],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":8015,"children":8016},{"class":2026,"line":142},[8017,8022,8026],{"type":1873,"tag":2024,"props":8018,"children":8019},{"style":2041},[8020],{"type":1878,"value":8021}," .pPresentationTimings ",{"type":1873,"tag":2024,"props":8023,"children":8024},{"style":2030},[8025],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8027,"children":8028},{"style":2319},[8029],{"type":1878,"value":5595},{"type":1873,"tag":2024,"props":8031,"children":8032},{"class":2026,"line":146},[8033],{"type":1873,"tag":2024,"props":8034,"children":8035},{"style":2041},[8036],{"type":1878,"value":7896},{"type":1873,"tag":2024,"props":8038,"children":8039},{"class":2026,"line":150},[8040],{"type":1873,"tag":2024,"props":8041,"children":8042},{"emptyLinePlaceholder":232},[8043],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8045,"children":8046},{"class":2026,"line":154},[8047],{"type":1873,"tag":2024,"props":8048,"children":8049},{"style":3406},[8050],{"type":1878,"value":8051}," // Note: this loop can result in stutter if the presentation engine takes a long time to\n",{"type":1873,"tag":2024,"props":8053,"children":8054},{"class":2026,"line":158},[8055],{"type":1873,"tag":2024,"props":8056,"children":8057},{"style":3406},[8058],{"type":1878,"value":8059}," // return results. After a couple tries, it would be reasonable to bail and present without\n",{"type":1873,"tag":2024,"props":8061,"children":8062},{"class":2026,"line":162},[8063],{"type":1873,"tag":2024,"props":8064,"children":8065},{"style":3406},[8066],{"type":1878,"value":8067}," // requesting timing results.\n",{"type":1873,"tag":2024,"props":8069,"children":8070},{"class":2026,"line":166},[8071,8076,8081,8085],{"type":1873,"tag":2024,"props":8072,"children":8073},{"style":2030},[8074],{"type":1878,"value":8075}," uint64_t",{"type":1873,"tag":2024,"props":8077,"children":8078},{"style":2041},[8079],{"type":1878,"value":8080}," sleepDuration ",{"type":1873,"tag":2024,"props":8082,"children":8083},{"style":2030},[8084],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8086,"children":8087},{"style":2041},[8088],{"type":1878,"value":8089}," swapchainTimingProperties.refreshDuration;\n",{"type":1873,"tag":2024,"props":8091,"children":8092},{"class":2026,"line":170},[8093],{"type":1873,"tag":2024,"props":8094,"children":8095},{"emptyLinePlaceholder":232},[8096],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8098,"children":8099},{"class":2026,"line":174},[8100,8105],{"type":1873,"tag":2024,"props":8101,"children":8102},{"style":2030},[8103],{"type":1878,"value":8104}," do",{"type":1873,"tag":2024,"props":8106,"children":8107},{"style":2041},[8108],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":8110,"children":8111},{"class":2026,"line":178},[8112,8117,8121,8125,8129,8133,8137,8141],{"type":1873,"tag":2024,"props":8113,"children":8114},{"style":2041},[8115],{"type":1878,"value":8116}," result ",{"type":1873,"tag":2024,"props":8118,"children":8119},{"style":2030},[8120],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8122,"children":8123},{"style":2569},[8124],{"type":1878,"value":7331},{"type":1873,"tag":2024,"props":8126,"children":8127},{"style":2041},[8128],{"type":1878,"value":5483},{"type":1873,"tag":2024,"props":8130,"children":8131},{"style":2030},[8132],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":8134,"children":8135},{"style":2041},[8136],{"type":1878,"value":7344},{"type":1873,"tag":2024,"props":8138,"children":8139},{"style":2030},[8140],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":8142,"children":8143},{"style":2041},[8144],{"type":1878,"value":7353},{"type":1873,"tag":2024,"props":8146,"children":8147},{"class":2026,"line":182},[8148],{"type":1873,"tag":2024,"props":8149,"children":8150},{"emptyLinePlaceholder":232},[8151],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8153,"children":8154},{"class":2026,"line":186},[8155,8160,8164,8168],{"type":1873,"tag":2024,"props":8156,"children":8157},{"style":2030},[8158],{"type":1878,"value":8159}," if",{"type":1873,"tag":2024,"props":8161,"children":8162},{"style":2041},[8163],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":8165,"children":8166},{"style":2030},[8167],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":8169,"children":8170},{"style":2041},[8171],{"type":1878,"value":7015},{"type":1873,"tag":2024,"props":8173,"children":8174},{"class":2026,"line":190},[8175],{"type":1873,"tag":2024,"props":8176,"children":8177},{"style":3406},[8178],{"type":1878,"value":8179}," // Handle error\n",{"type":1873,"tag":2024,"props":8181,"children":8182},{"class":2026,"line":194},[8183],{"type":1873,"tag":2024,"props":8184,"children":8185},{"style":3406},[8186],{"type":1878,"value":8187}," // (...)\n",{"type":1873,"tag":2024,"props":8189,"children":8190},{"class":2026,"line":198},[8191],{"type":1873,"tag":2024,"props":8192,"children":8193},{"style":2041},[8194],{"type":1878,"value":8195}," }\n",{"type":1873,"tag":2024,"props":8197,"children":8198},{"class":2026,"line":202},[8199],{"type":1873,"tag":2024,"props":8200,"children":8201},{"emptyLinePlaceholder":232},[8202],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8204,"children":8205},{"class":2026,"line":206},[8206,8210,8214,8218],{"type":1873,"tag":2024,"props":8207,"children":8208},{"style":2030},[8209],{"type":1878,"value":8159},{"type":1873,"tag":2024,"props":8211,"children":8212},{"style":2041},[8213],{"type":1878,"value":7420},{"type":1873,"tag":2024,"props":8215,"children":8216},{"style":2030},[8217],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":8219,"children":8220},{"style":2041},[8221],{"type":1878,"value":7429},{"type":1873,"tag":2024,"props":8223,"children":8224},{"class":2026,"line":210},[8225,8230,8234],{"type":1873,"tag":2024,"props":8226,"children":8227},{"style":2041},[8228],{"type":1878,"value":8229}," currentTimingPropertiesCounter ",{"type":1873,"tag":2024,"props":8231,"children":8232},{"style":2030},[8233],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8235,"children":8236},{"style":2041},[8237],{"type":1878,"value":7446},{"type":1873,"tag":2024,"props":8239,"children":8240},{"class":2026,"line":214},[8241,8246,8250,8254,8258,8262,8267,8271],{"type":1873,"tag":2024,"props":8242,"children":8243},{"style":2041},[8244],{"type":1878,"value":8245}," result ",{"type":1873,"tag":2024,"props":8247,"children":8248},{"style":2030},[8249],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8251,"children":8252},{"style":2569},[8253],{"type":1878,"value":5651},{"type":1873,"tag":2024,"props":8255,"children":8256},{"style":2041},[8257],{"type":1878,"value":5656},{"type":1873,"tag":2024,"props":8259,"children":8260},{"style":2030},[8261],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":8263,"children":8264},{"style":2041},[8265],{"type":1878,"value":8266},"swapchainTimingProperties, ",{"type":1873,"tag":2024,"props":8268,"children":8269},{"style":2030},[8270],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":8272,"children":8273},{"style":2041},[8274],{"type":1878,"value":8275},"currentTimingPropertiesCounter);\n",{"type":1873,"tag":2024,"props":8277,"children":8278},{"class":2026,"line":218},[8279],{"type":1873,"tag":2024,"props":8280,"children":8281},{"emptyLinePlaceholder":232},[8282],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8284,"children":8285},{"class":2026,"line":222},[8286,8291,8295,8299],{"type":1873,"tag":2024,"props":8287,"children":8288},{"style":2030},[8289],{"type":1878,"value":8290}," if",{"type":1873,"tag":2024,"props":8292,"children":8293},{"style":2041},[8294],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":8296,"children":8297},{"style":2030},[8298],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":8300,"children":8301},{"style":2041},[8302],{"type":1878,"value":7015},{"type":1873,"tag":2024,"props":8304,"children":8305},{"class":2026,"line":226},[8306],{"type":1873,"tag":2024,"props":8307,"children":8308},{"style":3406},[8309],{"type":1878,"value":8310}," // Handle error\n",{"type":1873,"tag":2024,"props":8312,"children":8313},{"class":2026,"line":1622},[8314],{"type":1873,"tag":2024,"props":8315,"children":8316},{"style":3406},[8317],{"type":1878,"value":8318}," // (...)\n",{"type":1873,"tag":2024,"props":8320,"children":8321},{"class":2026,"line":1618},[8322],{"type":1873,"tag":2024,"props":8323,"children":8324},{"style":2041},[8325],{"type":1878,"value":8326}," }\n",{"type":1873,"tag":2024,"props":8328,"children":8329},{"class":2026,"line":1629},[8330],{"type":1873,"tag":2024,"props":8331,"children":8332},{"emptyLinePlaceholder":232},[8333],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8335,"children":8336},{"class":2026,"line":1753},[8337,8342,8346],{"type":1873,"tag":2024,"props":8338,"children":8339},{"style":2041},[8340],{"type":1878,"value":8341}," sleepDuration ",{"type":1873,"tag":2024,"props":8343,"children":8344},{"style":2030},[8345],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8347,"children":8348},{"style":2041},[8349],{"type":1878,"value":8089},{"type":1873,"tag":2024,"props":8351,"children":8352},{"class":2026,"line":1184},[8353],{"type":1873,"tag":2024,"props":8354,"children":8355},{"style":2041},[8356],{"type":1878,"value":8195},{"type":1873,"tag":2024,"props":8358,"children":8359},{"class":2026,"line":1107},[8360],{"type":1873,"tag":2024,"props":8361,"children":8362},{"emptyLinePlaceholder":232},[8363],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8365,"children":8366},{"class":2026,"line":939},[8367],{"type":1873,"tag":2024,"props":8368,"children":8369},{"style":3406},[8370],{"type":1878,"value":8371}," // Check pastTimingProperties.timeDomainsCounter as well\n",{"type":1873,"tag":2024,"props":8373,"children":8374},{"class":2026,"line":1517},[8375],{"type":1873,"tag":2024,"props":8376,"children":8377},{"style":3406},[8378],{"type":1878,"value":8379}," // (...)\n",{"type":1873,"tag":2024,"props":8381,"children":8382},{"class":2026,"line":1332},[8383],{"type":1873,"tag":2024,"props":8384,"children":8385},{"emptyLinePlaceholder":232},[8386],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8388,"children":8389},{"class":2026,"line":877},[8390,8394,8399,8404,8408],{"type":1873,"tag":2024,"props":8391,"children":8392},{"style":2030},[8393],{"type":1878,"value":8159},{"type":1873,"tag":2024,"props":8395,"children":8396},{"style":2041},[8397],{"type":1878,"value":8398}," (pastTimingProperties.presentationTimingCount ",{"type":1873,"tag":2024,"props":8400,"children":8401},{"style":2030},[8402],{"type":1878,"value":8403},">",{"type":1873,"tag":2024,"props":8405,"children":8406},{"style":2319},[8407],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8409,"children":8410},{"style":2041},[8411],{"type":1878,"value":8412},") {\n",{"type":1873,"tag":2024,"props":8414,"children":8415},{"class":2026,"line":883},[8416],{"type":1873,"tag":2024,"props":8417,"children":8418},{"style":3406},[8419],{"type":1878,"value":8420}," // We have results, break out of the loop and process them\n",{"type":1873,"tag":2024,"props":8422,"children":8423},{"class":2026,"line":922},[8424,8429],{"type":1873,"tag":2024,"props":8425,"children":8426},{"style":2030},[8427],{"type":1878,"value":8428}," break",{"type":1873,"tag":2024,"props":8430,"children":8431},{"style":2041},[8432],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":8434,"children":8435},{"class":2026,"line":427},[8436,8441,8446],{"type":1873,"tag":2024,"props":8437,"children":8438},{"style":2041},[8439],{"type":1878,"value":8440}," } ",{"type":1873,"tag":2024,"props":8442,"children":8443},{"style":2030},[8444],{"type":1878,"value":8445},"else",{"type":1873,"tag":2024,"props":8447,"children":8448},{"style":2041},[8449],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":8451,"children":8452},{"class":2026,"line":779},[8453],{"type":1873,"tag":2024,"props":8454,"children":8455},{"style":3406},[8456],{"type":1878,"value":8457}," // We do not have results yet, sleep for the refresh cycle duration\n",{"type":1873,"tag":2024,"props":8459,"children":8460},{"class":2026,"line":1211},[8461,8466],{"type":1873,"tag":2024,"props":8462,"children":8463},{"style":2569},[8464],{"type":1878,"value":8465}," SleepNS",{"type":1873,"tag":2024,"props":8467,"children":8468},{"style":2041},[8469],{"type":1878,"value":8470},"(sleepDuration);\n",{"type":1873,"tag":2024,"props":8472,"children":8473},{"class":2026,"line":1111},[8474],{"type":1873,"tag":2024,"props":8475,"children":8476},{"style":2041},[8477],{"type":1878,"value":8195},{"type":1873,"tag":2024,"props":8479,"children":8480},{"class":2026,"line":1147},[8481],{"type":1873,"tag":2024,"props":8482,"children":8483},{"emptyLinePlaceholder":232},[8484],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8486,"children":8487},{"class":2026,"line":1143},[8488,8493,8498,8502,8506,8510],{"type":1873,"tag":2024,"props":8489,"children":8490},{"style":2041},[8491],{"type":1878,"value":8492}," } ",{"type":1873,"tag":2024,"props":8494,"children":8495},{"style":2030},[8496],{"type":1878,"value":8497},"while",{"type":1873,"tag":2024,"props":8499,"children":8500},{"style":2041},[8501],{"type":1878,"value":8398},{"type":1873,"tag":2024,"props":8503,"children":8504},{"style":2030},[8505],{"type":1878,"value":6942},{"type":1873,"tag":2024,"props":8507,"children":8508},{"style":2319},[8509],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8511,"children":8512},{"style":2041},[8513],{"type":1878,"value":2629},{"type":1873,"tag":2024,"props":8515,"children":8516},{"class":2026,"line":1152},[8517],{"type":1873,"tag":2024,"props":8518,"children":8519},{"emptyLinePlaceholder":232},[8520],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8522,"children":8523},{"class":2026,"line":1150},[8524],{"type":1873,"tag":2024,"props":8525,"children":8526},{"style":3406},[8527],{"type":1878,"value":8528}," // Actually retrieve the timing results now that we know they are available\n",{"type":1873,"tag":2024,"props":8530,"children":8531},{"class":2026,"line":1477},[8532],{"type":1873,"tag":2024,"props":8533,"children":8534},{"style":3406},[8535],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":8537,"children":8538},{"class":2026,"line":1159},[8539],{"type":1873,"tag":2024,"props":8540,"children":8541},{"style":2041},[8542],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":8544,"children":8545},{"class":2026,"line":1155},[8546],{"type":1873,"tag":2024,"props":8547,"children":8548},{"emptyLinePlaceholder":232},[8549],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8551,"children":8552},{"class":2026,"line":1165},[8553],{"type":1873,"tag":2024,"props":8554,"children":8555},{"style":3406},[8556],{"type":1878,"value":5447},{"type":1873,"tag":2024,"props":8558,"children":8559},{"class":2026,"line":1161},[8560],{"type":1873,"tag":2024,"props":8561,"children":8562},{"style":2041},[8563],{"type":1878,"value":6591},{"type":1873,"tag":1997,"props":8565,"children":8567},{"id":8566},"_setting_absolute_target_present_times",[8568],{"type":1878,"value":8569},"Setting absolute target present times",{"type":1873,"tag":2013,"props":8571,"children":8573},{"className":2015,"code":8572,"language":2017,"meta":2018,"style":2018}," // See previous examples for swapchain setup and timing results retrieval\n // (...)\n uint64_t currentPresentId = 1;\n uint64_t lastResultPresentId = 0;\n uint64_t lastResultPresentTime = 0;\n uint64_t targetIPD = defaultPresentDuration;\n\n while (presenting) {\n uint64_t targetPresentTime;\n\n if (lastResultDequeuedTime != 0) {\n targetPresentTime = lastResultDequeuedTime + (currentPresentId - lastResultPresentId) * targetIPD;\n } else {\n targetPresentTime = 0; // Present ASAP until we have a baseline\n }\n\n // Render & Present\n // Note: make sure the rendering is doing a world simulation step that matches the targetIPD\n // (...)\n\n VkPresentTimingInfoEXT presentTimingInfo = {\n .sType = VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT,\n .pNext = NULL,\n .flags = VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT,\n .targetTime = targetPresentTime,\n .timeDomainId = timeDomainId,\n .presentStageQueries = VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT\n };\n\n VkPresentTimingsInfoEXT presentTimingsInfo = {\n .sType = VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT,\n .pNext = NULL,\n .swapchainCount = 1,\n .pTimingInfos = &presentTimingInfo\n };\n\n presentInfoTail.pNext = &presentTimingsInfo;\n\n result = vkQueuePresentKHR(...);\n\n if (result != VK_SUCCESS) {\n // Handle error\n // (...)\n }\n\n result = vkGetPastPresentationTimingEXT(device, &pastTimingInfo, &pastTimingProperties);\n\n if (result != VK_SUCCESS) {\n // Handle error\n // (...)\n }\n\n // Analyze the timing results and adjust targetIPD if needed\n // (...)\n\n currentPresentId++;\n }\n",[8574],{"type":1873,"tag":1931,"props":8575,"children":8576},{"__ignoreMap":2018},[8577,8585,8592,8616,8640,8664,8685,8692,8703,8716,8723,8747,8792,8808,8833,8840,8847,8854,8862,8869,8876,8892,8907,8926,8942,8958,8973,8989,8996,9003,9018,9033,9052,9071,9091,9098,9105,9124,9131,9150,9157,9176,9183,9190,9197,9204,9239,9246,9265,9272,9279,9286,9293,9301,9308,9315,9331],{"type":1873,"tag":2024,"props":8578,"children":8579},{"class":2026,"line":10},[8580],{"type":1873,"tag":2024,"props":8581,"children":8582},{"style":3406},[8583],{"type":1878,"value":8584}," // See previous examples for swapchain setup and timing results retrieval\n",{"type":1873,"tag":2024,"props":8586,"children":8587},{"class":2026,"line":14},[8588],{"type":1873,"tag":2024,"props":8589,"children":8590},{"style":3406},[8591],{"type":1878,"value":5355},{"type":1873,"tag":2024,"props":8593,"children":8594},{"class":2026,"line":18},[8595,8599,8604,8608,8612],{"type":1873,"tag":2024,"props":8596,"children":8597},{"style":2030},[8598],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":8600,"children":8601},{"style":2041},[8602],{"type":1878,"value":8603}," currentPresentId ",{"type":1873,"tag":2024,"props":8605,"children":8606},{"style":2030},[8607],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8609,"children":8610},{"style":2319},[8611],{"type":1878,"value":6836},{"type":1873,"tag":2024,"props":8613,"children":8614},{"style":2041},[8615],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":8617,"children":8618},{"class":2026,"line":22},[8619,8623,8628,8632,8636],{"type":1873,"tag":2024,"props":8620,"children":8621},{"style":2030},[8622],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":8624,"children":8625},{"style":2041},[8626],{"type":1878,"value":8627}," lastResultPresentId ",{"type":1873,"tag":2024,"props":8629,"children":8630},{"style":2030},[8631],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8633,"children":8634},{"style":2319},[8635],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8637,"children":8638},{"style":2041},[8639],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":8641,"children":8642},{"class":2026,"line":26},[8643,8647,8652,8656,8660],{"type":1873,"tag":2024,"props":8644,"children":8645},{"style":2030},[8646],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":8648,"children":8649},{"style":2041},[8650],{"type":1878,"value":8651}," lastResultPresentTime ",{"type":1873,"tag":2024,"props":8653,"children":8654},{"style":2030},[8655],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8657,"children":8658},{"style":2319},[8659],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8661,"children":8662},{"style":2041},[8663],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":8665,"children":8666},{"class":2026,"line":30},[8667,8671,8676,8680],{"type":1873,"tag":2024,"props":8668,"children":8669},{"style":2030},[8670],{"type":1878,"value":2892},{"type":1873,"tag":2024,"props":8672,"children":8673},{"style":2041},[8674],{"type":1878,"value":8675}," targetIPD ",{"type":1873,"tag":2024,"props":8677,"children":8678},{"style":2030},[8679],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8681,"children":8682},{"style":2041},[8683],{"type":1878,"value":8684}," defaultPresentDuration;\n",{"type":1873,"tag":2024,"props":8686,"children":8687},{"class":2026,"line":34},[8688],{"type":1873,"tag":2024,"props":8689,"children":8690},{"emptyLinePlaceholder":232},[8691],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8693,"children":8694},{"class":2026,"line":38},[8695,8699],{"type":1873,"tag":2024,"props":8696,"children":8697},{"style":2030},[8698],{"type":1878,"value":6606},{"type":1873,"tag":2024,"props":8700,"children":8701},{"style":2041},[8702],{"type":1878,"value":6611},{"type":1873,"tag":2024,"props":8704,"children":8705},{"class":2026,"line":42},[8706,8711],{"type":1873,"tag":2024,"props":8707,"children":8708},{"style":2030},[8709],{"type":1878,"value":8710}," uint64_t",{"type":1873,"tag":2024,"props":8712,"children":8713},{"style":2041},[8714],{"type":1878,"value":8715}," targetPresentTime;\n",{"type":1873,"tag":2024,"props":8717,"children":8718},{"class":2026,"line":46},[8719],{"type":1873,"tag":2024,"props":8720,"children":8721},{"emptyLinePlaceholder":232},[8722],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8724,"children":8725},{"class":2026,"line":50},[8726,8730,8735,8739,8743],{"type":1873,"tag":2024,"props":8727,"children":8728},{"style":2030},[8729],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":8731,"children":8732},{"style":2041},[8733],{"type":1878,"value":8734}," (lastResultDequeuedTime ",{"type":1873,"tag":2024,"props":8736,"children":8737},{"style":2030},[8738],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":8740,"children":8741},{"style":2319},[8742],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8744,"children":8745},{"style":2041},[8746],{"type":1878,"value":8412},{"type":1873,"tag":2024,"props":8748,"children":8749},{"class":2026,"line":54},[8750,8755,8759,8764,8768,8773,8778,8783,8787],{"type":1873,"tag":2024,"props":8751,"children":8752},{"style":2041},[8753],{"type":1878,"value":8754}," targetPresentTime ",{"type":1873,"tag":2024,"props":8756,"children":8757},{"style":2030},[8758],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8760,"children":8761},{"style":2041},[8762],{"type":1878,"value":8763}," lastResultDequeuedTime ",{"type":1873,"tag":2024,"props":8765,"children":8766},{"style":2030},[8767],{"type":1878,"value":6570},{"type":1873,"tag":2024,"props":8769,"children":8770},{"style":2041},[8771],{"type":1878,"value":8772}," (currentPresentId ",{"type":1873,"tag":2024,"props":8774,"children":8775},{"style":2030},[8776],{"type":1878,"value":8777},"-",{"type":1873,"tag":2024,"props":8779,"children":8780},{"style":2041},[8781],{"type":1878,"value":8782}," lastResultPresentId) ",{"type":1873,"tag":2024,"props":8784,"children":8785},{"style":2030},[8786],{"type":1878,"value":2754},{"type":1873,"tag":2024,"props":8788,"children":8789},{"style":2041},[8790],{"type":1878,"value":8791}," targetIPD;\n",{"type":1873,"tag":2024,"props":8793,"children":8794},{"class":2026,"line":58},[8795,8800,8804],{"type":1873,"tag":2024,"props":8796,"children":8797},{"style":2041},[8798],{"type":1878,"value":8799}," } ",{"type":1873,"tag":2024,"props":8801,"children":8802},{"style":2030},[8803],{"type":1878,"value":8445},{"type":1873,"tag":2024,"props":8805,"children":8806},{"style":2041},[8807],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":8809,"children":8810},{"class":2026,"line":62},[8811,8815,8819,8823,8828],{"type":1873,"tag":2024,"props":8812,"children":8813},{"style":2041},[8814],{"type":1878,"value":8754},{"type":1873,"tag":2024,"props":8816,"children":8817},{"style":2030},[8818],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8820,"children":8821},{"style":2319},[8822],{"type":1878,"value":5630},{"type":1873,"tag":2024,"props":8824,"children":8825},{"style":2041},[8826],{"type":1878,"value":8827},";",{"type":1873,"tag":2024,"props":8829,"children":8830},{"style":3406},[8831],{"type":1878,"value":8832}," // Present ASAP until we have a baseline\n",{"type":1873,"tag":2024,"props":8834,"children":8835},{"class":2026,"line":66},[8836],{"type":1873,"tag":2024,"props":8837,"children":8838},{"style":2041},[8839],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":8841,"children":8842},{"class":2026,"line":70},[8843],{"type":1873,"tag":2024,"props":8844,"children":8845},{"emptyLinePlaceholder":232},[8846],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8848,"children":8849},{"class":2026,"line":74},[8850],{"type":1873,"tag":2024,"props":8851,"children":8852},{"style":3406},[8853],{"type":1878,"value":6619},{"type":1873,"tag":2024,"props":8855,"children":8856},{"class":2026,"line":78},[8857],{"type":1873,"tag":2024,"props":8858,"children":8859},{"style":3406},[8860],{"type":1878,"value":8861}," // Note: make sure the rendering is doing a world simulation step that matches the targetIPD\n",{"type":1873,"tag":2024,"props":8863,"children":8864},{"class":2026,"line":82},[8865],{"type":1873,"tag":2024,"props":8866,"children":8867},{"style":3406},[8868],{"type":1878,"value":5447},{"type":1873,"tag":2024,"props":8870,"children":8871},{"class":2026,"line":86},[8872],{"type":1873,"tag":2024,"props":8873,"children":8874},{"emptyLinePlaceholder":232},[8875],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":8877,"children":8878},{"class":2026,"line":90},[8879,8884,8888],{"type":1873,"tag":2024,"props":8880,"children":8881},{"style":2041},[8882],{"type":1878,"value":8883}," VkPresentTimingInfoEXT presentTimingInfo ",{"type":1873,"tag":2024,"props":8885,"children":8886},{"style":2030},[8887],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8889,"children":8890},{"style":2041},[8891],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":8893,"children":8894},{"class":2026,"line":94},[8895,8899,8903],{"type":1873,"tag":2024,"props":8896,"children":8897},{"style":2041},[8898],{"type":1878,"value":6650},{"type":1873,"tag":2024,"props":8900,"children":8901},{"style":2030},[8902],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8904,"children":8905},{"style":2041},[8906],{"type":1878,"value":6659},{"type":1873,"tag":2024,"props":8908,"children":8909},{"class":2026,"line":98},[8910,8914,8918,8922],{"type":1873,"tag":2024,"props":8911,"children":8912},{"style":2041},[8913],{"type":1878,"value":6667},{"type":1873,"tag":2024,"props":8915,"children":8916},{"style":2030},[8917],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8919,"children":8920},{"style":2319},[8921],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":8923,"children":8924},{"style":2041},[8925],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":8927,"children":8928},{"class":2026,"line":102},[8929,8933,8937],{"type":1873,"tag":2024,"props":8930,"children":8931},{"style":2041},[8932],{"type":1878,"value":6687},{"type":1873,"tag":2024,"props":8934,"children":8935},{"style":2030},[8936],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8938,"children":8939},{"style":2041},[8940],{"type":1878,"value":8941}," VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT,\n",{"type":1873,"tag":2024,"props":8943,"children":8944},{"class":2026,"line":106},[8945,8949,8953],{"type":1873,"tag":2024,"props":8946,"children":8947},{"style":2041},[8948],{"type":1878,"value":6707},{"type":1873,"tag":2024,"props":8950,"children":8951},{"style":2030},[8952],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8954,"children":8955},{"style":2041},[8956],{"type":1878,"value":8957}," targetPresentTime,\n",{"type":1873,"tag":2024,"props":8959,"children":8960},{"class":2026,"line":110},[8961,8965,8969],{"type":1873,"tag":2024,"props":8962,"children":8963},{"style":2041},[8964],{"type":1878,"value":6727},{"type":1873,"tag":2024,"props":8966,"children":8967},{"style":2030},[8968],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8970,"children":8971},{"style":2041},[8972],{"type":1878,"value":6736},{"type":1873,"tag":2024,"props":8974,"children":8975},{"class":2026,"line":114},[8976,8980,8984],{"type":1873,"tag":2024,"props":8977,"children":8978},{"style":2041},[8979],{"type":1878,"value":6744},{"type":1873,"tag":2024,"props":8981,"children":8982},{"style":2030},[8983],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":8985,"children":8986},{"style":2041},[8987],{"type":1878,"value":8988}," VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT\n",{"type":1873,"tag":2024,"props":8990,"children":8991},{"class":2026,"line":118},[8992],{"type":1873,"tag":2024,"props":8993,"children":8994},{"style":2041},[8995],{"type":1878,"value":6761},{"type":1873,"tag":2024,"props":8997,"children":8998},{"class":2026,"line":122},[8999],{"type":1873,"tag":2024,"props":9000,"children":9001},{"emptyLinePlaceholder":232},[9002],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9004,"children":9005},{"class":2026,"line":126},[9006,9010,9014],{"type":1873,"tag":2024,"props":9007,"children":9008},{"style":2041},[9009],{"type":1878,"value":6776},{"type":1873,"tag":2024,"props":9011,"children":9012},{"style":2030},[9013],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9015,"children":9016},{"style":2041},[9017],{"type":1878,"value":5205},{"type":1873,"tag":2024,"props":9019,"children":9020},{"class":2026,"line":130},[9021,9025,9029],{"type":1873,"tag":2024,"props":9022,"children":9023},{"style":2041},[9024],{"type":1878,"value":6650},{"type":1873,"tag":2024,"props":9026,"children":9027},{"style":2030},[9028],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9030,"children":9031},{"style":2041},[9032],{"type":1878,"value":6800},{"type":1873,"tag":2024,"props":9034,"children":9035},{"class":2026,"line":134},[9036,9040,9044,9048],{"type":1873,"tag":2024,"props":9037,"children":9038},{"style":2041},[9039],{"type":1878,"value":6667},{"type":1873,"tag":2024,"props":9041,"children":9042},{"style":2030},[9043],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9045,"children":9046},{"style":2319},[9047],{"type":1878,"value":5418},{"type":1873,"tag":2024,"props":9049,"children":9050},{"style":2041},[9051],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":9053,"children":9054},{"class":2026,"line":138},[9055,9059,9063,9067],{"type":1873,"tag":2024,"props":9056,"children":9057},{"style":2041},[9058],{"type":1878,"value":6827},{"type":1873,"tag":2024,"props":9060,"children":9061},{"style":2030},[9062],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9064,"children":9065},{"style":2319},[9066],{"type":1878,"value":6836},{"type":1873,"tag":2024,"props":9068,"children":9069},{"style":2041},[9070],{"type":1878,"value":2327},{"type":1873,"tag":2024,"props":9072,"children":9073},{"class":2026,"line":142},[9074,9078,9082,9086],{"type":1873,"tag":2024,"props":9075,"children":9076},{"style":2041},[9077],{"type":1878,"value":6848},{"type":1873,"tag":2024,"props":9079,"children":9080},{"style":2030},[9081],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9083,"children":9084},{"style":2030},[9085],{"type":1878,"value":5286},{"type":1873,"tag":2024,"props":9087,"children":9088},{"style":2041},[9089],{"type":1878,"value":9090},"presentTimingInfo\n",{"type":1873,"tag":2024,"props":9092,"children":9093},{"class":2026,"line":146},[9094],{"type":1873,"tag":2024,"props":9095,"children":9096},{"style":2041},[9097],{"type":1878,"value":6761},{"type":1873,"tag":2024,"props":9099,"children":9100},{"class":2026,"line":150},[9101],{"type":1873,"tag":2024,"props":9102,"children":9103},{"emptyLinePlaceholder":232},[9104],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9106,"children":9107},{"class":2026,"line":154},[9108,9112,9116,9120],{"type":1873,"tag":2024,"props":9109,"children":9110},{"style":2041},[9111],{"type":1878,"value":6883},{"type":1873,"tag":2024,"props":9113,"children":9114},{"style":2030},[9115],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9117,"children":9118},{"style":2030},[9119],{"type":1878,"value":5286},{"type":1873,"tag":2024,"props":9121,"children":9122},{"style":2041},[9123],{"type":1878,"value":6896},{"type":1873,"tag":2024,"props":9125,"children":9126},{"class":2026,"line":158},[9127],{"type":1873,"tag":2024,"props":9128,"children":9129},{"emptyLinePlaceholder":232},[9130],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9132,"children":9133},{"class":2026,"line":162},[9134,9138,9142,9146],{"type":1873,"tag":2024,"props":9135,"children":9136},{"style":2041},[9137],{"type":1878,"value":6904},{"type":1873,"tag":2024,"props":9139,"children":9140},{"style":2030},[9141],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9143,"children":9144},{"style":2569},[9145],{"type":1878,"value":6913},{"type":1873,"tag":2024,"props":9147,"children":9148},{"style":2041},[9149],{"type":1878,"value":6215},{"type":1873,"tag":2024,"props":9151,"children":9152},{"class":2026,"line":166},[9153],{"type":1873,"tag":2024,"props":9154,"children":9155},{"emptyLinePlaceholder":232},[9156],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9158,"children":9159},{"class":2026,"line":170},[9160,9164,9168,9172],{"type":1873,"tag":2024,"props":9161,"children":9162},{"style":2030},[9163],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":9165,"children":9166},{"style":2041},[9167],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":9169,"children":9170},{"style":2030},[9171],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":9173,"children":9174},{"style":2041},[9175],{"type":1878,"value":7015},{"type":1873,"tag":2024,"props":9177,"children":9178},{"class":2026,"line":174},[9179],{"type":1873,"tag":2024,"props":9180,"children":9181},{"style":3406},[9182],{"type":1878,"value":7387},{"type":1873,"tag":2024,"props":9184,"children":9185},{"class":2026,"line":178},[9186],{"type":1873,"tag":2024,"props":9187,"children":9188},{"style":3406},[9189],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":9191,"children":9192},{"class":2026,"line":182},[9193],{"type":1873,"tag":2024,"props":9194,"children":9195},{"style":2041},[9196],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":9198,"children":9199},{"class":2026,"line":186},[9200],{"type":1873,"tag":2024,"props":9201,"children":9202},{"emptyLinePlaceholder":232},[9203],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9205,"children":9206},{"class":2026,"line":190},[9207,9211,9215,9219,9223,9227,9231,9235],{"type":1873,"tag":2024,"props":9208,"children":9209},{"style":2041},[9210],{"type":1878,"value":6904},{"type":1873,"tag":2024,"props":9212,"children":9213},{"style":2030},[9214],{"type":1878,"value":2311},{"type":1873,"tag":2024,"props":9216,"children":9217},{"style":2569},[9218],{"type":1878,"value":7331},{"type":1873,"tag":2024,"props":9220,"children":9221},{"style":2041},[9222],{"type":1878,"value":5483},{"type":1873,"tag":2024,"props":9224,"children":9225},{"style":2030},[9226],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":9228,"children":9229},{"style":2041},[9230],{"type":1878,"value":7344},{"type":1873,"tag":2024,"props":9232,"children":9233},{"style":2030},[9234],{"type":1878,"value":5323},{"type":1873,"tag":2024,"props":9236,"children":9237},{"style":2041},[9238],{"type":1878,"value":7353},{"type":1873,"tag":2024,"props":9240,"children":9241},{"class":2026,"line":194},[9242],{"type":1873,"tag":2024,"props":9243,"children":9244},{"emptyLinePlaceholder":232},[9245],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9247,"children":9248},{"class":2026,"line":198},[9249,9253,9257,9261],{"type":1873,"tag":2024,"props":9250,"children":9251},{"style":2030},[9252],{"type":1878,"value":6932},{"type":1873,"tag":2024,"props":9254,"children":9255},{"style":2041},[9256],{"type":1878,"value":6937},{"type":1873,"tag":2024,"props":9258,"children":9259},{"style":2030},[9260],{"type":1878,"value":7010},{"type":1873,"tag":2024,"props":9262,"children":9263},{"style":2041},[9264],{"type":1878,"value":7015},{"type":1873,"tag":2024,"props":9266,"children":9267},{"class":2026,"line":202},[9268],{"type":1873,"tag":2024,"props":9269,"children":9270},{"style":3406},[9271],{"type":1878,"value":7387},{"type":1873,"tag":2024,"props":9273,"children":9274},{"class":2026,"line":206},[9275],{"type":1873,"tag":2024,"props":9276,"children":9277},{"style":3406},[9278],{"type":1878,"value":6979},{"type":1873,"tag":2024,"props":9280,"children":9281},{"class":2026,"line":210},[9282],{"type":1873,"tag":2024,"props":9283,"children":9284},{"style":2041},[9285],{"type":1878,"value":6987},{"type":1873,"tag":2024,"props":9287,"children":9288},{"class":2026,"line":214},[9289],{"type":1873,"tag":2024,"props":9290,"children":9291},{"emptyLinePlaceholder":232},[9292],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9294,"children":9295},{"class":2026,"line":218},[9296],{"type":1873,"tag":2024,"props":9297,"children":9298},{"style":3406},[9299],{"type":1878,"value":9300}," // Analyze the timing results and adjust targetIPD if needed\n",{"type":1873,"tag":2024,"props":9302,"children":9303},{"class":2026,"line":222},[9304],{"type":1873,"tag":2024,"props":9305,"children":9306},{"style":3406},[9307],{"type":1878,"value":5447},{"type":1873,"tag":2024,"props":9309,"children":9310},{"class":2026,"line":226},[9311],{"type":1873,"tag":2024,"props":9312,"children":9313},{"emptyLinePlaceholder":232},[9314],{"type":1878,"value":4287},{"type":1873,"tag":2024,"props":9316,"children":9317},{"class":2026,"line":1622},[9318,9323,9327],{"type":1873,"tag":2024,"props":9319,"children":9320},{"style":2041},[9321],{"type":1878,"value":9322}," currentPresentId",{"type":1873,"tag":2024,"props":9324,"children":9325},{"style":2030},[9326],{"type":1878,"value":6493},{"type":1873,"tag":2024,"props":9328,"children":9329},{"style":2041},[9330],{"type":1878,"value":5635},{"type":1873,"tag":2024,"props":9332,"children":9333},{"class":2026,"line":1618},[9334],{"type":1873,"tag":2024,"props":9335,"children":9336},{"style":2041},[9337],{"type":1878,"value":6591},{"type":1873,"tag":1880,"props":9339,"children":9341},{"id":9340},"_issues",[9342],{"type":1878,"value":9343},"Issues",{"type":1873,"tag":1997,"props":9345,"children":9347},{"id":9346},"_what_are_the_key_differences_to_vk_google_display_timing",[9348,9350,9355],{"type":1878,"value":9349},"What are the key differences to ",{"type":1873,"tag":1931,"props":9351,"children":9353},{"className":9352},[],[9354],{"type":1878,"value":996},{"type":1878,"value":9356},"?",{"type":1873,"tag":1874,"props":9358,"children":9359},{},[9360,9362,9367],{"type":1878,"value":9361},"The major API changes from ",{"type":1873,"tag":1931,"props":9363,"children":9365},{"className":9364},[],[9366],{"type":1878,"value":996},{"type":1878,"value":9368}," are:",{"type":1873,"tag":1918,"props":9370,"children":9371},{},[9372,9382,9394,9399,9404,9409,9414],{"type":1873,"tag":1922,"props":9373,"children":9374},{},[9375,9377],{"type":1878,"value":9376},"Introduction of present stages with ",{"type":1873,"tag":1931,"props":9378,"children":9380},{"className":9379},[],[9381],{"type":1878,"value":3615},{"type":1873,"tag":1922,"props":9383,"children":9384},{},[9385,9387,9392],{"type":1878,"value":9386},"Rely on ",{"type":1873,"tag":1931,"props":9388,"children":9390},{"className":9389},[],[9391],{"type":1878,"value":1278},{"type":1878,"value":9393}," to specify present Ids",{"type":1873,"tag":1922,"props":9395,"children":9396},{},[9397],{"type":1878,"value":9398},"Expose features in physical device and surface features",{"type":1873,"tag":1922,"props":9400,"children":9401},{},[9402],{"type":1878,"value":9403},"Variable refresh rate indicator",{"type":1873,"tag":1922,"props":9405,"children":9406},{},[9407],{"type":1878,"value":9408},"Progressive timings feedback",{"type":1873,"tag":1922,"props":9410,"children":9411},{},[9412],{"type":1878,"value":9413},"Allow time domain selection, with new opaque domains dedicated to swapchains",{"type":1873,"tag":1922,"props":9415,"children":9416},{},[9417],{"type":1878,"value":9418},"Allow for relative present times",{"type":1873,"tag":1874,"props":9420,"children":9421},{},[9422,9424,9429],{"type":1878,"value":9423},"Compared to ",{"type":1873,"tag":1931,"props":9425,"children":9427},{"className":9426},[],[9428],{"type":1878,"value":996},{"type":1878,"value":9430},", stricter specification language is also used to allow for more consistent and wider adoption among implementors.",{"type":1873,"tag":1997,"props":9432,"children":9434},{"id":9433},"_how_does_the_application_choose_the_internal_queue_size_to_pass_in_vksetswapchainpresenttimingqueuesize",[9435,9437,9443],{"type":1878,"value":9436},"How does the application choose the internal queue size to pass in ",{"type":1873,"tag":1931,"props":9438,"children":9440},{"className":9439},[],[9441],{"type":1878,"value":9442},"vkSetSwapchainPresentTimingQueueSize",{"type":1878,"value":9356},{"type":1873,"tag":1874,"props":9445,"children":9446},{},[9447],{"type":1878,"value":9448},"Use reasonable default values, such as a multiple of the swapchain image count.",{"type":1873,"tag":1874,"props":9450,"children":9451},{},[9452],{"type":1878,"value":9453},"Because presenting when the swapchain’s internal timing queue is full is considered an error, the latency of the timing results effectively can end up throttling the present rate if the internal queue is small enough. The topology of the presentation engine being generally opaque to applications, there is no indication of the feedback latency before the application starts presenting.",{"type":1873,"tag":1874,"props":9455,"children":9456},{},[9457],{"type":1878,"value":9458},"Applications which run into feedback latency issues can resize the internal timing queue.",{"type":1873,"tag":1997,"props":9460,"children":9462},{"id":9461},"_do_we_need_an_api_to_synchronously_wait_for_present_timing_feedback",[9463],{"type":1878,"value":9464},"Do we need an API to synchronously wait for present timing feedback?",{"type":1873,"tag":1874,"props":9466,"children":9467},{},[9468],{"type":1878,"value":9469},"No, because some implementations cannot provide a synchronous wait on those results. However, allow applications to call vkGetPastPresentationTimingEXT without external synchronization.",{"type":1873,"tag":1997,"props":9471,"children":9473},{"id":9472},"_proposed_how_do_we_handle_dynamic_surface_properties_updates",[9474],{"type":1878,"value":9475},"PROPOSED: How do we handle dynamic surface properties updates?",{"type":1873,"tag":1874,"props":9477,"children":9478},{},[9479,9484,9486,9491,9493,9498],{"type":1873,"tag":1931,"props":9480,"children":9482},{"className":9481},[],[9483],{"type":1878,"value":2166},{"type":1878,"value":9485}," objects capabilities are dynamic and can respond to a lot of different events. For example, when an application user moves a window to another monitor, it is possible for the underlying surface’s capabilities to change. In the context of this extension, this means that some of the parameters set in a ",{"type":1873,"tag":1931,"props":9487,"children":9489},{"className":9488},[],[9490],{"type":1878,"value":4494},{"type":1878,"value":9492}," struct and passed to ",{"type":1873,"tag":1931,"props":9494,"children":9496},{"className":9495},[],[9497],{"type":1878,"value":2136},{"type":1878,"value":9499},", for example, may not be valid by the time the presentation engine processes the presentation request.\nThe implementation must thus be able to handle parameters that have become invalid without the application’s knowledge. In those cases, the specification provides sane \"fallback\" behaviors, e.g. reporting timestamps in a different time domain, reporting 0 values when unavailable, etc.",{"type":1873,"tag":1997,"props":9501,"children":9503},{"id":9502},"_proposed_how_are_dropped_presentation_requests_handled",[9504],{"type":1878,"value":9505},"PROPOSED: How are dropped presentation requests handled?",{"type":1873,"tag":1874,"props":9507,"children":9508},{},[9509,9511,9516],{"type":1878,"value":9510},"Implementations will return a time of 0 for all present stages that occur after the request is dropped. In the future, ",{"type":1873,"tag":1931,"props":9512,"children":9514},{"className":9513},[],[9515],{"type":1878,"value":4226},{"type":1878,"value":9517}," could be extended to include a flag or status bitfield to indicate the reason the request was dropped.",{"type":1873,"tag":1997,"props":9519,"children":9521},{"id":9520},"_proposed_how_do_different_variable_refresh_rate_technologies_interact_with_this_extension",[9522],{"type":1878,"value":9523},"PROPOSED: How do different variable refresh rate technologies interact with this extension?",{"type":1873,"tag":1874,"props":9525,"children":9526},{},[9527,9529,9534],{"type":1878,"value":9528},"Expose multiple durations in ",{"type":1873,"tag":1931,"props":9530,"children":9532},{"className":9531},[],[9533],{"type":1878,"value":2686},{"type":1878,"value":9535}," to describe the variable refresh rate properties of the swapchain. One value is the minimum refresh cycle duration, while the other is the granularity at which the refresh cycle duration can be adjusted when presenting. This allows to support FRR, VRR, and, at least partially, Adaptive Refresh Rate (ARR) technologies. Note these values only reflect the current swapchain’s behavior, and may be different from the actual display hardware capabilities, which need to be queried separately.",{"type":1873,"tag":1997,"props":9537,"children":9539},{"id":9538},"_proposed_how_does_an_application_adjust_its_ipd_to_match_the_swapchains_refresh_rate",[9540],{"type":1878,"value":9541},"PROPOSED: How does an application adjust its IPD to match the swapchain’s refresh rate?",{"type":1873,"tag":1874,"props":9543,"children":9544},{},[9545],{"type":1878,"value":9546},"Applications can know if they are presenting late by comparing a presentation request’s timing results against their corresponding target present time.",{"type":1873,"tag":1874,"props":9548,"children":9549},{},[9550,9552,9557,9558,9563],{"type":1878,"value":9551},"If images are consistently presented at their desired present time, applications can query results for the ",{"type":1873,"tag":1931,"props":9553,"children":9555},{"className":9554},[],[9556],{"type":1878,"value":2434},{"type":1878,"value":1937},{"type":1873,"tag":1931,"props":9559,"children":9561},{"className":9560},[],[9562],{"type":1878,"value":2460},{"type":1878,"value":9564}," stages, and subtract those values to get an estimate of how early presentation requests are. Applications can adjust their IPD or device workload in consequence.",{"type":1873,"tag":9566,"props":9567,"children":9568},"style",{},[9569],{"type":1878,"value":9570},"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":2018,"searchDepth":14,"depth":14,"links":9572},[9573,9574,9575,9583,9590],{"id":1882,"depth":14,"text":1885},{"id":1908,"depth":14,"text":1911},{"id":1992,"depth":14,"text":1995,"children":9576},[9577,9578,9579,9580,9581,9582],{"id":1999,"depth":18,"text":211},{"id":2262,"depth":18,"text":2269},{"id":2523,"depth":18,"text":2526},{"id":2665,"depth":18,"text":2668},{"id":2421,"depth":18,"text":3653},{"id":2153,"depth":18,"text":4633},{"id":5165,"depth":14,"text":5168,"children":9584},[9585,9586,9587,9589],{"id":5171,"depth":18,"text":2526},{"id":6172,"depth":18,"text":6175},{"id":7586,"depth":18,"text":9588},"Handling VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT: waiting for results",{"id":8566,"depth":18,"text":8569},{"id":9340,"depth":14,"text":9343,"children":9591},[9592,9594,9596,9597,9598,9599,9600],{"id":9346,"depth":18,"text":9593},"What are the key differences to VK_GOOGLE_display_timing?",{"id":9433,"depth":18,"text":9595},"How does the application choose the internal queue size to pass in vkSetSwapchainPresentTimingQueueSize?",{"id":9461,"depth":18,"text":9464},{"id":9472,"depth":18,"text":9475},{"id":9502,"depth":18,"text":9505},{"id":9520,"depth":18,"text":9523},{"id":9538,"depth":18,"text":9541},"markdown",1773121690432]