[{"data":1,"prerenderedAt":6557},["ShallowReactive",2],{"$flTTP1ACxoY3JWxDGBY-XekRsZsxpvIpMBaq215gW9ag":3,"$fGGa3jm2fyiZgwLdx4RmmiEvaouuONKLYoKH9T7IQulI":263,"$fl1txVpaN_RP__XjLdxWCTrRW2QmD2ck1eoTxc-SaTTI":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":167,"description":1867,"body":1868,"_type":6555,"_id":6556},"",{"type":1869,"children":1870,"toc":6543},"root",[1871,1878,1885,1899,1904,1909,1914,1921,1926,1935,1940,2495,2500,2513,2518,2524,2529,2549,2562,2567,3038,3043,3048,3053,3058,3063,3068,3073,3078,3083,3088,3093,3098,3104,3109,3127,3132,3138,3145,3150,3281,3286,3291,3487,3492,3501,3506,3524,3529,3552,3557,3562,3567,3576,3581,3586,3956,3962,3967,4000,4005,4011,4016,4021,4034,4047,4052,4070,4076,4089,4195,4208,4220,4233,4238,4243,4291,4296,4857,4863,4876,4881,4886,5083,5096,5101,5107,5128,5163,5168,5219,5231,5522,5527,5822,5827,6521,6527,6532,6537],{"type":1872,"tag":1873,"props":1874,"children":1875},"element","h1",{"id":168},[1876],{"type":1877,"value":167},"text",{"type":1872,"tag":1879,"props":1880,"children":1882},"h2",{"id":1881},"dense-geometry-format",[1883],{"type":1877,"value":1884},"Dense Geometry Format Version 1 (DGF1)",{"type":1872,"tag":1886,"props":1887,"children":1888},"p",{},[1889,1891,1897],{"type":1877,"value":1890},"The provisional ",{"type":1872,"tag":1892,"props":1893,"children":1895},"a",{"href":1894},"/extensions/VK_AMDX_dense_geometry_format",[1896],{"type":1877,"value":271},{"type":1877,"value":1898}," extension provides a\nway for applications to build acceleration structures from pre-compressed\nDense Geometry Format (DGF) triangle geometry data, enabling improved build\ntimes and reducing both the storage required on disk and the memory\nfootprint of acceleration structures.",{"type":1872,"tag":1886,"props":1900,"children":1901},{},[1902],{"type":1877,"value":1903},"The dense geometry format consists of an array of 128B blocks that encode\ntriangle data.\nEach block holds a maximum of 64 triangles and 64 vertices.",{"type":1872,"tag":1886,"props":1905,"children":1906},{},[1907],{"type":1877,"value":1908},"It is expected that applications will construct DGF content by partitioning\nmeshes into small, spatially localized triangle sets, and attempting to pack\neach set into a minimal number of DGF blocks.\nAn SAH-aware clustering strategy is crucial for good ray tracing\nperformance.\nPre-clustering the geometry in this manner greatly accelerates the\nacceleration structure build since the implementation receives an efficient\nspatial partitioning, and does not need to construct one from the original,\nlarger triangle set.",{"type":1872,"tag":1886,"props":1910,"children":1911},{},[1912],{"type":1877,"value":1913},"DGF compressors rely on the ability to reorder triangles within a mesh, and\nrotate triangle vertices in a winding-preserving way.\nThe application must post-process any sideband data which depends on these\n(shader-visible index buffers, per-triangle attributes).",{"type":1872,"tag":1915,"props":1916,"children":1918},"h3",{"id":1917},"_block_layout",[1919],{"type":1877,"value":1920},"Block Layout",{"type":1872,"tag":1886,"props":1922,"children":1923},{},[1924],{"type":1877,"value":1925},"The 128B DGF block is organized into sections as shown below:",{"type":1872,"tag":1886,"props":1927,"children":1928},{},[1929],{"type":1872,"tag":1930,"props":1931,"children":1934},"img",{"alt":1932,"src":1933,"title":1932},"DGF block layout","https://data.vkdoc.net/images/DGF_block_layout.svg",[],{"type":1872,"tag":1886,"props":1936,"children":1937},{},[1938],{"type":1877,"value":1939},"The first 5 DWORDs of a DGF block consist of a fixed header, whose structure\nis shown below.\nAll bit fields are ordered from LSB to MSB, bytes are 8 bits, and multi-byte\nfields are little endian.",{"type":1872,"tag":1941,"props":1942,"children":1946},"pre",{"className":1943,"code":1944,"language":1945,"meta":1867,"style":1867},"language-c shiki shiki-themes github-light-default github-dark-default","struct DGFHeader\n{\n // DWORD 0\n uint32_t magic : 8; // must be 0x6\n uint32_t bits_per_index : 2; // Encodes 3,4,5,6\n uint32_t num_vertices : 6; // Number of vertices (1-64)\n uint32_t num_triangles : 6; // Number of triangles (1-64)\n uint32_t geom_id_meta : 10;\n\n // DWORD 1\n uint32_t exponent : 8; // Float32 scale (exponent-only) with bias 127. Values 1-232 are supported.\n int32_t x_anchor : 24; // 24-bit signed two's complement (0x800000 represents -8,388,608)\n\n // DWORD 2\n uint32_t x_bits : 4; // 1-16 (add 1 when decoding)\n uint32_t y_bits : 4; // 1-16 (add 1 when decoding)\n int32_t y_anchor : 24; // 24-bit signed two's complement\n\n // DWORD 3\n uint32_t z_bits : 4; // 1-16 (add 1 when decoding)\n uint32_t omm_descriptor_count : 3; // 0-7\n uint32_t geom_id_mode : 1; // 0 = Constant Mode 1= Palette Mode\n int32_t z_anchor : 24; // 24-bit signed two's complement\n\n // DWORD 4\n uint32_t prim_id_base : 29;\n uint32_t have_user_data : 1; // if set, a UserData DWORD is present between the header and the front buffer\n uint32_t unused : 2; // must be 0\n\n // 108B of variable-length data segments follow.\n};\n","c",[1947],{"type":1872,"tag":1948,"props":1949,"children":1950},"code",{"__ignoreMap":1867},[1951,1968,1976,1985,2014,2040,2066,2091,2113,2121,2129,2154,2181,2188,2196,2222,2246,2271,2278,2286,2310,2336,2362,2386,2393,2401,2422,2447,2472,2479,2487],{"type":1872,"tag":1952,"props":1953,"children":1955},"span",{"class":1954,"line":10},"line",[1956,1962],{"type":1872,"tag":1952,"props":1957,"children":1959},{"style":1958},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[1960],{"type":1877,"value":1961},"struct",{"type":1872,"tag":1952,"props":1963,"children":1965},{"style":1964},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[1966],{"type":1877,"value":1967}," DGFHeader\n",{"type":1872,"tag":1952,"props":1969,"children":1970},{"class":1954,"line":14},[1971],{"type":1872,"tag":1952,"props":1972,"children":1973},{"style":1964},[1974],{"type":1877,"value":1975},"{\n",{"type":1872,"tag":1952,"props":1977,"children":1978},{"class":1954,"line":18},[1979],{"type":1872,"tag":1952,"props":1980,"children":1982},{"style":1981},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[1983],{"type":1877,"value":1984}," // DWORD 0\n",{"type":1872,"tag":1952,"props":1986,"children":1987},{"class":1954,"line":22},[1988,1993,1998,2004,2009],{"type":1872,"tag":1952,"props":1989,"children":1990},{"style":1958},[1991],{"type":1877,"value":1992}," uint32_t",{"type":1872,"tag":1952,"props":1994,"children":1995},{"style":1964},[1996],{"type":1877,"value":1997}," magic : ",{"type":1872,"tag":1952,"props":1999,"children":2001},{"style":2000},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[2002],{"type":1877,"value":2003},"8",{"type":1872,"tag":1952,"props":2005,"children":2006},{"style":1964},[2007],{"type":1877,"value":2008},";",{"type":1872,"tag":1952,"props":2010,"children":2011},{"style":1981},[2012],{"type":1877,"value":2013}," // must be 0x6\n",{"type":1872,"tag":1952,"props":2015,"children":2016},{"class":1954,"line":26},[2017,2021,2026,2031,2035],{"type":1872,"tag":1952,"props":2018,"children":2019},{"style":1958},[2020],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2022,"children":2023},{"style":1964},[2024],{"type":1877,"value":2025}," bits_per_index : ",{"type":1872,"tag":1952,"props":2027,"children":2028},{"style":2000},[2029],{"type":1877,"value":2030},"2",{"type":1872,"tag":1952,"props":2032,"children":2033},{"style":1964},[2034],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2036,"children":2037},{"style":1981},[2038],{"type":1877,"value":2039}," // Encodes 3,4,5,6\n",{"type":1872,"tag":1952,"props":2041,"children":2042},{"class":1954,"line":30},[2043,2047,2052,2057,2061],{"type":1872,"tag":1952,"props":2044,"children":2045},{"style":1958},[2046],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2048,"children":2049},{"style":1964},[2050],{"type":1877,"value":2051}," num_vertices : ",{"type":1872,"tag":1952,"props":2053,"children":2054},{"style":2000},[2055],{"type":1877,"value":2056},"6",{"type":1872,"tag":1952,"props":2058,"children":2059},{"style":1964},[2060],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2062,"children":2063},{"style":1981},[2064],{"type":1877,"value":2065}," // Number of vertices (1-64)\n",{"type":1872,"tag":1952,"props":2067,"children":2068},{"class":1954,"line":34},[2069,2073,2078,2082,2086],{"type":1872,"tag":1952,"props":2070,"children":2071},{"style":1958},[2072],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2074,"children":2075},{"style":1964},[2076],{"type":1877,"value":2077}," num_triangles : ",{"type":1872,"tag":1952,"props":2079,"children":2080},{"style":2000},[2081],{"type":1877,"value":2056},{"type":1872,"tag":1952,"props":2083,"children":2084},{"style":1964},[2085],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2087,"children":2088},{"style":1981},[2089],{"type":1877,"value":2090}," // Number of triangles (1-64)\n",{"type":1872,"tag":1952,"props":2092,"children":2093},{"class":1954,"line":38},[2094,2098,2103,2108],{"type":1872,"tag":1952,"props":2095,"children":2096},{"style":1958},[2097],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2099,"children":2100},{"style":1964},[2101],{"type":1877,"value":2102}," geom_id_meta : ",{"type":1872,"tag":1952,"props":2104,"children":2105},{"style":2000},[2106],{"type":1877,"value":2107},"10",{"type":1872,"tag":1952,"props":2109,"children":2110},{"style":1964},[2111],{"type":1877,"value":2112},";\n",{"type":1872,"tag":1952,"props":2114,"children":2115},{"class":1954,"line":42},[2116],{"type":1872,"tag":1952,"props":2117,"children":2118},{"emptyLinePlaceholder":232},[2119],{"type":1877,"value":2120},"\n",{"type":1872,"tag":1952,"props":2122,"children":2123},{"class":1954,"line":46},[2124],{"type":1872,"tag":1952,"props":2125,"children":2126},{"style":1981},[2127],{"type":1877,"value":2128}," // DWORD 1\n",{"type":1872,"tag":1952,"props":2130,"children":2131},{"class":1954,"line":50},[2132,2136,2141,2145,2149],{"type":1872,"tag":1952,"props":2133,"children":2134},{"style":1958},[2135],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2137,"children":2138},{"style":1964},[2139],{"type":1877,"value":2140}," exponent : ",{"type":1872,"tag":1952,"props":2142,"children":2143},{"style":2000},[2144],{"type":1877,"value":2003},{"type":1872,"tag":1952,"props":2146,"children":2147},{"style":1964},[2148],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2150,"children":2151},{"style":1981},[2152],{"type":1877,"value":2153}," // Float32 scale (exponent-only) with bias 127. Values 1-232 are supported.\n",{"type":1872,"tag":1952,"props":2155,"children":2156},{"class":1954,"line":54},[2157,2162,2167,2172,2176],{"type":1872,"tag":1952,"props":2158,"children":2159},{"style":1958},[2160],{"type":1877,"value":2161}," int32_t",{"type":1872,"tag":1952,"props":2163,"children":2164},{"style":1964},[2165],{"type":1877,"value":2166}," x_anchor : ",{"type":1872,"tag":1952,"props":2168,"children":2169},{"style":2000},[2170],{"type":1877,"value":2171},"24",{"type":1872,"tag":1952,"props":2173,"children":2174},{"style":1964},[2175],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2177,"children":2178},{"style":1981},[2179],{"type":1877,"value":2180}," // 24-bit signed two's complement (0x800000 represents -8,388,608)\n",{"type":1872,"tag":1952,"props":2182,"children":2183},{"class":1954,"line":58},[2184],{"type":1872,"tag":1952,"props":2185,"children":2186},{"emptyLinePlaceholder":232},[2187],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2189,"children":2190},{"class":1954,"line":62},[2191],{"type":1872,"tag":1952,"props":2192,"children":2193},{"style":1981},[2194],{"type":1877,"value":2195}," // DWORD 2\n",{"type":1872,"tag":1952,"props":2197,"children":2198},{"class":1954,"line":66},[2199,2203,2208,2213,2217],{"type":1872,"tag":1952,"props":2200,"children":2201},{"style":1958},[2202],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2204,"children":2205},{"style":1964},[2206],{"type":1877,"value":2207}," x_bits : ",{"type":1872,"tag":1952,"props":2209,"children":2210},{"style":2000},[2211],{"type":1877,"value":2212},"4",{"type":1872,"tag":1952,"props":2214,"children":2215},{"style":1964},[2216],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2218,"children":2219},{"style":1981},[2220],{"type":1877,"value":2221}," // 1-16 (add 1 when decoding)\n",{"type":1872,"tag":1952,"props":2223,"children":2224},{"class":1954,"line":70},[2225,2229,2234,2238,2242],{"type":1872,"tag":1952,"props":2226,"children":2227},{"style":1958},[2228],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2230,"children":2231},{"style":1964},[2232],{"type":1877,"value":2233}," y_bits : ",{"type":1872,"tag":1952,"props":2235,"children":2236},{"style":2000},[2237],{"type":1877,"value":2212},{"type":1872,"tag":1952,"props":2239,"children":2240},{"style":1964},[2241],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2243,"children":2244},{"style":1981},[2245],{"type":1877,"value":2221},{"type":1872,"tag":1952,"props":2247,"children":2248},{"class":1954,"line":74},[2249,2253,2258,2262,2266],{"type":1872,"tag":1952,"props":2250,"children":2251},{"style":1958},[2252],{"type":1877,"value":2161},{"type":1872,"tag":1952,"props":2254,"children":2255},{"style":1964},[2256],{"type":1877,"value":2257}," y_anchor : ",{"type":1872,"tag":1952,"props":2259,"children":2260},{"style":2000},[2261],{"type":1877,"value":2171},{"type":1872,"tag":1952,"props":2263,"children":2264},{"style":1964},[2265],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2267,"children":2268},{"style":1981},[2269],{"type":1877,"value":2270}," // 24-bit signed two's complement\n",{"type":1872,"tag":1952,"props":2272,"children":2273},{"class":1954,"line":78},[2274],{"type":1872,"tag":1952,"props":2275,"children":2276},{"emptyLinePlaceholder":232},[2277],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2279,"children":2280},{"class":1954,"line":82},[2281],{"type":1872,"tag":1952,"props":2282,"children":2283},{"style":1981},[2284],{"type":1877,"value":2285}," // DWORD 3\n",{"type":1872,"tag":1952,"props":2287,"children":2288},{"class":1954,"line":86},[2289,2293,2298,2302,2306],{"type":1872,"tag":1952,"props":2290,"children":2291},{"style":1958},[2292],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2294,"children":2295},{"style":1964},[2296],{"type":1877,"value":2297}," z_bits : ",{"type":1872,"tag":1952,"props":2299,"children":2300},{"style":2000},[2301],{"type":1877,"value":2212},{"type":1872,"tag":1952,"props":2303,"children":2304},{"style":1964},[2305],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2307,"children":2308},{"style":1981},[2309],{"type":1877,"value":2221},{"type":1872,"tag":1952,"props":2311,"children":2312},{"class":1954,"line":90},[2313,2317,2322,2327,2331],{"type":1872,"tag":1952,"props":2314,"children":2315},{"style":1958},[2316],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2318,"children":2319},{"style":1964},[2320],{"type":1877,"value":2321}," omm_descriptor_count : ",{"type":1872,"tag":1952,"props":2323,"children":2324},{"style":2000},[2325],{"type":1877,"value":2326},"3",{"type":1872,"tag":1952,"props":2328,"children":2329},{"style":1964},[2330],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2332,"children":2333},{"style":1981},[2334],{"type":1877,"value":2335}," // 0-7\n",{"type":1872,"tag":1952,"props":2337,"children":2338},{"class":1954,"line":94},[2339,2343,2348,2353,2357],{"type":1872,"tag":1952,"props":2340,"children":2341},{"style":1958},[2342],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2344,"children":2345},{"style":1964},[2346],{"type":1877,"value":2347}," geom_id_mode : ",{"type":1872,"tag":1952,"props":2349,"children":2350},{"style":2000},[2351],{"type":1877,"value":2352},"1",{"type":1872,"tag":1952,"props":2354,"children":2355},{"style":1964},[2356],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2358,"children":2359},{"style":1981},[2360],{"type":1877,"value":2361}," // 0 = Constant Mode 1= Palette Mode\n",{"type":1872,"tag":1952,"props":2363,"children":2364},{"class":1954,"line":98},[2365,2369,2374,2378,2382],{"type":1872,"tag":1952,"props":2366,"children":2367},{"style":1958},[2368],{"type":1877,"value":2161},{"type":1872,"tag":1952,"props":2370,"children":2371},{"style":1964},[2372],{"type":1877,"value":2373}," z_anchor : ",{"type":1872,"tag":1952,"props":2375,"children":2376},{"style":2000},[2377],{"type":1877,"value":2171},{"type":1872,"tag":1952,"props":2379,"children":2380},{"style":1964},[2381],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2383,"children":2384},{"style":1981},[2385],{"type":1877,"value":2270},{"type":1872,"tag":1952,"props":2387,"children":2388},{"class":1954,"line":102},[2389],{"type":1872,"tag":1952,"props":2390,"children":2391},{"emptyLinePlaceholder":232},[2392],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2394,"children":2395},{"class":1954,"line":106},[2396],{"type":1872,"tag":1952,"props":2397,"children":2398},{"style":1981},[2399],{"type":1877,"value":2400}," // DWORD 4\n",{"type":1872,"tag":1952,"props":2402,"children":2403},{"class":1954,"line":110},[2404,2408,2413,2418],{"type":1872,"tag":1952,"props":2405,"children":2406},{"style":1958},[2407],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2409,"children":2410},{"style":1964},[2411],{"type":1877,"value":2412}," prim_id_base : ",{"type":1872,"tag":1952,"props":2414,"children":2415},{"style":2000},[2416],{"type":1877,"value":2417},"29",{"type":1872,"tag":1952,"props":2419,"children":2420},{"style":1964},[2421],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":2423,"children":2424},{"class":1954,"line":114},[2425,2429,2434,2438,2442],{"type":1872,"tag":1952,"props":2426,"children":2427},{"style":1958},[2428],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2430,"children":2431},{"style":1964},[2432],{"type":1877,"value":2433}," have_user_data : ",{"type":1872,"tag":1952,"props":2435,"children":2436},{"style":2000},[2437],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":2439,"children":2440},{"style":1964},[2441],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2443,"children":2444},{"style":1981},[2445],{"type":1877,"value":2446}," // if set, a UserData DWORD is present between the header and the front buffer\n",{"type":1872,"tag":1952,"props":2448,"children":2449},{"class":1954,"line":118},[2450,2454,2459,2463,2467],{"type":1872,"tag":1952,"props":2451,"children":2452},{"style":1958},[2453],{"type":1877,"value":1992},{"type":1872,"tag":1952,"props":2455,"children":2456},{"style":1964},[2457],{"type":1877,"value":2458}," unused : ",{"type":1872,"tag":1952,"props":2460,"children":2461},{"style":2000},[2462],{"type":1877,"value":2030},{"type":1872,"tag":1952,"props":2464,"children":2465},{"style":1964},[2466],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":2468,"children":2469},{"style":1981},[2470],{"type":1877,"value":2471}," // must be 0\n",{"type":1872,"tag":1952,"props":2473,"children":2474},{"class":1954,"line":122},[2475],{"type":1872,"tag":1952,"props":2476,"children":2477},{"emptyLinePlaceholder":232},[2478],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2480,"children":2481},{"class":1954,"line":126},[2482],{"type":1872,"tag":1952,"props":2483,"children":2484},{"style":1981},[2485],{"type":1877,"value":2486}," // 108B of variable-length data segments follow.\n",{"type":1872,"tag":1952,"props":2488,"children":2489},{"class":1954,"line":130},[2490],{"type":1872,"tag":1952,"props":2491,"children":2492},{"style":1964},[2493],{"type":1877,"value":2494},"};\n",{"type":1872,"tag":1886,"props":2496,"children":2497},{},[2498],{"type":1877,"value":2499},"The per-vertex offsets are tightly packed in the DGF node immediately\nfollowing the header, in ascending order.\nThe size of each vertex must be 4b-aligned.\nThe size of the vertex data section is byte-aligned.\nPad bits are inserted as required, and all pad bits must be zero.\nThe optional OMM palette (if present) starts on the next byte boundary.\nThe optional GeomID palette (if present), starts on the next byte boundary\nfollowing the vertex data and OMM palette.",{"type":1872,"tag":1886,"props":2501,"children":2502},{},[2503,2505,2511],{"type":1877,"value":2504},"The region containing the vertex data, geomID palette, and OMM palette is\nreferred to as the ",{"type":1872,"tag":1948,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":1877,"value":2510},"front buffer",{"type":1877,"value":2512},".\nIt is byte-aligned, and its total size may not exceed 96B.",{"type":1872,"tag":1886,"props":2514,"children":2515},{},[2516],{"type":1877,"value":2517},"The optional UserData DWORD, if present, is little-endian, and located\nimmediately after the header.\nIf UserData is present, the front buffer starts at byte 24.\nIf UserData is not present, the front buffer starts at byte 20.",{"type":1872,"tag":1915,"props":2519,"children":2521},{"id":2520},"_vertex_position_encoding",[2522],{"type":1877,"value":2523},"Vertex Position Encoding",{"type":1872,"tag":1886,"props":2525,"children":2526},{},[2527],{"type":1877,"value":2528},"DGF vertices are defined on a signed 24-bit quantization grid.\nEach block stores the following:",{"type":1872,"tag":2530,"props":2531,"children":2532},"ul",{},[2533,2539,2544],{"type":1872,"tag":2534,"props":2535,"children":2536},"li",{},[2537],{"type":1877,"value":2538},"a 24b-per-coordinate signed anchor position,",{"type":1872,"tag":2534,"props":2540,"children":2541},{},[2542],{"type":1877,"value":2543},"a variable-width (1-16b) unsigned offset for each vertex component\n(relative to the anchor position),",{"type":1872,"tag":2534,"props":2545,"children":2546},{},[2547],{"type":1877,"value":2548},"a power-of-2 scale factor which is used to map from the quantization grid\nto floating-point world coordinates (stored as an IEEE biased exponent).",{"type":1872,"tag":1886,"props":2550,"children":2551},{},[2552,2554,2560],{"type":1877,"value":2553},"An equivalent fixed-point encoding scheme is used by Epic’s ",{"type":1872,"tag":1948,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":1877,"value":2559},"Nanite",{"type":1877,"value":2561},"\nsystem.",{"type":1872,"tag":1886,"props":2563,"children":2564},{},[2565],{"type":1877,"value":2566},"The decoded floating-point vertex position is computed as follows:",{"type":1872,"tag":1941,"props":2568,"children":2570},{"className":1943,"code":2569,"language":1945,"meta":1867,"style":1867},"float3 dgf_decode(int24_t Anchor[3], uint16_t Offset[3], uint8_t Exponent)\n{\n int x = Anchor[0] + Offset[0]; // 24b + 16b add.. 25b result\n int y = Anchor[1] + Offset[1];\n int z = Anchor[2] + Offset[2];\n\n float fx = (float)(x); // convert results to floating-point\n float fy = (float)(y);\n float fz = (float)(z);\n\n // apply a pow2 scale factor\n float scale = ldexp(1.0f, Exponent - 127);\n return float3(fx, fy, fz) * scale;\n}\n",[2571],{"type":1872,"tag":1948,"props":2572,"children":2573},{"__ignoreMap":1867},[2574,2655,2662,2725,2778,2830,2837,2874,2903,2932,2939,2947,3002,3030],{"type":1872,"tag":1952,"props":2575,"children":2576},{"class":1954,"line":10},[2577,2582,2588,2593,2598,2604,2609,2613,2618,2623,2628,2632,2636,2640,2645,2650],{"type":1872,"tag":1952,"props":2578,"children":2579},{"style":1964},[2580],{"type":1877,"value":2581},"float3 ",{"type":1872,"tag":1952,"props":2583,"children":2585},{"style":2584},"--shiki-default:#8250DF;--shiki-dark:#D2A8FF",[2586],{"type":1877,"value":2587},"dgf_decode",{"type":1872,"tag":1952,"props":2589,"children":2590},{"style":1964},[2591],{"type":1877,"value":2592},"(",{"type":1872,"tag":1952,"props":2594,"children":2595},{"style":2000},[2596],{"type":1877,"value":2597},"int24_t",{"type":1872,"tag":1952,"props":2599,"children":2601},{"style":2600},"--shiki-default:#953800;--shiki-dark:#FFA657",[2602],{"type":1877,"value":2603}," Anchor",{"type":1872,"tag":1952,"props":2605,"children":2606},{"style":1964},[2607],{"type":1877,"value":2608},"[",{"type":1872,"tag":1952,"props":2610,"children":2611},{"style":2000},[2612],{"type":1877,"value":2326},{"type":1872,"tag":1952,"props":2614,"children":2615},{"style":1964},[2616],{"type":1877,"value":2617},"], ",{"type":1872,"tag":1952,"props":2619,"children":2620},{"style":1958},[2621],{"type":1877,"value":2622},"uint16_t",{"type":1872,"tag":1952,"props":2624,"children":2625},{"style":2600},[2626],{"type":1877,"value":2627}," Offset",{"type":1872,"tag":1952,"props":2629,"children":2630},{"style":1964},[2631],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2633,"children":2634},{"style":2000},[2635],{"type":1877,"value":2326},{"type":1872,"tag":1952,"props":2637,"children":2638},{"style":1964},[2639],{"type":1877,"value":2617},{"type":1872,"tag":1952,"props":2641,"children":2642},{"style":1958},[2643],{"type":1877,"value":2644},"uint8_t",{"type":1872,"tag":1952,"props":2646,"children":2647},{"style":2600},[2648],{"type":1877,"value":2649}," Exponent",{"type":1872,"tag":1952,"props":2651,"children":2652},{"style":1964},[2653],{"type":1877,"value":2654},")\n",{"type":1872,"tag":1952,"props":2656,"children":2657},{"class":1954,"line":14},[2658],{"type":1872,"tag":1952,"props":2659,"children":2660},{"style":1964},[2661],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":2663,"children":2664},{"class":1954,"line":18},[2665,2670,2675,2680,2684,2688,2693,2698,2703,2707,2711,2715,2720],{"type":1872,"tag":1952,"props":2666,"children":2667},{"style":1958},[2668],{"type":1877,"value":2669}," int",{"type":1872,"tag":1952,"props":2671,"children":2672},{"style":1964},[2673],{"type":1877,"value":2674}," x ",{"type":1872,"tag":1952,"props":2676,"children":2677},{"style":1958},[2678],{"type":1877,"value":2679},"=",{"type":1872,"tag":1952,"props":2681,"children":2682},{"style":2600},[2683],{"type":1877,"value":2603},{"type":1872,"tag":1952,"props":2685,"children":2686},{"style":1964},[2687],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2689,"children":2690},{"style":2000},[2691],{"type":1877,"value":2692},"0",{"type":1872,"tag":1952,"props":2694,"children":2695},{"style":1964},[2696],{"type":1877,"value":2697},"] ",{"type":1872,"tag":1952,"props":2699,"children":2700},{"style":1958},[2701],{"type":1877,"value":2702},"+",{"type":1872,"tag":1952,"props":2704,"children":2705},{"style":2600},[2706],{"type":1877,"value":2627},{"type":1872,"tag":1952,"props":2708,"children":2709},{"style":1964},[2710],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2712,"children":2713},{"style":2000},[2714],{"type":1877,"value":2692},{"type":1872,"tag":1952,"props":2716,"children":2717},{"style":1964},[2718],{"type":1877,"value":2719},"];",{"type":1872,"tag":1952,"props":2721,"children":2722},{"style":1981},[2723],{"type":1877,"value":2724}," // 24b + 16b add.. 25b result\n",{"type":1872,"tag":1952,"props":2726,"children":2727},{"class":1954,"line":22},[2728,2732,2737,2741,2745,2749,2753,2757,2761,2765,2769,2773],{"type":1872,"tag":1952,"props":2729,"children":2730},{"style":1958},[2731],{"type":1877,"value":2669},{"type":1872,"tag":1952,"props":2733,"children":2734},{"style":1964},[2735],{"type":1877,"value":2736}," y ",{"type":1872,"tag":1952,"props":2738,"children":2739},{"style":1958},[2740],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2742,"children":2743},{"style":2600},[2744],{"type":1877,"value":2603},{"type":1872,"tag":1952,"props":2746,"children":2747},{"style":1964},[2748],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2750,"children":2751},{"style":2000},[2752],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":2754,"children":2755},{"style":1964},[2756],{"type":1877,"value":2697},{"type":1872,"tag":1952,"props":2758,"children":2759},{"style":1958},[2760],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":2762,"children":2763},{"style":2600},[2764],{"type":1877,"value":2627},{"type":1872,"tag":1952,"props":2766,"children":2767},{"style":1964},[2768],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2770,"children":2771},{"style":2000},[2772],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":2774,"children":2775},{"style":1964},[2776],{"type":1877,"value":2777},"];\n",{"type":1872,"tag":1952,"props":2779,"children":2780},{"class":1954,"line":26},[2781,2785,2790,2794,2798,2802,2806,2810,2814,2818,2822,2826],{"type":1872,"tag":1952,"props":2782,"children":2783},{"style":1958},[2784],{"type":1877,"value":2669},{"type":1872,"tag":1952,"props":2786,"children":2787},{"style":1964},[2788],{"type":1877,"value":2789}," z ",{"type":1872,"tag":1952,"props":2791,"children":2792},{"style":1958},[2793],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2795,"children":2796},{"style":2600},[2797],{"type":1877,"value":2603},{"type":1872,"tag":1952,"props":2799,"children":2800},{"style":1964},[2801],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2803,"children":2804},{"style":2000},[2805],{"type":1877,"value":2030},{"type":1872,"tag":1952,"props":2807,"children":2808},{"style":1964},[2809],{"type":1877,"value":2697},{"type":1872,"tag":1952,"props":2811,"children":2812},{"style":1958},[2813],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":2815,"children":2816},{"style":2600},[2817],{"type":1877,"value":2627},{"type":1872,"tag":1952,"props":2819,"children":2820},{"style":1964},[2821],{"type":1877,"value":2608},{"type":1872,"tag":1952,"props":2823,"children":2824},{"style":2000},[2825],{"type":1877,"value":2030},{"type":1872,"tag":1952,"props":2827,"children":2828},{"style":1964},[2829],{"type":1877,"value":2777},{"type":1872,"tag":1952,"props":2831,"children":2832},{"class":1954,"line":30},[2833],{"type":1872,"tag":1952,"props":2834,"children":2835},{"emptyLinePlaceholder":232},[2836],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2838,"children":2839},{"class":1954,"line":34},[2840,2845,2850,2854,2859,2864,2869],{"type":1872,"tag":1952,"props":2841,"children":2842},{"style":1958},[2843],{"type":1877,"value":2844}," float",{"type":1872,"tag":1952,"props":2846,"children":2847},{"style":1964},[2848],{"type":1877,"value":2849}," fx ",{"type":1872,"tag":1952,"props":2851,"children":2852},{"style":1958},[2853],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2855,"children":2856},{"style":1964},[2857],{"type":1877,"value":2858}," (",{"type":1872,"tag":1952,"props":2860,"children":2861},{"style":1958},[2862],{"type":1877,"value":2863},"float",{"type":1872,"tag":1952,"props":2865,"children":2866},{"style":1964},[2867],{"type":1877,"value":2868},")(x);",{"type":1872,"tag":1952,"props":2870,"children":2871},{"style":1981},[2872],{"type":1877,"value":2873}," // convert results to floating-point\n",{"type":1872,"tag":1952,"props":2875,"children":2876},{"class":1954,"line":38},[2877,2881,2886,2890,2894,2898],{"type":1872,"tag":1952,"props":2878,"children":2879},{"style":1958},[2880],{"type":1877,"value":2844},{"type":1872,"tag":1952,"props":2882,"children":2883},{"style":1964},[2884],{"type":1877,"value":2885}," fy ",{"type":1872,"tag":1952,"props":2887,"children":2888},{"style":1958},[2889],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2891,"children":2892},{"style":1964},[2893],{"type":1877,"value":2858},{"type":1872,"tag":1952,"props":2895,"children":2896},{"style":1958},[2897],{"type":1877,"value":2863},{"type":1872,"tag":1952,"props":2899,"children":2900},{"style":1964},[2901],{"type":1877,"value":2902},")(y);\n",{"type":1872,"tag":1952,"props":2904,"children":2905},{"class":1954,"line":42},[2906,2910,2915,2919,2923,2927],{"type":1872,"tag":1952,"props":2907,"children":2908},{"style":1958},[2909],{"type":1877,"value":2844},{"type":1872,"tag":1952,"props":2911,"children":2912},{"style":1964},[2913],{"type":1877,"value":2914}," fz ",{"type":1872,"tag":1952,"props":2916,"children":2917},{"style":1958},[2918],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2920,"children":2921},{"style":1964},[2922],{"type":1877,"value":2858},{"type":1872,"tag":1952,"props":2924,"children":2925},{"style":1958},[2926],{"type":1877,"value":2863},{"type":1872,"tag":1952,"props":2928,"children":2929},{"style":1964},[2930],{"type":1877,"value":2931},")(z);\n",{"type":1872,"tag":1952,"props":2933,"children":2934},{"class":1954,"line":46},[2935],{"type":1872,"tag":1952,"props":2936,"children":2937},{"emptyLinePlaceholder":232},[2938],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":2940,"children":2941},{"class":1954,"line":50},[2942],{"type":1872,"tag":1952,"props":2943,"children":2944},{"style":1981},[2945],{"type":1877,"value":2946}," // apply a pow2 scale factor\n",{"type":1872,"tag":1952,"props":2948,"children":2949},{"class":1954,"line":54},[2950,2954,2959,2963,2968,2972,2977,2982,2987,2992,2997],{"type":1872,"tag":1952,"props":2951,"children":2952},{"style":1958},[2953],{"type":1877,"value":2844},{"type":1872,"tag":1952,"props":2955,"children":2956},{"style":1964},[2957],{"type":1877,"value":2958}," scale ",{"type":1872,"tag":1952,"props":2960,"children":2961},{"style":1958},[2962],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":2964,"children":2965},{"style":2584},[2966],{"type":1877,"value":2967}," ldexp",{"type":1872,"tag":1952,"props":2969,"children":2970},{"style":1964},[2971],{"type":1877,"value":2592},{"type":1872,"tag":1952,"props":2973,"children":2974},{"style":2000},[2975],{"type":1877,"value":2976},"1.0",{"type":1872,"tag":1952,"props":2978,"children":2979},{"style":1958},[2980],{"type":1877,"value":2981},"f",{"type":1872,"tag":1952,"props":2983,"children":2984},{"style":1964},[2985],{"type":1877,"value":2986},", Exponent ",{"type":1872,"tag":1952,"props":2988,"children":2989},{"style":1958},[2990],{"type":1877,"value":2991},"-",{"type":1872,"tag":1952,"props":2993,"children":2994},{"style":2000},[2995],{"type":1877,"value":2996}," 127",{"type":1872,"tag":1952,"props":2998,"children":2999},{"style":1964},[3000],{"type":1877,"value":3001},");\n",{"type":1872,"tag":1952,"props":3003,"children":3004},{"class":1954,"line":58},[3005,3010,3015,3020,3025],{"type":1872,"tag":1952,"props":3006,"children":3007},{"style":1958},[3008],{"type":1877,"value":3009}," return",{"type":1872,"tag":1952,"props":3011,"children":3012},{"style":2584},[3013],{"type":1877,"value":3014}," float3",{"type":1872,"tag":1952,"props":3016,"children":3017},{"style":1964},[3018],{"type":1877,"value":3019},"(fx, fy, fz) ",{"type":1872,"tag":1952,"props":3021,"children":3022},{"style":1958},[3023],{"type":1877,"value":3024},"*",{"type":1872,"tag":1952,"props":3026,"children":3027},{"style":1964},[3028],{"type":1877,"value":3029}," scale;\n",{"type":1872,"tag":1952,"props":3031,"children":3032},{"class":1954,"line":62},[3033],{"type":1872,"tag":1952,"props":3034,"children":3035},{"style":1964},[3036],{"type":1877,"value":3037},"}\n",{"type":1872,"tag":1886,"props":3039,"children":3040},{},[3041],{"type":1877,"value":3042},"With this encoding scheme the maximum representable value is:",{"type":1872,"tag":1886,"props":3044,"children":3045},{},[3046],{"type":1877,"value":3047},"(0x7fffff + 0xffff) * 2^127 = 8,454,142 * 2^127 (roughly 1.438e+45)",{"type":1872,"tag":1886,"props":3049,"children":3050},{},[3051],{"type":1877,"value":3052},"The minimum is:",{"type":1872,"tag":1886,"props":3054,"children":3055},{},[3056],{"type":1877,"value":3057},"(0x800000 * 2^127) = -8,388,608 * 2^127 (roughly -1.427e+45)",{"type":1872,"tag":1886,"props":3059,"children":3060},{},[3061],{"type":1877,"value":3062},"This is a larger theoretical dynamic range than IEEE floating-point, and\nthere is no reason for implementations to support all of it.",{"type":1872,"tag":1886,"props":3064,"children":3065},{},[3066],{"type":1877,"value":3067},"The minimum and maximum IEEE floats which DGF can encode occur for exponent\n232 and integer positions 0x800001 and 0x7fffff (Decimal values -8388607 and\n8388607).\nThese values are:",{"type":1872,"tag":1886,"props":3069,"children":3070},{},[3071],{"type":1877,"value":3072},"-340282326356119256160033759537265639424.000000 and +340282326356119256160033759537265639424.000000",{"type":1872,"tag":1886,"props":3074,"children":3075},{},[3076],{"type":1877,"value":3077},"For context, the range of finite IEEE floats is slightly larger than these:",{"type":1872,"tag":1886,"props":3079,"children":3080},{},[3081],{"type":1877,"value":3082},"-340282346638528859811704183484516925440.000000 to +340282346638528859811704183484516925440.000000",{"type":1872,"tag":1886,"props":3084,"children":3085},{},[3086],{"type":1877,"value":3087},"For these reasons, DGF only supports exponent values from 1 through 232.\nThis implies that denormals, NaNs, and infinities cannot be represented.\nIf a block encodes an exponent value outside the supported range, all\nray-triangle intersection tests against this block will have undefined\nresults.",{"type":1872,"tag":1886,"props":3089,"children":3090},{},[3091],{"type":1877,"value":3092},"For exponent values of 232, it is possible to encode a value which overflows\nthe IEEE single-precision range.\nResults are undefined in this case.",{"type":1872,"tag":1886,"props":3094,"children":3095},{},[3096],{"type":1877,"value":3097},"An application can ensure crack-free results across blocks by selecting\nmatching quantization factors for any two neighboring blocks.\nA simple way to ensure this is to pick a uniform quantization factor for an\nentire mesh.",{"type":1872,"tag":1915,"props":3099,"children":3101},{"id":3100},"_handling_corner_cases",[3102],{"type":1877,"value":3103},"Handling Corner Cases",{"type":1872,"tag":1886,"props":3105,"children":3106},{},[3107],{"type":1877,"value":3108},"The anchor+offset encoding scheme can be problematic for meshes containing\nvery large triangles.\nA poor choice of quantization factor can cause the 16b per-vertex offsets or\nthe 24b per-block anchors to overflow.\nThis problem can be worked around in several ways:",{"type":1872,"tag":2530,"props":3110,"children":3111},{},[3112,3117,3122],{"type":1872,"tag":2534,"props":3113,"children":3114},{},[3115],{"type":1877,"value":3116},"Choosing a coarser quantization factor (trading off precision),",{"type":1872,"tag":2534,"props":3118,"children":3119},{},[3120],{"type":1877,"value":3121},"Subdividing large, problematic triangles (whether automatically or\nmanually),",{"type":1872,"tag":2534,"props":3123,"children":3124},{},[3125],{"type":1877,"value":3126},"Reverting to uncompressed geometry for problematic assets.",{"type":1872,"tag":1886,"props":3128,"children":3129},{},[3130],{"type":1877,"value":3131},"The use of a common quantization factor for X,Y, and Z can be problematic\nfor geometry which has a large extent on one coordinate axis but not the\nothers (for example, a freight train with individually modeled cars).\nIn this situation, a coarse quantization factor must be selected to enclose\nthe large coordinate range on the long axis, resulting in inadequate\nprecision on the other two axes.\nThe solution to this problem is to partition the object into multiple parts,\neach authored in a local coordinate system, and positioned using instance\ntransforms.",{"type":1872,"tag":1915,"props":3133,"children":3135},{"id":3134},"_topology_encoding",[3136],{"type":1877,"value":3137},"Topology Encoding",{"type":1872,"tag":3139,"props":3140,"children":3142},"h4",{"id":3141},"_topology_sections",[3143],{"type":1877,"value":3144},"Topology Sections",{"type":1872,"tag":1886,"props":3146,"children":3147},{},[3148],{"type":1877,"value":3149},"DGF represents mesh topology using a form of generalized triangle strip.\nThe order of the stored vertices is used to minimize the size of the\ntopology encoding.\nThe topology encoding consists of an array of triangle control values, and a\ncompressed index buffer.",{"type":1872,"tag":2530,"props":3151,"children":3152},{},[3153,3171],{"type":1872,"tag":2534,"props":3154,"children":3155},{},[3156,3158],{"type":1877,"value":3157},"Two control bits per triangle indicating its position relative to the\nprevious two triangles",{"type":1872,"tag":2530,"props":3159,"children":3160},{},[3161,3166],{"type":1872,"tag":2534,"props":3162,"children":3163},{},[3164],{"type":1877,"value":3165},"The first triangle always uses RESTART, so this is not stored.",{"type":1872,"tag":2534,"props":3167,"children":3168},{},[3169],{"type":1877,"value":3170},"Ordered back to front (earlier triangles occupy higher bit positions).",{"type":1872,"tag":2534,"props":3172,"children":3173},{},[3174,3176],{"type":1877,"value":3175},"A compressed index buffer whose length is determined by the contents of\nthe control bits.",{"type":1872,"tag":2530,"props":3177,"children":3178},{},[3179],{"type":1872,"tag":2534,"props":3180,"children":3181},{},[3182,3184],{"type":1877,"value":3183},"The index buffer is organized into two sections:",{"type":1872,"tag":2530,"props":3185,"children":3186},{},[3187,3238],{"type":1872,"tag":2534,"props":3188,"children":3189},{},[3190,3192,3198,3200],{"type":1877,"value":3191},"An array of ",{"type":1872,"tag":1948,"props":3193,"children":3195},{"className":3194},[],[3196],{"type":1877,"value":3197},"is-first",{"type":1877,"value":3199}," bits",{"type":1872,"tag":2530,"props":3201,"children":3202},{},[3203,3208,3213,3233],{"type":1872,"tag":2534,"props":3204,"children":3205},{},[3206],{"type":1877,"value":3207},"One bit per index indicating whether it is the first reference to a\ngiven vertex.",{"type":1872,"tag":2534,"props":3209,"children":3210},{},[3211],{"type":1877,"value":3212},"The first reference to a given vertex is computed by incrementing a\ncounter.",{"type":1872,"tag":2534,"props":3214,"children":3215},{},[3216,3218,3224,3226,3231],{"type":1877,"value":3217},"The first three indices are always ",{"type":1872,"tag":1948,"props":3219,"children":3221},{"className":3220},[],[3222],{"type":1877,"value":3223},"first",{"type":1877,"value":3225},", so their ",{"type":1872,"tag":1948,"props":3227,"children":3229},{"className":3228},[],[3230],{"type":1877,"value":3197},{"type":1877,"value":3232},"\nbits are not stored.",{"type":1872,"tag":2534,"props":3234,"children":3235},{},[3236],{"type":1877,"value":3237},"Ordered back to front (earlier indices occupy higher bit positions).",{"type":1872,"tag":2534,"props":3239,"children":3240},{},[3241,3243,3249,3251],{"type":1877,"value":3242},"A ",{"type":1872,"tag":1948,"props":3244,"children":3246},{"className":3245},[],[3247],{"type":1877,"value":3248},"reuse buffer",{"type":1877,"value":3250}," containing the indices of reused vertices",{"type":1872,"tag":2530,"props":3252,"children":3253},{},[3254,3266,3271,3276],{"type":1872,"tag":2534,"props":3255,"children":3256},{},[3257,3259,3264],{"type":1877,"value":3258},"There is one index for each zero bit in the ",{"type":1872,"tag":1948,"props":3260,"children":3262},{"className":3261},[],[3263],{"type":1877,"value":3197},{"type":1877,"value":3265}," bit vector.",{"type":1872,"tag":2534,"props":3267,"children":3268},{},[3269],{"type":1877,"value":3270},"The number of bits per index is stored in the header.\nValid values are 0,1,2,3, encoding 3,4,5, and 6 bits, respectively.",{"type":1872,"tag":2534,"props":3272,"children":3273},{},[3274],{"type":1877,"value":3275},"Ordered front to back (earlier indices occupy lower bit positions).",{"type":1872,"tag":2534,"props":3277,"children":3278},{},[3279],{"type":1877,"value":3280},"Total size may not exceed 24B.",{"type":1872,"tag":1886,"props":3282,"children":3283},{},[3284],{"type":1877,"value":3285},"The reuse buffer is located immediately adjacent to the front buffer.\nThe triangle control bits are located at the end of the block, and the\n\"is-first\" bits are immediately in front of them.",{"type":1872,"tag":1886,"props":3287,"children":3288},{},[3289],{"type":1877,"value":3290},"There are four possible triangle control values:",{"type":1872,"tag":3292,"props":3293,"children":3300},"table",{"id":3294,"className":3295},"DGF-triangle_control_values",[3296,3297,3298,3299],"tableblock","frame-all","grid-all","stretch",[3301,3317,3346],{"type":1872,"tag":3302,"props":3303,"children":3304},"colgroup",{},[3305,3310,3313],{"type":1872,"tag":3306,"props":3307,"children":3309},"col",{"style":3308},"width: 33.3333%;",[],{"type":1872,"tag":3306,"props":3311,"children":3312},{"style":3308},[],{"type":1872,"tag":3306,"props":3314,"children":3316},{"style":3315},"width: 33.3334%;",[],{"type":1872,"tag":3318,"props":3319,"children":3320},"thead",{},[3321],{"type":1872,"tag":3322,"props":3323,"children":3324},"tr",{},[3325,3334,3340],{"type":1872,"tag":3326,"props":3327,"children":3331},"th",{"className":3328},[3296,3329,3330],"halign-left","valign-top",[3332],{"type":1877,"value":3333},"Enum",{"type":1872,"tag":3326,"props":3335,"children":3337},{"className":3336},[3296,3329,3330],[3338],{"type":1877,"value":3339},"Value",{"type":1872,"tag":3326,"props":3341,"children":3343},{"className":3342},[3296,3329,3330],[3344],{"type":1877,"value":3345},"Meaning",{"type":1872,"tag":3347,"props":3348,"children":3349},"tbody",{},[3350,3383,3415,3447],{"type":1872,"tag":3322,"props":3351,"children":3352},{},[3353,3364,3373],{"type":1872,"tag":3354,"props":3355,"children":3357},"td",{"className":3356},[3296,3329,3330],[3358],{"type":1872,"tag":1886,"props":3359,"children":3361},{"className":3360},[3296],[3362],{"type":1877,"value":3363},"RESTART",{"type":1872,"tag":3354,"props":3365,"children":3367},{"className":3366},[3296,3329,3330],[3368],{"type":1872,"tag":1886,"props":3369,"children":3371},{"className":3370},[3296],[3372],{"type":1877,"value":2692},{"type":1872,"tag":3354,"props":3374,"children":3376},{"className":3375},[3296,3329,3330],[3377],{"type":1872,"tag":1886,"props":3378,"children":3380},{"className":3379},[3296],[3381],{"type":1877,"value":3382},"Start a new strip, specifying 3 vertex indices for the triangle",{"type":1872,"tag":3322,"props":3384,"children":3385},{},[3386,3396,3405],{"type":1872,"tag":3354,"props":3387,"children":3389},{"className":3388},[3296,3329,3330],[3390],{"type":1872,"tag":1886,"props":3391,"children":3393},{"className":3392},[3296],[3394],{"type":1877,"value":3395},"EDGE1",{"type":1872,"tag":3354,"props":3397,"children":3399},{"className":3398},[3296,3329,3330],[3400],{"type":1872,"tag":1886,"props":3401,"children":3403},{"className":3402},[3296],[3404],{"type":1877,"value":2352},{"type":1872,"tag":3354,"props":3406,"children":3408},{"className":3407},[3296,3329,3330],[3409],{"type":1872,"tag":1886,"props":3410,"children":3412},{"className":3411},[3296],[3413],{"type":1877,"value":3414},"The second edge of the predecessor triangle is reused as the first edge",{"type":1872,"tag":3322,"props":3416,"children":3417},{},[3418,3428,3437],{"type":1872,"tag":3354,"props":3419,"children":3421},{"className":3420},[3296,3329,3330],[3422],{"type":1872,"tag":1886,"props":3423,"children":3425},{"className":3424},[3296],[3426],{"type":1877,"value":3427},"EDGE2",{"type":1872,"tag":3354,"props":3429,"children":3431},{"className":3430},[3296,3329,3330],[3432],{"type":1872,"tag":1886,"props":3433,"children":3435},{"className":3434},[3296],[3436],{"type":1877,"value":2030},{"type":1872,"tag":3354,"props":3438,"children":3440},{"className":3439},[3296,3329,3330],[3441],{"type":1872,"tag":1886,"props":3442,"children":3444},{"className":3443},[3296],[3445],{"type":1877,"value":3446},"The third edge of the predecessor triangle is reused as the first edge",{"type":1872,"tag":3322,"props":3448,"children":3449},{},[3450,3460,3469],{"type":1872,"tag":3354,"props":3451,"children":3453},{"className":3452},[3296,3329,3330],[3454],{"type":1872,"tag":1886,"props":3455,"children":3457},{"className":3456},[3296],[3458],{"type":1877,"value":3459},"BACKTRACK",{"type":1872,"tag":3354,"props":3461,"children":3463},{"className":3462},[3296,3329,3330],[3464],{"type":1872,"tag":1886,"props":3465,"children":3467},{"className":3466},[3296],[3468],{"type":1877,"value":2326},{"type":1872,"tag":3354,"props":3470,"children":3472},{"className":3471},[3296,3329,3330],[3473],{"type":1872,"tag":1886,"props":3474,"children":3476},{"className":3475},[3296],[3477,3479,3485],{"type":1877,"value":3478},"The opposite edge of the predecessor’s predecessor is reused. ",{"type":1872,"tag":3480,"props":3481,"children":3482},"quote",{},[3483],{"type":1877,"value":3484},"Opposite edge",{"type":1877,"value":3486}," means EDGE1 if the predecessor used EDGE2, or EDGE2 if the predecessor used EDGE1. BACKTRACK is not allowed unless the predecessor used EDGE1 or EDGE2. A BACKTRACK triangle may not occur after a RESTART or another BACKTRACK",{"type":1872,"tag":1886,"props":3488,"children":3489},{},[3490],{"type":1877,"value":3491},"The behavior of the triangle control values is illustrated in the diagram\nbelow:",{"type":1872,"tag":1886,"props":3493,"children":3494},{},[3495],{"type":1872,"tag":1930,"props":3496,"children":3500},{"alt":3497,"src":3498,"title":3499},"DGF control values","https://data.vkdoc.net/images/DGF_control_values.svg","DGF control value behavior",[],{"type":1872,"tag":1886,"props":3502,"children":3503},{},[3504],{"type":1877,"value":3505},"In the diagram above, the vertex orders for the 3 predecessor triangles are:",{"type":1872,"tag":2530,"props":3507,"children":3508},{},[3509,3514,3519],{"type":1872,"tag":2534,"props":3510,"children":3511},{},[3512],{"type":1877,"value":3513},"RESTART: 0,1,2",{"type":1872,"tag":2534,"props":3515,"children":3516},{},[3517],{"type":1877,"value":3518},"EDGE1: 2,1,3 (reuse the 1→2 edge)",{"type":1872,"tag":2534,"props":3520,"children":3521},{},[3522],{"type":1877,"value":3523},"EDGE1: 3,1,4 (reuse the 1→3 edge)",{"type":1872,"tag":1886,"props":3525,"children":3526},{},[3527],{"type":1877,"value":3528},"The four possible vertex orders for the next triangle depend on its control\nvalue, and are:",{"type":1872,"tag":2530,"props":3530,"children":3531},{},[3532,3537,3542,3547],{"type":1872,"tag":2534,"props":3533,"children":3534},{},[3535],{"type":1877,"value":3536},"RESTART: 5,6,7",{"type":1872,"tag":2534,"props":3538,"children":3539},{},[3540],{"type":1877,"value":3541},"EDGE1: 4,1,5 (reuse the 1→4 edge)",{"type":1872,"tag":2534,"props":3543,"children":3544},{},[3545],{"type":1877,"value":3546},"EDGE2: 3,4,5 (reuse the 4→3 edge)",{"type":1872,"tag":2534,"props":3548,"children":3549},{},[3550],{"type":1877,"value":3551},"BACKTRACK: 2,3,5 (reuse the 3→2 edge)",{"type":1872,"tag":1886,"props":3553,"children":3554},{},[3555],{"type":1877,"value":3556},"Note that whenever an edge is reused, its vertices are reversed so that\ntriangle winding is correct.\nMeshes with mixed winding can be encoded by restarting the strip on each\nwinding change.",{"type":1872,"tag":1886,"props":3558,"children":3559},{},[3560],{"type":1877,"value":3561},"The control values for the triangles correspond to an index buffer\ncontaining three indices for each RESTART triangle, and one index for each\nnon-RESTART triangle.\nThis index buffer is compressed by re-ordering the vertices by first use and\nomitting the first reference to every vertex (since this index can be\ncomputed by incrementing a counter).\nA single bit per index is used to indicate whether it is the first reference\nto its corresponding vertex.\nThe reused indices are then directly stored in a tightly-packed buffer\n(i.e., not interleaved with the single-bit index-is-first flags).",{"type":1872,"tag":1886,"props":3563,"children":3564},{},[3565],{"type":1877,"value":3566},"The example below illustrates the index buffer encoding:",{"type":1872,"tag":1886,"props":3568,"children":3569},{},[3570],{"type":1872,"tag":1930,"props":3571,"children":3575},{"alt":3572,"src":3573,"title":3574},"DGF indices","https://data.vkdoc.net/images/DGF_indices.svg","DGF Index buffer example",[],{"type":1872,"tag":1886,"props":3577,"children":3578},{},[3579],{"type":1877,"value":3580},"A triangle’s position in the index buffer can be computed by taking the\ntriangle index and adding 2 for each RESTART triangle at the same or earlier\npositions.\nThis gives the index buffer position for the triangle’s third vertex.\nThe remaining two vertices are inferred from the previous two triangles\nbased on the control values.",{"type":1872,"tag":1886,"props":3582,"children":3583},{},[3584],{"type":1877,"value":3585},"An index from the compressed index buffer is extracted as follows:",{"type":1872,"tag":1941,"props":3587,"children":3589},{"className":1943,"code":3588,"language":1945,"meta":1867,"style":1867},"uint get_index(uint indexPosition, uint64_t isFirst, uint nonFirstIndices[])\n{\n // count number of \"first\" vertex refs which precede this one\n // NOTE that an efficient implementation would use a popcount() here\n int numFirst = 0;\n for (int i = 0; i \u003C indexPosition; i++)\n {\n if (isFirst & (1ull \u003C\u003C i))\n numFirst++;\n }\n\n // the first reference to each vertex is implicit\n // reused indices are read\n if (isFirst & (1ull \u003C\u003C indexPosition))\n return numFirst;\n else\n return nonFirstIndices[indexPosition - numFirst]; // NOTE: Bounds check omitted for brevity\n\n}\n",[3590],{"type":1872,"tag":1948,"props":3591,"children":3592},{"__ignoreMap":1867},[3593,3656,3663,3671,3679,3704,3758,3766,3807,3823,3831,3838,3846,3854,3891,3904,3912,3942,3949],{"type":1872,"tag":1952,"props":3594,"children":3595},{"class":1954,"line":10},[3596,3601,3606,3610,3614,3619,3624,3629,3634,3638,3642,3647,3652],{"type":1872,"tag":1952,"props":3597,"children":3598},{"style":1958},[3599],{"type":1877,"value":3600},"uint",{"type":1872,"tag":1952,"props":3602,"children":3603},{"style":2584},[3604],{"type":1877,"value":3605}," get_index",{"type":1872,"tag":1952,"props":3607,"children":3608},{"style":1964},[3609],{"type":1877,"value":2592},{"type":1872,"tag":1952,"props":3611,"children":3612},{"style":1958},[3613],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":3615,"children":3616},{"style":2600},[3617],{"type":1877,"value":3618}," indexPosition",{"type":1872,"tag":1952,"props":3620,"children":3621},{"style":1964},[3622],{"type":1877,"value":3623},", ",{"type":1872,"tag":1952,"props":3625,"children":3626},{"style":1958},[3627],{"type":1877,"value":3628},"uint64_t",{"type":1872,"tag":1952,"props":3630,"children":3631},{"style":2600},[3632],{"type":1877,"value":3633}," isFirst",{"type":1872,"tag":1952,"props":3635,"children":3636},{"style":1964},[3637],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":3639,"children":3640},{"style":1958},[3641],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":3643,"children":3644},{"style":2600},[3645],{"type":1877,"value":3646}," nonFirstIndices",{"type":1872,"tag":1952,"props":3648,"children":3649},{"style":1958},[3650],{"type":1877,"value":3651},"[]",{"type":1872,"tag":1952,"props":3653,"children":3654},{"style":1964},[3655],{"type":1877,"value":2654},{"type":1872,"tag":1952,"props":3657,"children":3658},{"class":1954,"line":14},[3659],{"type":1872,"tag":1952,"props":3660,"children":3661},{"style":1964},[3662],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":3664,"children":3665},{"class":1954,"line":18},[3666],{"type":1872,"tag":1952,"props":3667,"children":3668},{"style":1981},[3669],{"type":1877,"value":3670}," // count number of \"first\" vertex refs which precede this one\n",{"type":1872,"tag":1952,"props":3672,"children":3673},{"class":1954,"line":22},[3674],{"type":1872,"tag":1952,"props":3675,"children":3676},{"style":1981},[3677],{"type":1877,"value":3678}," // NOTE that an efficient implementation would use a popcount() here\n",{"type":1872,"tag":1952,"props":3680,"children":3681},{"class":1954,"line":26},[3682,3686,3691,3695,3700],{"type":1872,"tag":1952,"props":3683,"children":3684},{"style":1958},[3685],{"type":1877,"value":2669},{"type":1872,"tag":1952,"props":3687,"children":3688},{"style":1964},[3689],{"type":1877,"value":3690}," numFirst ",{"type":1872,"tag":1952,"props":3692,"children":3693},{"style":1958},[3694],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":3696,"children":3697},{"style":2000},[3698],{"type":1877,"value":3699}," 0",{"type":1872,"tag":1952,"props":3701,"children":3702},{"style":1964},[3703],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":3705,"children":3706},{"class":1954,"line":30},[3707,3712,3716,3721,3726,3730,3734,3739,3744,3749,3754],{"type":1872,"tag":1952,"props":3708,"children":3709},{"style":1958},[3710],{"type":1877,"value":3711}," for",{"type":1872,"tag":1952,"props":3713,"children":3714},{"style":1964},[3715],{"type":1877,"value":2858},{"type":1872,"tag":1952,"props":3717,"children":3718},{"style":1958},[3719],{"type":1877,"value":3720},"int",{"type":1872,"tag":1952,"props":3722,"children":3723},{"style":1964},[3724],{"type":1877,"value":3725}," i ",{"type":1872,"tag":1952,"props":3727,"children":3728},{"style":1958},[3729],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":3731,"children":3732},{"style":2000},[3733],{"type":1877,"value":3699},{"type":1872,"tag":1952,"props":3735,"children":3736},{"style":1964},[3737],{"type":1877,"value":3738},"; i ",{"type":1872,"tag":1952,"props":3740,"children":3741},{"style":1958},[3742],{"type":1877,"value":3743},"\u003C",{"type":1872,"tag":1952,"props":3745,"children":3746},{"style":1964},[3747],{"type":1877,"value":3748}," indexPosition; i",{"type":1872,"tag":1952,"props":3750,"children":3751},{"style":1958},[3752],{"type":1877,"value":3753},"++",{"type":1872,"tag":1952,"props":3755,"children":3756},{"style":1964},[3757],{"type":1877,"value":2654},{"type":1872,"tag":1952,"props":3759,"children":3760},{"class":1954,"line":34},[3761],{"type":1872,"tag":1952,"props":3762,"children":3763},{"style":1964},[3764],{"type":1877,"value":3765}," {\n",{"type":1872,"tag":1952,"props":3767,"children":3768},{"class":1954,"line":38},[3769,3774,3779,3784,3788,3792,3797,3802],{"type":1872,"tag":1952,"props":3770,"children":3771},{"style":1958},[3772],{"type":1877,"value":3773}," if",{"type":1872,"tag":1952,"props":3775,"children":3776},{"style":1964},[3777],{"type":1877,"value":3778}," (isFirst ",{"type":1872,"tag":1952,"props":3780,"children":3781},{"style":1958},[3782],{"type":1877,"value":3783},"&",{"type":1872,"tag":1952,"props":3785,"children":3786},{"style":1964},[3787],{"type":1877,"value":2858},{"type":1872,"tag":1952,"props":3789,"children":3790},{"style":2000},[3791],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":3793,"children":3794},{"style":1958},[3795],{"type":1877,"value":3796},"ull",{"type":1872,"tag":1952,"props":3798,"children":3799},{"style":1958},[3800],{"type":1877,"value":3801}," \u003C\u003C",{"type":1872,"tag":1952,"props":3803,"children":3804},{"style":1964},[3805],{"type":1877,"value":3806}," i))\n",{"type":1872,"tag":1952,"props":3808,"children":3809},{"class":1954,"line":42},[3810,3815,3819],{"type":1872,"tag":1952,"props":3811,"children":3812},{"style":1964},[3813],{"type":1877,"value":3814}," numFirst",{"type":1872,"tag":1952,"props":3816,"children":3817},{"style":1958},[3818],{"type":1877,"value":3753},{"type":1872,"tag":1952,"props":3820,"children":3821},{"style":1964},[3822],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":3824,"children":3825},{"class":1954,"line":46},[3826],{"type":1872,"tag":1952,"props":3827,"children":3828},{"style":1964},[3829],{"type":1877,"value":3830}," }\n",{"type":1872,"tag":1952,"props":3832,"children":3833},{"class":1954,"line":50},[3834],{"type":1872,"tag":1952,"props":3835,"children":3836},{"emptyLinePlaceholder":232},[3837],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":3839,"children":3840},{"class":1954,"line":54},[3841],{"type":1872,"tag":1952,"props":3842,"children":3843},{"style":1981},[3844],{"type":1877,"value":3845}," // the first reference to each vertex is implicit\n",{"type":1872,"tag":1952,"props":3847,"children":3848},{"class":1954,"line":58},[3849],{"type":1872,"tag":1952,"props":3850,"children":3851},{"style":1981},[3852],{"type":1877,"value":3853}," // reused indices are read\n",{"type":1872,"tag":1952,"props":3855,"children":3856},{"class":1954,"line":62},[3857,3862,3866,3870,3874,3878,3882,3886],{"type":1872,"tag":1952,"props":3858,"children":3859},{"style":1958},[3860],{"type":1877,"value":3861}," if",{"type":1872,"tag":1952,"props":3863,"children":3864},{"style":1964},[3865],{"type":1877,"value":3778},{"type":1872,"tag":1952,"props":3867,"children":3868},{"style":1958},[3869],{"type":1877,"value":3783},{"type":1872,"tag":1952,"props":3871,"children":3872},{"style":1964},[3873],{"type":1877,"value":2858},{"type":1872,"tag":1952,"props":3875,"children":3876},{"style":2000},[3877],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":3879,"children":3880},{"style":1958},[3881],{"type":1877,"value":3796},{"type":1872,"tag":1952,"props":3883,"children":3884},{"style":1958},[3885],{"type":1877,"value":3801},{"type":1872,"tag":1952,"props":3887,"children":3888},{"style":1964},[3889],{"type":1877,"value":3890}," indexPosition))\n",{"type":1872,"tag":1952,"props":3892,"children":3893},{"class":1954,"line":66},[3894,3899],{"type":1872,"tag":1952,"props":3895,"children":3896},{"style":1958},[3897],{"type":1877,"value":3898}," return",{"type":1872,"tag":1952,"props":3900,"children":3901},{"style":1964},[3902],{"type":1877,"value":3903}," numFirst;\n",{"type":1872,"tag":1952,"props":3905,"children":3906},{"class":1954,"line":70},[3907],{"type":1872,"tag":1952,"props":3908,"children":3909},{"style":1958},[3910],{"type":1877,"value":3911}," else\n",{"type":1872,"tag":1952,"props":3913,"children":3914},{"class":1954,"line":74},[3915,3919,3923,3928,3932,3937],{"type":1872,"tag":1952,"props":3916,"children":3917},{"style":1958},[3918],{"type":1877,"value":3898},{"type":1872,"tag":1952,"props":3920,"children":3921},{"style":2600},[3922],{"type":1877,"value":3646},{"type":1872,"tag":1952,"props":3924,"children":3925},{"style":1964},[3926],{"type":1877,"value":3927},"[indexPosition ",{"type":1872,"tag":1952,"props":3929,"children":3930},{"style":1958},[3931],{"type":1877,"value":2991},{"type":1872,"tag":1952,"props":3933,"children":3934},{"style":1964},[3935],{"type":1877,"value":3936}," numFirst];",{"type":1872,"tag":1952,"props":3938,"children":3939},{"style":1981},[3940],{"type":1877,"value":3941}," // NOTE: Bounds check omitted for brevity\n",{"type":1872,"tag":1952,"props":3943,"children":3944},{"class":1954,"line":78},[3945],{"type":1872,"tag":1952,"props":3946,"children":3947},{"emptyLinePlaceholder":232},[3948],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":3950,"children":3951},{"class":1954,"line":82},[3952],{"type":1872,"tag":1952,"props":3953,"children":3954},{"style":1964},[3955],{"type":1877,"value":3037},{"type":1872,"tag":1915,"props":3957,"children":3959},{"id":3958},"_primitive_index",[3960],{"type":1877,"value":3961},"Primitive Index",{"type":1872,"tag":1886,"props":3963,"children":3964},{},[3965],{"type":1877,"value":3966},"The primitive index for a DGF triangle is inferred from its position in the\nstrip, which removes the need to directly store it.\nA 29b primitive index base is stored in the block and added to the\ntriangle’s position in the block to produce a per-triangle primitive index.",{"type":1872,"tag":1941,"props":3968,"children":3970},{"className":1943,"code":3969,"language":1945,"meta":1867,"style":1867},"PrimitiveIndex = header.prim_id_base + triangle_index_in_block;\n",[3971],{"type":1872,"tag":1948,"props":3972,"children":3973},{"__ignoreMap":1867},[3974],{"type":1872,"tag":1952,"props":3975,"children":3976},{"class":1954,"line":10},[3977,3982,3986,3991,3995],{"type":1872,"tag":1952,"props":3978,"children":3979},{"style":1964},[3980],{"type":1877,"value":3981},"PrimitiveIndex ",{"type":1872,"tag":1952,"props":3983,"children":3984},{"style":1958},[3985],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":3987,"children":3988},{"style":1964},[3989],{"type":1877,"value":3990}," header.prim_id_base ",{"type":1872,"tag":1952,"props":3992,"children":3993},{"style":1958},[3994],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":3996,"children":3997},{"style":1964},[3998],{"type":1877,"value":3999}," triangle_index_in_block;\n",{"type":1872,"tag":1886,"props":4001,"children":4002},{},[4003],{"type":1877,"value":4004},"The result must fit in 29b.\nAny overflow results in undefined behavior.",{"type":1872,"tag":1915,"props":4006,"children":4008},{"id":4007},"_geometry_index_and_opaque_flag",[4009],{"type":1877,"value":4010},"Geometry Index and Opaque Flag",{"type":1872,"tag":1886,"props":4012,"children":4013},{},[4014],{"type":1877,"value":4015},"DGF supports specifying a 24b geometry index and a 1b opaque flag on a\nper-triangle basis.\nThese are combined into a 25b value with the opaque flag in the least\nsignificant bit.",{"type":1872,"tag":1886,"props":4017,"children":4018},{},[4019],{"type":1877,"value":4020},"There are two supported modes:",{"type":1872,"tag":2530,"props":4022,"children":4023},{},[4024,4029],{"type":1872,"tag":2534,"props":4025,"children":4026},{},[4027],{"type":1877,"value":4028},"Constant mode: A 9b geometry index and 1b opaque flag is applied to all\ntriangles,",{"type":1872,"tag":2534,"props":4030,"children":4031},{},[4032],{"type":1877,"value":4033},"Palette mode: An array of up to 32 25b values is stored in the block, in\ncompressed form, and a per-triangle index is used to select a value from\nthe array.",{"type":1872,"tag":1886,"props":4035,"children":4036},{},[4037,4039,4045],{"type":1877,"value":4038},"If palette mode is in use, there is no requirement that the ",{"type":1872,"tag":1948,"props":4040,"children":4042},{"className":4041},[],[4043],{"type":1877,"value":4044},"opaque",{"type":1877,"value":4046}," flags\nare consistent for triangles with the same geometry index.",{"type":1872,"tag":1886,"props":4048,"children":4049},{},[4050],{"type":1877,"value":4051},"The palette mode is useful in the following circumstances:",{"type":1872,"tag":2530,"props":4053,"children":4054},{},[4055,4060,4065],{"type":1872,"tag":2534,"props":4056,"children":4057},{},[4058],{"type":1877,"value":4059},"When the triangles in the block have different geometry index or opacity\nvalues",{"type":1872,"tag":2534,"props":4061,"children":4062},{},[4063],{"type":1877,"value":4064},"When the triangles have the same geometry index, but it is larger than the\n9b limit for palette mode.",{"type":1872,"tag":2534,"props":4066,"children":4067},{},[4068],{"type":1877,"value":4069},"When the number of triangles per geo is small, and constant mode would\ncreate under-utilized blocks.",{"type":1872,"tag":3139,"props":4071,"children":4073},{"id":4072},"_geomid_palette",[4074],{"type":1877,"value":4075},"GeomID Palette",{"type":1872,"tag":1886,"props":4077,"children":4078},{},[4079,4081,4087],{"type":1877,"value":4080},"There are two supported modes for specifying geometry indices and opaque\nflags.\nThe mode is selected based on the ",{"type":1872,"tag":1948,"props":4082,"children":4084},{"className":4083},[],[4085],{"type":1877,"value":4086},"geom_id_mode",{"type":1877,"value":4088}," field in the header:",{"type":1872,"tag":3292,"props":4090,"children":4093},{"id":4091,"className":4092},"DGF-mode-enum",[3296,3297,3298,3299],[4094,4106,4128],{"type":1872,"tag":3302,"props":4095,"children":4096},{},[4097,4100,4103],{"type":1872,"tag":3306,"props":4098,"children":4099},{"style":3308},[],{"type":1872,"tag":3306,"props":4101,"children":4102},{"style":3308},[],{"type":1872,"tag":3306,"props":4104,"children":4105},{"style":3315},[],{"type":1872,"tag":3318,"props":4107,"children":4108},{},[4109],{"type":1872,"tag":3322,"props":4110,"children":4111},{},[4112,4117,4122],{"type":1872,"tag":3326,"props":4113,"children":4115},{"className":4114},[3296,3329,3330],[4116],{"type":1877,"value":3333},{"type":1872,"tag":3326,"props":4118,"children":4120},{"className":4119},[3296,3329,3330],[4121],{"type":1877,"value":3339},{"type":1872,"tag":3326,"props":4123,"children":4125},{"className":4124},[3296,3329,3330],[4126],{"type":1877,"value":4127},"Encoding System",{"type":1872,"tag":3347,"props":4129,"children":4130},{},[4131,4163],{"type":1872,"tag":3322,"props":4132,"children":4133},{},[4134,4144,4153],{"type":1872,"tag":3354,"props":4135,"children":4137},{"className":4136},[3296,3329,3330],[4138],{"type":1872,"tag":1886,"props":4139,"children":4141},{"className":4140},[3296],[4142],{"type":1877,"value":4143},"Constant Mode",{"type":1872,"tag":3354,"props":4145,"children":4147},{"className":4146},[3296,3329,3330],[4148],{"type":1872,"tag":1886,"props":4149,"children":4151},{"className":4150},[3296],[4152],{"type":1877,"value":2692},{"type":1872,"tag":3354,"props":4154,"children":4156},{"className":4155},[3296,3329,3330],[4157],{"type":1872,"tag":1886,"props":4158,"children":4160},{"className":4159},[3296],[4161],{"type":1877,"value":4162},"A 9b geomID and a 1b opaque flag are applied to all triangles",{"type":1872,"tag":3322,"props":4164,"children":4165},{},[4166,4176,4185],{"type":1872,"tag":3354,"props":4167,"children":4169},{"className":4168},[3296,3329,3330],[4170],{"type":1872,"tag":1886,"props":4171,"children":4173},{"className":4172},[3296],[4174],{"type":1877,"value":4175},"Palette Mode",{"type":1872,"tag":3354,"props":4177,"children":4179},{"className":4178},[3296,3329,3330],[4180],{"type":1872,"tag":1886,"props":4181,"children":4183},{"className":4182},[3296],[4184],{"type":1877,"value":2352},{"type":1872,"tag":3354,"props":4186,"children":4188},{"className":4187},[3296,3329,3330],[4189],{"type":1872,"tag":1886,"props":4190,"children":4192},{"className":4191},[3296],[4193],{"type":1877,"value":4194},"An array of up to 32 25b values is stored in compressed form; each triangle stores an index into the array",{"type":1872,"tag":1886,"props":4196,"children":4197},{},[4198,4200,4206],{"type":1877,"value":4199},"In constant mode, bit 0 of ",{"type":1872,"tag":1948,"props":4201,"children":4203},{"className":4202},[],[4204],{"type":1877,"value":4205},"geom_id_meta",{"type":1877,"value":4207}," contains an opaque flag, and bits\n1-9 store a geometry index.\nThese values are used for all triangles.\nIn this mode, no additional data are stored in the block, and more space is\navailable for vertex data.",{"type":1872,"tag":1886,"props":4209,"children":4210},{},[4211,4213,4218],{"type":1877,"value":4212},"In palette mode, the ",{"type":1872,"tag":1948,"props":4214,"children":4216},{"className":4215},[],[4217],{"type":1877,"value":4205},{"type":1877,"value":4219}," field is interpreted as follows:",{"type":1872,"tag":2530,"props":4221,"children":4222},{},[4223,4228],{"type":1872,"tag":2534,"props":4224,"children":4225},{},[4226],{"type":1877,"value":4227},"LSBs (4:0) encode a GeomID prefix size in bits (5b, 0-25)",{"type":1872,"tag":2534,"props":4229,"children":4230},{},[4231],{"type":1877,"value":4232},"MSBs (9:5) encode a GeomID count (5b, 1-32 (add 1 when decoding)).",{"type":1872,"tag":1886,"props":4234,"children":4235},{},[4236],{"type":1877,"value":4237},"In palette mode, a GeomID palette structure is inserted in the block.\nThe position and size of the palette structure are aligned to byte\nboundaries.\nPad bits are appended as required, and all pad bits must be zero.",{"type":1872,"tag":1886,"props":4239,"children":4240},{},[4241],{"type":1877,"value":4242},"The GeomID palette consists of the following structures in this order:",{"type":1872,"tag":2530,"props":4244,"children":4245},{},[4246,4258,4278],{"type":1872,"tag":2534,"props":4247,"children":4248},{},[4249,4251,4256],{"type":1877,"value":4250},"A prefix value whose bit length is given in the 5 LSBs of ",{"type":1872,"tag":1948,"props":4252,"children":4254},{"className":4253},[],[4255],{"type":1877,"value":4205},{"type":1877,"value":4257},".",{"type":1872,"tag":2534,"props":4259,"children":4260},{},[4261,4263],{"type":1877,"value":4262},"A per-triangle index buffer identifying the payload to use for each\ntriangle.",{"type":1872,"tag":2530,"props":4264,"children":4265},{},[4266],{"type":1872,"tag":2534,"props":4267,"children":4268},{},[4269,4271,4277],{"type":1877,"value":4270},"The size of each index is ",{"type":1872,"tag":1948,"props":4272,"children":4274},{"className":4273},[],[4275],{"type":1877,"value":4276},"ceil(log2(GeomID count))",{"type":1877,"value":4257},{"type":1872,"tag":2534,"props":4279,"children":4280},{},[4281,4283,4289],{"type":1877,"value":4282},"An array of N-bit payloads, where N is ",{"type":1872,"tag":1948,"props":4284,"children":4286},{"className":4285},[],[4287],{"type":1877,"value":4288},"25 - prefixSize",{"type":1877,"value":4290},".\nThe LSB of each payload contains an opaque flag.",{"type":1872,"tag":1886,"props":4292,"children":4293},{},[4294],{"type":1877,"value":4295},"The 25b geomID and opaque flag for a given triangle are decoded by selecting\na payload from the payload buffer, and concatenating it with the prefix\nvalue.\nThe following pseudocode illustrates this process:",{"type":1872,"tag":1941,"props":4297,"children":4299},{"className":1943,"code":4298,"language":1945,"meta":1867,"style":1867},"// Helper function to extract a bit field from the DGF block\nuint ReadBits(uint bitPos, uint numBits);\n\nuint get_id_and_opacity(uint geom_id_meta, uint triIndex, uint triCount);\n{\n uint prefixSize = geom_id_meta & 0x1f;\n uint payloadSize = 25 - prefixSize;\n uint geomIDCount = ((geom_id_meta >> 5) & 0x1f) + 1;\n uint indexSize = 32 - lzcount(geomIDCount - 1);\n\n uint paletteBitPos = ComputePaletteBitPosition();\n uint prefix = ReadBits(paletteBitPos, prefixSize);\n\n uint indexBufferPos = paletteBitPos + prefixSize;\n uint index = ReadBits(indexBufferPos + triIndex * indexSize, indexSize);\n\n uint payloadBufferPos = indexBufferPos + triCount * indexSize;\n uint payload = ReadBits(payloadBufferPos, index, payloadSize);\n\n return (prefix \u003C\u003C payloadSize) | payload;\n}\n",[4300],{"type":1872,"tag":1948,"props":4301,"children":4302},{"__ignoreMap":1867},[4303,4311,4353,4360,4415,4422,4462,4493,4558,4605,4612,4638,4663,4670,4698,4741,4748,4786,4811,4818,4850],{"type":1872,"tag":1952,"props":4304,"children":4305},{"class":1954,"line":10},[4306],{"type":1872,"tag":1952,"props":4307,"children":4308},{"style":1981},[4309],{"type":1877,"value":4310},"// Helper function to extract a bit field from the DGF block\n",{"type":1872,"tag":1952,"props":4312,"children":4313},{"class":1954,"line":14},[4314,4318,4323,4327,4331,4336,4340,4344,4349],{"type":1872,"tag":1952,"props":4315,"children":4316},{"style":1958},[4317],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4319,"children":4320},{"style":2584},[4321],{"type":1877,"value":4322}," ReadBits",{"type":1872,"tag":1952,"props":4324,"children":4325},{"style":1964},[4326],{"type":1877,"value":2592},{"type":1872,"tag":1952,"props":4328,"children":4329},{"style":1958},[4330],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4332,"children":4333},{"style":2600},[4334],{"type":1877,"value":4335}," bitPos",{"type":1872,"tag":1952,"props":4337,"children":4338},{"style":1964},[4339],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":4341,"children":4342},{"style":1958},[4343],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4345,"children":4346},{"style":2600},[4347],{"type":1877,"value":4348}," numBits",{"type":1872,"tag":1952,"props":4350,"children":4351},{"style":1964},[4352],{"type":1877,"value":3001},{"type":1872,"tag":1952,"props":4354,"children":4355},{"class":1954,"line":18},[4356],{"type":1872,"tag":1952,"props":4357,"children":4358},{"emptyLinePlaceholder":232},[4359],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":4361,"children":4362},{"class":1954,"line":22},[4363,4367,4372,4376,4380,4385,4389,4393,4398,4402,4406,4411],{"type":1872,"tag":1952,"props":4364,"children":4365},{"style":1958},[4366],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4368,"children":4369},{"style":2584},[4370],{"type":1877,"value":4371}," get_id_and_opacity",{"type":1872,"tag":1952,"props":4373,"children":4374},{"style":1964},[4375],{"type":1877,"value":2592},{"type":1872,"tag":1952,"props":4377,"children":4378},{"style":1958},[4379],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4381,"children":4382},{"style":2600},[4383],{"type":1877,"value":4384}," geom_id_meta",{"type":1872,"tag":1952,"props":4386,"children":4387},{"style":1964},[4388],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":4390,"children":4391},{"style":1958},[4392],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4394,"children":4395},{"style":2600},[4396],{"type":1877,"value":4397}," triIndex",{"type":1872,"tag":1952,"props":4399,"children":4400},{"style":1964},[4401],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":4403,"children":4404},{"style":1958},[4405],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4407,"children":4408},{"style":2600},[4409],{"type":1877,"value":4410}," triCount",{"type":1872,"tag":1952,"props":4412,"children":4413},{"style":1964},[4414],{"type":1877,"value":3001},{"type":1872,"tag":1952,"props":4416,"children":4417},{"class":1954,"line":26},[4418],{"type":1872,"tag":1952,"props":4419,"children":4420},{"style":1964},[4421],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":4423,"children":4424},{"class":1954,"line":30},[4425,4430,4435,4439,4444,4448,4453,4458],{"type":1872,"tag":1952,"props":4426,"children":4427},{"style":1958},[4428],{"type":1877,"value":4429}," uint",{"type":1872,"tag":1952,"props":4431,"children":4432},{"style":1964},[4433],{"type":1877,"value":4434}," prefixSize ",{"type":1872,"tag":1952,"props":4436,"children":4437},{"style":1958},[4438],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4440,"children":4441},{"style":1964},[4442],{"type":1877,"value":4443}," geom_id_meta ",{"type":1872,"tag":1952,"props":4445,"children":4446},{"style":1958},[4447],{"type":1877,"value":3783},{"type":1872,"tag":1952,"props":4449,"children":4450},{"style":1958},[4451],{"type":1877,"value":4452}," 0x",{"type":1872,"tag":1952,"props":4454,"children":4455},{"style":2000},[4456],{"type":1877,"value":4457},"1f",{"type":1872,"tag":1952,"props":4459,"children":4460},{"style":1964},[4461],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":4463,"children":4464},{"class":1954,"line":34},[4465,4469,4474,4478,4483,4488],{"type":1872,"tag":1952,"props":4466,"children":4467},{"style":1958},[4468],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4470,"children":4471},{"style":1964},[4472],{"type":1877,"value":4473}," payloadSize ",{"type":1872,"tag":1952,"props":4475,"children":4476},{"style":1958},[4477],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4479,"children":4480},{"style":2000},[4481],{"type":1877,"value":4482}," 25",{"type":1872,"tag":1952,"props":4484,"children":4485},{"style":1958},[4486],{"type":1877,"value":4487}," -",{"type":1872,"tag":1952,"props":4489,"children":4490},{"style":1964},[4491],{"type":1877,"value":4492}," prefixSize;\n",{"type":1872,"tag":1952,"props":4494,"children":4495},{"class":1954,"line":38},[4496,4500,4505,4509,4514,4519,4524,4529,4533,4537,4541,4545,4549,4554],{"type":1872,"tag":1952,"props":4497,"children":4498},{"style":1958},[4499],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4501,"children":4502},{"style":1964},[4503],{"type":1877,"value":4504}," geomIDCount ",{"type":1872,"tag":1952,"props":4506,"children":4507},{"style":1958},[4508],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4510,"children":4511},{"style":1964},[4512],{"type":1877,"value":4513}," ((geom_id_meta ",{"type":1872,"tag":1952,"props":4515,"children":4516},{"style":1958},[4517],{"type":1877,"value":4518},">>",{"type":1872,"tag":1952,"props":4520,"children":4521},{"style":2000},[4522],{"type":1877,"value":4523}," 5",{"type":1872,"tag":1952,"props":4525,"children":4526},{"style":1964},[4527],{"type":1877,"value":4528},") ",{"type":1872,"tag":1952,"props":4530,"children":4531},{"style":1958},[4532],{"type":1877,"value":3783},{"type":1872,"tag":1952,"props":4534,"children":4535},{"style":1958},[4536],{"type":1877,"value":4452},{"type":1872,"tag":1952,"props":4538,"children":4539},{"style":2000},[4540],{"type":1877,"value":4457},{"type":1872,"tag":1952,"props":4542,"children":4543},{"style":1964},[4544],{"type":1877,"value":4528},{"type":1872,"tag":1952,"props":4546,"children":4547},{"style":1958},[4548],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":4550,"children":4551},{"style":2000},[4552],{"type":1877,"value":4553}," 1",{"type":1872,"tag":1952,"props":4555,"children":4556},{"style":1964},[4557],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":4559,"children":4560},{"class":1954,"line":42},[4561,4565,4570,4574,4579,4583,4588,4593,4597,4601],{"type":1872,"tag":1952,"props":4562,"children":4563},{"style":1958},[4564],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4566,"children":4567},{"style":1964},[4568],{"type":1877,"value":4569}," indexSize ",{"type":1872,"tag":1952,"props":4571,"children":4572},{"style":1958},[4573],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4575,"children":4576},{"style":2000},[4577],{"type":1877,"value":4578}," 32",{"type":1872,"tag":1952,"props":4580,"children":4581},{"style":1958},[4582],{"type":1877,"value":4487},{"type":1872,"tag":1952,"props":4584,"children":4585},{"style":2584},[4586],{"type":1877,"value":4587}," lzcount",{"type":1872,"tag":1952,"props":4589,"children":4590},{"style":1964},[4591],{"type":1877,"value":4592},"(geomIDCount ",{"type":1872,"tag":1952,"props":4594,"children":4595},{"style":1958},[4596],{"type":1877,"value":2991},{"type":1872,"tag":1952,"props":4598,"children":4599},{"style":2000},[4600],{"type":1877,"value":4553},{"type":1872,"tag":1952,"props":4602,"children":4603},{"style":1964},[4604],{"type":1877,"value":3001},{"type":1872,"tag":1952,"props":4606,"children":4607},{"class":1954,"line":46},[4608],{"type":1872,"tag":1952,"props":4609,"children":4610},{"emptyLinePlaceholder":232},[4611],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":4613,"children":4614},{"class":1954,"line":50},[4615,4619,4624,4628,4633],{"type":1872,"tag":1952,"props":4616,"children":4617},{"style":1958},[4618],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4620,"children":4621},{"style":1964},[4622],{"type":1877,"value":4623}," paletteBitPos ",{"type":1872,"tag":1952,"props":4625,"children":4626},{"style":1958},[4627],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4629,"children":4630},{"style":2584},[4631],{"type":1877,"value":4632}," ComputePaletteBitPosition",{"type":1872,"tag":1952,"props":4634,"children":4635},{"style":1964},[4636],{"type":1877,"value":4637},"();\n",{"type":1872,"tag":1952,"props":4639,"children":4640},{"class":1954,"line":54},[4641,4645,4650,4654,4658],{"type":1872,"tag":1952,"props":4642,"children":4643},{"style":1958},[4644],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4646,"children":4647},{"style":1964},[4648],{"type":1877,"value":4649}," prefix ",{"type":1872,"tag":1952,"props":4651,"children":4652},{"style":1958},[4653],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4655,"children":4656},{"style":2584},[4657],{"type":1877,"value":4322},{"type":1872,"tag":1952,"props":4659,"children":4660},{"style":1964},[4661],{"type":1877,"value":4662},"(paletteBitPos, prefixSize);\n",{"type":1872,"tag":1952,"props":4664,"children":4665},{"class":1954,"line":58},[4666],{"type":1872,"tag":1952,"props":4667,"children":4668},{"emptyLinePlaceholder":232},[4669],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":4671,"children":4672},{"class":1954,"line":62},[4673,4677,4682,4686,4690,4694],{"type":1872,"tag":1952,"props":4674,"children":4675},{"style":1958},[4676],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4678,"children":4679},{"style":1964},[4680],{"type":1877,"value":4681}," indexBufferPos ",{"type":1872,"tag":1952,"props":4683,"children":4684},{"style":1958},[4685],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4687,"children":4688},{"style":1964},[4689],{"type":1877,"value":4623},{"type":1872,"tag":1952,"props":4691,"children":4692},{"style":1958},[4693],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":4695,"children":4696},{"style":1964},[4697],{"type":1877,"value":4492},{"type":1872,"tag":1952,"props":4699,"children":4700},{"class":1954,"line":66},[4701,4705,4710,4714,4718,4723,4727,4732,4736],{"type":1872,"tag":1952,"props":4702,"children":4703},{"style":1958},[4704],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4706,"children":4707},{"style":1964},[4708],{"type":1877,"value":4709}," index ",{"type":1872,"tag":1952,"props":4711,"children":4712},{"style":1958},[4713],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4715,"children":4716},{"style":2584},[4717],{"type":1877,"value":4322},{"type":1872,"tag":1952,"props":4719,"children":4720},{"style":1964},[4721],{"type":1877,"value":4722},"(indexBufferPos ",{"type":1872,"tag":1952,"props":4724,"children":4725},{"style":1958},[4726],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":4728,"children":4729},{"style":1964},[4730],{"type":1877,"value":4731}," triIndex ",{"type":1872,"tag":1952,"props":4733,"children":4734},{"style":1958},[4735],{"type":1877,"value":3024},{"type":1872,"tag":1952,"props":4737,"children":4738},{"style":1964},[4739],{"type":1877,"value":4740}," indexSize, indexSize);\n",{"type":1872,"tag":1952,"props":4742,"children":4743},{"class":1954,"line":70},[4744],{"type":1872,"tag":1952,"props":4745,"children":4746},{"emptyLinePlaceholder":232},[4747],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":4749,"children":4750},{"class":1954,"line":74},[4751,4755,4760,4764,4768,4772,4777,4781],{"type":1872,"tag":1952,"props":4752,"children":4753},{"style":1958},[4754],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4756,"children":4757},{"style":1964},[4758],{"type":1877,"value":4759}," payloadBufferPos ",{"type":1872,"tag":1952,"props":4761,"children":4762},{"style":1958},[4763],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4765,"children":4766},{"style":1964},[4767],{"type":1877,"value":4681},{"type":1872,"tag":1952,"props":4769,"children":4770},{"style":1958},[4771],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":4773,"children":4774},{"style":1964},[4775],{"type":1877,"value":4776}," triCount ",{"type":1872,"tag":1952,"props":4778,"children":4779},{"style":1958},[4780],{"type":1877,"value":3024},{"type":1872,"tag":1952,"props":4782,"children":4783},{"style":1964},[4784],{"type":1877,"value":4785}," indexSize;\n",{"type":1872,"tag":1952,"props":4787,"children":4788},{"class":1954,"line":78},[4789,4793,4798,4802,4806],{"type":1872,"tag":1952,"props":4790,"children":4791},{"style":1958},[4792],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4794,"children":4795},{"style":1964},[4796],{"type":1877,"value":4797}," payload ",{"type":1872,"tag":1952,"props":4799,"children":4800},{"style":1958},[4801],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":4803,"children":4804},{"style":2584},[4805],{"type":1877,"value":4322},{"type":1872,"tag":1952,"props":4807,"children":4808},{"style":1964},[4809],{"type":1877,"value":4810},"(payloadBufferPos, index, payloadSize);\n",{"type":1872,"tag":1952,"props":4812,"children":4813},{"class":1954,"line":82},[4814],{"type":1872,"tag":1952,"props":4815,"children":4816},{"emptyLinePlaceholder":232},[4817],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":4819,"children":4820},{"class":1954,"line":86},[4821,4825,4830,4835,4840,4845],{"type":1872,"tag":1952,"props":4822,"children":4823},{"style":1958},[4824],{"type":1877,"value":3009},{"type":1872,"tag":1952,"props":4826,"children":4827},{"style":1964},[4828],{"type":1877,"value":4829}," (prefix ",{"type":1872,"tag":1952,"props":4831,"children":4832},{"style":1958},[4833],{"type":1877,"value":4834},"\u003C\u003C",{"type":1872,"tag":1952,"props":4836,"children":4837},{"style":1964},[4838],{"type":1877,"value":4839}," payloadSize) ",{"type":1872,"tag":1952,"props":4841,"children":4842},{"style":1958},[4843],{"type":1877,"value":4844},"|",{"type":1872,"tag":1952,"props":4846,"children":4847},{"style":1964},[4848],{"type":1877,"value":4849}," payload;\n",{"type":1872,"tag":1952,"props":4851,"children":4852},{"class":1954,"line":90},[4853],{"type":1872,"tag":1952,"props":4854,"children":4855},{"style":1964},[4856],{"type":1877,"value":3037},{"type":1872,"tag":1915,"props":4858,"children":4860},{"id":4859},"_omm_support",[4861],{"type":1877,"value":4862},"OMM Support",{"type":1872,"tag":1886,"props":4864,"children":4865},{},[4866,4868,4874],{"type":1877,"value":4867},"DGF provides a degree of OMM support by allowing the triangles within a DGF\nblock to collectively reference a limited number of OMMs.\nThe OMM support in DGF is best suited for scenarios in which a small set of\nOMMs is repeated many times over a large mesh (e.g. tree leaves).\nFor intricate alpha cutouts applied to high-poly models, it is potentially\nmore efficient to tessellate the geometry and ",{"type":1872,"tag":1948,"props":4869,"children":4871},{"className":4870},[],[4872],{"type":1877,"value":4873},"bake in",{"type":1877,"value":4875}," the alpha cutout.",{"type":1872,"tag":1886,"props":4877,"children":4878},{},[4879],{"type":1877,"value":4880},"Because OMMs are constructed independently of acceleration structure\ncontent, the encoder must reserve space for a set of implementation-defined\n\"OMM descriptors\" which may be injected into the block at runtime.\nA DGF block can hold a maximum of 7 descriptors, with each descriptor either\nencoding an OMM special index or referencing an OMM array entry.\nThe application must know the triangle-to-OMM mapping when the DGF block is\nencoded, and the encoder must assign triangles to blocks such that the\ndescriptor limit is not exceeded, and ideally such that the number of OMMs\nper block is minimized.",{"type":1872,"tag":1886,"props":4882,"children":4883},{},[4884],{"type":1877,"value":4885},"The mapping of triangles to OMMs is illustrated by the following\npseudo-code:",{"type":1872,"tag":1941,"props":4887,"children":4889},{"className":1943,"code":4888,"language":1945,"meta":1867,"style":1867},"//\n// The number of unique return values from \"get_omm_index\" in a given block must not\n// exceed the number of descriptors allocated in the block\n//\nuint get_omm_index( uint primIDBase, uint triangleIndexInBlock )\n{\n // reconstruct primitive index\n uint primIndex = primIDBase + triangleIndexInBlock;\n\n // map primitive index to the index of an OMM in the OMM array\n if( indexed_omms )\n return OMMIndexBuffer[primIndex];\n else\n return primIndex;\n}\n",[4890],{"type":1872,"tag":1948,"props":4891,"children":4892},{"__ignoreMap":1867},[4893,4901,4909,4917,4924,4968,4975,4983,5013,5020,5028,5040,5057,5064,5076],{"type":1872,"tag":1952,"props":4894,"children":4895},{"class":1954,"line":10},[4896],{"type":1872,"tag":1952,"props":4897,"children":4898},{"style":1981},[4899],{"type":1877,"value":4900},"//\n",{"type":1872,"tag":1952,"props":4902,"children":4903},{"class":1954,"line":14},[4904],{"type":1872,"tag":1952,"props":4905,"children":4906},{"style":1981},[4907],{"type":1877,"value":4908},"// The number of unique return values from \"get_omm_index\" in a given block must not\n",{"type":1872,"tag":1952,"props":4910,"children":4911},{"class":1954,"line":18},[4912],{"type":1872,"tag":1952,"props":4913,"children":4914},{"style":1981},[4915],{"type":1877,"value":4916},"// exceed the number of descriptors allocated in the block\n",{"type":1872,"tag":1952,"props":4918,"children":4919},{"class":1954,"line":22},[4920],{"type":1872,"tag":1952,"props":4921,"children":4922},{"style":1981},[4923],{"type":1877,"value":4900},{"type":1872,"tag":1952,"props":4925,"children":4926},{"class":1954,"line":26},[4927,4931,4936,4941,4945,4950,4954,4958,4963],{"type":1872,"tag":1952,"props":4928,"children":4929},{"style":1958},[4930],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4932,"children":4933},{"style":2584},[4934],{"type":1877,"value":4935}," get_omm_index",{"type":1872,"tag":1952,"props":4937,"children":4938},{"style":1964},[4939],{"type":1877,"value":4940},"( ",{"type":1872,"tag":1952,"props":4942,"children":4943},{"style":1958},[4944],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4946,"children":4947},{"style":2600},[4948],{"type":1877,"value":4949}," primIDBase",{"type":1872,"tag":1952,"props":4951,"children":4952},{"style":1964},[4953],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":4955,"children":4956},{"style":1958},[4957],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":4959,"children":4960},{"style":2600},[4961],{"type":1877,"value":4962}," triangleIndexInBlock",{"type":1872,"tag":1952,"props":4964,"children":4965},{"style":1964},[4966],{"type":1877,"value":4967}," )\n",{"type":1872,"tag":1952,"props":4969,"children":4970},{"class":1954,"line":30},[4971],{"type":1872,"tag":1952,"props":4972,"children":4973},{"style":1964},[4974],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":4976,"children":4977},{"class":1954,"line":34},[4978],{"type":1872,"tag":1952,"props":4979,"children":4980},{"style":1981},[4981],{"type":1877,"value":4982}," // reconstruct primitive index\n",{"type":1872,"tag":1952,"props":4984,"children":4985},{"class":1954,"line":38},[4986,4990,4995,4999,5004,5008],{"type":1872,"tag":1952,"props":4987,"children":4988},{"style":1958},[4989],{"type":1877,"value":4429},{"type":1872,"tag":1952,"props":4991,"children":4992},{"style":1964},[4993],{"type":1877,"value":4994}," primIndex ",{"type":1872,"tag":1952,"props":4996,"children":4997},{"style":1958},[4998],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5000,"children":5001},{"style":1964},[5002],{"type":1877,"value":5003}," primIDBase ",{"type":1872,"tag":1952,"props":5005,"children":5006},{"style":1958},[5007],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":5009,"children":5010},{"style":1964},[5011],{"type":1877,"value":5012}," triangleIndexInBlock;\n",{"type":1872,"tag":1952,"props":5014,"children":5015},{"class":1954,"line":42},[5016],{"type":1872,"tag":1952,"props":5017,"children":5018},{"emptyLinePlaceholder":232},[5019],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":5021,"children":5022},{"class":1954,"line":46},[5023],{"type":1872,"tag":1952,"props":5024,"children":5025},{"style":1981},[5026],{"type":1877,"value":5027}," // map primitive index to the index of an OMM in the OMM array\n",{"type":1872,"tag":1952,"props":5029,"children":5030},{"class":1954,"line":50},[5031,5035],{"type":1872,"tag":1952,"props":5032,"children":5033},{"style":1958},[5034],{"type":1877,"value":3861},{"type":1872,"tag":1952,"props":5036,"children":5037},{"style":1964},[5038],{"type":1877,"value":5039},"( indexed_omms )\n",{"type":1872,"tag":1952,"props":5041,"children":5042},{"class":1954,"line":54},[5043,5047,5052],{"type":1872,"tag":1952,"props":5044,"children":5045},{"style":1958},[5046],{"type":1877,"value":3898},{"type":1872,"tag":1952,"props":5048,"children":5049},{"style":2600},[5050],{"type":1877,"value":5051}," OMMIndexBuffer",{"type":1872,"tag":1952,"props":5053,"children":5054},{"style":1964},[5055],{"type":1877,"value":5056},"[primIndex];\n",{"type":1872,"tag":1952,"props":5058,"children":5059},{"class":1954,"line":58},[5060],{"type":1872,"tag":1952,"props":5061,"children":5062},{"style":1958},[5063],{"type":1877,"value":3911},{"type":1872,"tag":1952,"props":5065,"children":5066},{"class":1954,"line":62},[5067,5071],{"type":1872,"tag":1952,"props":5068,"children":5069},{"style":1958},[5070],{"type":1877,"value":3898},{"type":1872,"tag":1952,"props":5072,"children":5073},{"style":1964},[5074],{"type":1877,"value":5075}," primIndex;\n",{"type":1872,"tag":1952,"props":5077,"children":5078},{"class":1954,"line":66},[5079],{"type":1872,"tag":1952,"props":5080,"children":5081},{"style":1964},[5082],{"type":1877,"value":3037},{"type":1872,"tag":1886,"props":5084,"children":5085},{},[5086,5088,5094],{"type":1877,"value":5087},"If an OMM index buffer is used to select OMMs, then each distinct index\nvalue (including ",{"type":1872,"tag":1948,"props":5089,"children":5091},{"className":5090},[],[5092],{"type":1877,"value":5093},"special indices",{"type":1877,"value":5095},") counts as one descriptor.\nIf there is no OMM index buffer, then a simple linear mapping is used\ninstead.\nThis implies that the number of OMM descriptors equals the number of\ntriangles, and that neither number may exceed 7.",{"type":1872,"tag":1886,"props":5097,"children":5098},{},[5099],{"type":1877,"value":5100},"DGF blocks with OMM still encode a per-triangle opaque flag.\nThis opaque flag is used whenever OMMs are disabled via ray/instance flags.",{"type":1872,"tag":3139,"props":5102,"children":5104},{"id":5103},"_opacity_micromap_palette",[5105],{"type":1877,"value":5106},"Opacity Micromap Palette",{"type":1872,"tag":1886,"props":5108,"children":5109},{},[5110,5112,5118,5120,5126],{"type":1877,"value":5111},"If ",{"type":1872,"tag":1948,"props":5113,"children":5115},{"className":5114},[],[5116],{"type":1877,"value":5117},"omm_descriptor_count",{"type":1877,"value":5119}," is non-zero, then an ",{"type":1872,"tag":1948,"props":5121,"children":5123},{"className":5122},[],[5124],{"type":1877,"value":5125},"OMM palette",{"type":1877,"value":5127}," is present.\nThe OMM palette, if present, is byte-aligned.\nPad bits are inserted as required.\nAll pad bits must be zero.",{"type":1872,"tag":1886,"props":5129,"children":5130},{},[5131,5133,5139,5141,5147,5149,5154,5156,5161],{"type":1877,"value":5132},"The OMM palette consists of a ",{"type":1872,"tag":1948,"props":5134,"children":5136},{"className":5135},[],[5137],{"type":1877,"value":5138},"hot-patched",{"type":1877,"value":5140}," section, and a\n",{"type":1872,"tag":1948,"props":5142,"children":5144},{"className":5143},[],[5145],{"type":1877,"value":5146},"pre-computed",{"type":1877,"value":5148}," section.\nThe ",{"type":1872,"tag":1948,"props":5150,"children":5152},{"className":5151},[],[5153],{"type":1877,"value":5138},{"type":1877,"value":5155}," section is so named because it is expected to be patched\nat runtime with OMM information when an acceleration structure is\nconstructed.\nThe ",{"type":1872,"tag":1948,"props":5157,"children":5159},{"className":5158},[],[5160],{"type":1877,"value":5146},{"type":1877,"value":5162}," section is computed by the application at DGF encoding\ntime.\nThe size and position of the hot-patched section are exposed to applications\nthrough the API, but its precise contents are not.",{"type":1872,"tag":1886,"props":5164,"children":5165},{},[5166],{"type":1877,"value":5167},"When encoding a DGF block that is expected to be used with OMMs, the encoder\nmust reserve space for the hot-patched section, and place the pre-computed\nsection immediately after it.",{"type":1872,"tag":2530,"props":5169,"children":5170},{},[5171,5183],{"type":1872,"tag":2534,"props":5172,"children":5173},{},[5174,5176,5181],{"type":1877,"value":5175},"The ",{"type":1872,"tag":1948,"props":5177,"children":5179},{"className":5178},[],[5180],{"type":1877,"value":5138},{"type":1877,"value":5182}," section contains 8 bytes, plus 4 bytes for each OMM\ndescriptor.\nThe application must initialize this space with zeros.",{"type":1872,"tag":2534,"props":5184,"children":5185},{},[5186,5187,5192,5194],{"type":1877,"value":5175},{"type":1872,"tag":1948,"props":5188,"children":5190},{"className":5189},[],[5191],{"type":1877,"value":5146},{"type":1877,"value":5193}," section contains a per-triangle index indicating\nwhich OMM descriptor to use.",{"type":1872,"tag":2530,"props":5195,"children":5196},{},[5197,5202,5214],{"type":1872,"tag":2534,"props":5198,"children":5199},{},[5200],{"type":1877,"value":5201},"Triangles are ordered from front to back in ascending order",{"type":1872,"tag":2534,"props":5203,"children":5204},{},[5205,5207,5212],{"type":1877,"value":5206},"The number of bits per index is derived from the ",{"type":1872,"tag":1948,"props":5208,"children":5210},{"className":5209},[],[5211],{"type":1877,"value":5117},{"type":1877,"value":5213},"\nfield in the header.",{"type":1872,"tag":2534,"props":5215,"children":5216},{},[5217],{"type":1877,"value":5218},"The pre-computed section is padded out to the next byte boundary, and\nall pad bits must be zero.",{"type":1872,"tag":1886,"props":5220,"children":5221},{},[5222,5224,5229],{"type":1877,"value":5223},"The following table shows the OMM palette configuration for each value of\n",{"type":1872,"tag":1948,"props":5225,"children":5227},{"className":5226},[],[5228],{"type":1877,"value":5117},{"type":1877,"value":5230},":",{"type":1872,"tag":3292,"props":5232,"children":5235},{"id":5233,"className":5234},"DGF-omm-palette-config",[3296,3297,3298,3299],[5236,5248,5271],{"type":1872,"tag":3302,"props":5237,"children":5238},{},[5239,5242,5245],{"type":1872,"tag":3306,"props":5240,"children":5241},{"style":3308},[],{"type":1872,"tag":3306,"props":5243,"children":5244},{"style":3308},[],{"type":1872,"tag":3306,"props":5246,"children":5247},{"style":3315},[],{"type":1872,"tag":3318,"props":5249,"children":5250},{},[5251],{"type":1872,"tag":3322,"props":5252,"children":5253},{},[5254,5259,5265],{"type":1872,"tag":3326,"props":5255,"children":5257},{"className":5256},[3296,3329,3330],[5258],{"type":1877,"value":5117},{"type":1872,"tag":3326,"props":5260,"children":5262},{"className":5261},[3296,3329,3330],[5263],{"type":1877,"value":5264},"Hot-patch Section Size (Bytes)",{"type":1872,"tag":3326,"props":5266,"children":5268},{"className":5267},[3296,3329,3330],[5269],{"type":1877,"value":5270},"Precomputed Section (Bits per Triangle)",{"type":1872,"tag":3347,"props":5272,"children":5273},{},[5274,5304,5335,5366,5397,5427,5459,5490],{"type":1872,"tag":3322,"props":5275,"children":5276},{},[5277,5286,5295],{"type":1872,"tag":3354,"props":5278,"children":5280},{"className":5279},[3296,3329,3330],[5281],{"type":1872,"tag":1886,"props":5282,"children":5284},{"className":5283},[3296],[5285],{"type":1877,"value":2692},{"type":1872,"tag":3354,"props":5287,"children":5289},{"className":5288},[3296,3329,3330],[5290],{"type":1872,"tag":1886,"props":5291,"children":5293},{"className":5292},[3296],[5294],{"type":1877,"value":2692},{"type":1872,"tag":3354,"props":5296,"children":5298},{"className":5297},[3296,3329,3330],[5299],{"type":1872,"tag":1886,"props":5300,"children":5302},{"className":5301},[3296],[5303],{"type":1877,"value":2692},{"type":1872,"tag":3322,"props":5305,"children":5306},{},[5307,5316,5326],{"type":1872,"tag":3354,"props":5308,"children":5310},{"className":5309},[3296,3329,3330],[5311],{"type":1872,"tag":1886,"props":5312,"children":5314},{"className":5313},[3296],[5315],{"type":1877,"value":2352},{"type":1872,"tag":3354,"props":5317,"children":5319},{"className":5318},[3296,3329,3330],[5320],{"type":1872,"tag":1886,"props":5321,"children":5323},{"className":5322},[3296],[5324],{"type":1877,"value":5325},"12",{"type":1872,"tag":3354,"props":5327,"children":5329},{"className":5328},[3296,3329,3330],[5330],{"type":1872,"tag":1886,"props":5331,"children":5333},{"className":5332},[3296],[5334],{"type":1877,"value":2692},{"type":1872,"tag":3322,"props":5336,"children":5337},{},[5338,5347,5357],{"type":1872,"tag":3354,"props":5339,"children":5341},{"className":5340},[3296,3329,3330],[5342],{"type":1872,"tag":1886,"props":5343,"children":5345},{"className":5344},[3296],[5346],{"type":1877,"value":2030},{"type":1872,"tag":3354,"props":5348,"children":5350},{"className":5349},[3296,3329,3330],[5351],{"type":1872,"tag":1886,"props":5352,"children":5354},{"className":5353},[3296],[5355],{"type":1877,"value":5356},"16",{"type":1872,"tag":3354,"props":5358,"children":5360},{"className":5359},[3296,3329,3330],[5361],{"type":1872,"tag":1886,"props":5362,"children":5364},{"className":5363},[3296],[5365],{"type":1877,"value":2352},{"type":1872,"tag":3322,"props":5367,"children":5368},{},[5369,5378,5388],{"type":1872,"tag":3354,"props":5370,"children":5372},{"className":5371},[3296,3329,3330],[5373],{"type":1872,"tag":1886,"props":5374,"children":5376},{"className":5375},[3296],[5377],{"type":1877,"value":2326},{"type":1872,"tag":3354,"props":5379,"children":5381},{"className":5380},[3296,3329,3330],[5382],{"type":1872,"tag":1886,"props":5383,"children":5385},{"className":5384},[3296],[5386],{"type":1877,"value":5387},"20",{"type":1872,"tag":3354,"props":5389,"children":5391},{"className":5390},[3296,3329,3330],[5392],{"type":1872,"tag":1886,"props":5393,"children":5395},{"className":5394},[3296],[5396],{"type":1877,"value":2030},{"type":1872,"tag":3322,"props":5398,"children":5399},{},[5400,5409,5418],{"type":1872,"tag":3354,"props":5401,"children":5403},{"className":5402},[3296,3329,3330],[5404],{"type":1872,"tag":1886,"props":5405,"children":5407},{"className":5406},[3296],[5408],{"type":1877,"value":2212},{"type":1872,"tag":3354,"props":5410,"children":5412},{"className":5411},[3296,3329,3330],[5413],{"type":1872,"tag":1886,"props":5414,"children":5416},{"className":5415},[3296],[5417],{"type":1877,"value":2171},{"type":1872,"tag":3354,"props":5419,"children":5421},{"className":5420},[3296,3329,3330],[5422],{"type":1872,"tag":1886,"props":5423,"children":5425},{"className":5424},[3296],[5426],{"type":1877,"value":2030},{"type":1872,"tag":3322,"props":5428,"children":5429},{},[5430,5440,5450],{"type":1872,"tag":3354,"props":5431,"children":5433},{"className":5432},[3296,3329,3330],[5434],{"type":1872,"tag":1886,"props":5435,"children":5437},{"className":5436},[3296],[5438],{"type":1877,"value":5439},"5",{"type":1872,"tag":3354,"props":5441,"children":5443},{"className":5442},[3296,3329,3330],[5444],{"type":1872,"tag":1886,"props":5445,"children":5447},{"className":5446},[3296],[5448],{"type":1877,"value":5449},"28",{"type":1872,"tag":3354,"props":5451,"children":5453},{"className":5452},[3296,3329,3330],[5454],{"type":1872,"tag":1886,"props":5455,"children":5457},{"className":5456},[3296],[5458],{"type":1877,"value":2326},{"type":1872,"tag":3322,"props":5460,"children":5461},{},[5462,5471,5481],{"type":1872,"tag":3354,"props":5463,"children":5465},{"className":5464},[3296,3329,3330],[5466],{"type":1872,"tag":1886,"props":5467,"children":5469},{"className":5468},[3296],[5470],{"type":1877,"value":2056},{"type":1872,"tag":3354,"props":5472,"children":5474},{"className":5473},[3296,3329,3330],[5475],{"type":1872,"tag":1886,"props":5476,"children":5478},{"className":5477},[3296],[5479],{"type":1877,"value":5480},"32",{"type":1872,"tag":3354,"props":5482,"children":5484},{"className":5483},[3296,3329,3330],[5485],{"type":1872,"tag":1886,"props":5486,"children":5488},{"className":5487},[3296],[5489],{"type":1877,"value":2326},{"type":1872,"tag":3322,"props":5491,"children":5492},{},[5493,5503,5513],{"type":1872,"tag":3354,"props":5494,"children":5496},{"className":5495},[3296,3329,3330],[5497],{"type":1872,"tag":1886,"props":5498,"children":5500},{"className":5499},[3296],[5501],{"type":1877,"value":5502},"7",{"type":1872,"tag":3354,"props":5504,"children":5506},{"className":5505},[3296,3329,3330],[5507],{"type":1872,"tag":1886,"props":5508,"children":5510},{"className":5509},[3296],[5511],{"type":1877,"value":5512},"36",{"type":1872,"tag":3354,"props":5514,"children":5516},{"className":5515},[3296,3329,3330],[5517],{"type":1872,"tag":1886,"props":5518,"children":5520},{"className":5519},[3296],[5521],{"type":1877,"value":2326},{"type":1872,"tag":1886,"props":5523,"children":5524},{},[5525],{"type":1877,"value":5526},"The following pseudo-code computes the size, in bits, of an OMM palette:",{"type":1872,"tag":1941,"props":5528,"children":5530},{"className":1943,"code":5529,"language":1945,"meta":1867,"style":1867},"int compute_palette_size( uint numDescriptors, uint numTriangles )\n{\n if( numDescriptors == 0 )\n return 0;\n\n uint hotPatchSize = 64 + 32*numTriangles;\n uint bitsPerIndex = ceil( log2(numDescriptors) );\n uint precomputedSize = bitsPerIndex*numTriangles;\n precomputedSize = (precomputedSize + 7) & ~7; // byte align\n\n return hotPatchSize + precomputedSize;\n}\n",[5531],{"type":1872,"tag":1948,"props":5532,"children":5533},{"__ignoreMap":1867},[5534,5576,5583,5608,5624,5631,5671,5706,5735,5787,5794,5815],{"type":1872,"tag":1952,"props":5535,"children":5536},{"class":1954,"line":10},[5537,5541,5546,5550,5554,5559,5563,5567,5572],{"type":1872,"tag":1952,"props":5538,"children":5539},{"style":1958},[5540],{"type":1877,"value":3720},{"type":1872,"tag":1952,"props":5542,"children":5543},{"style":2584},[5544],{"type":1877,"value":5545}," compute_palette_size",{"type":1872,"tag":1952,"props":5547,"children":5548},{"style":1964},[5549],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":5551,"children":5552},{"style":1958},[5553],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":5555,"children":5556},{"style":2600},[5557],{"type":1877,"value":5558}," numDescriptors",{"type":1872,"tag":1952,"props":5560,"children":5561},{"style":1964},[5562],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":5564,"children":5565},{"style":1958},[5566],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":5568,"children":5569},{"style":2600},[5570],{"type":1877,"value":5571}," numTriangles",{"type":1872,"tag":1952,"props":5573,"children":5574},{"style":1964},[5575],{"type":1877,"value":4967},{"type":1872,"tag":1952,"props":5577,"children":5578},{"class":1954,"line":14},[5579],{"type":1872,"tag":1952,"props":5580,"children":5581},{"style":1964},[5582],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":5584,"children":5585},{"class":1954,"line":18},[5586,5590,5595,5600,5604],{"type":1872,"tag":1952,"props":5587,"children":5588},{"style":1958},[5589],{"type":1877,"value":3861},{"type":1872,"tag":1952,"props":5591,"children":5592},{"style":1964},[5593],{"type":1877,"value":5594},"( numDescriptors ",{"type":1872,"tag":1952,"props":5596,"children":5597},{"style":1958},[5598],{"type":1877,"value":5599},"==",{"type":1872,"tag":1952,"props":5601,"children":5602},{"style":2000},[5603],{"type":1877,"value":3699},{"type":1872,"tag":1952,"props":5605,"children":5606},{"style":1964},[5607],{"type":1877,"value":4967},{"type":1872,"tag":1952,"props":5609,"children":5610},{"class":1954,"line":22},[5611,5616,5620],{"type":1872,"tag":1952,"props":5612,"children":5613},{"style":1958},[5614],{"type":1877,"value":5615}," return",{"type":1872,"tag":1952,"props":5617,"children":5618},{"style":2000},[5619],{"type":1877,"value":3699},{"type":1872,"tag":1952,"props":5621,"children":5622},{"style":1964},[5623],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":5625,"children":5626},{"class":1954,"line":26},[5627],{"type":1872,"tag":1952,"props":5628,"children":5629},{"emptyLinePlaceholder":232},[5630],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":5632,"children":5633},{"class":1954,"line":30},[5634,5639,5644,5648,5653,5658,5662,5666],{"type":1872,"tag":1952,"props":5635,"children":5636},{"style":1958},[5637],{"type":1877,"value":5638}," uint",{"type":1872,"tag":1952,"props":5640,"children":5641},{"style":1964},[5642],{"type":1877,"value":5643}," hotPatchSize ",{"type":1872,"tag":1952,"props":5645,"children":5646},{"style":1958},[5647],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5649,"children":5650},{"style":2000},[5651],{"type":1877,"value":5652}," 64",{"type":1872,"tag":1952,"props":5654,"children":5655},{"style":1958},[5656],{"type":1877,"value":5657}," +",{"type":1872,"tag":1952,"props":5659,"children":5660},{"style":2000},[5661],{"type":1877,"value":4578},{"type":1872,"tag":1952,"props":5663,"children":5664},{"style":1958},[5665],{"type":1877,"value":3024},{"type":1872,"tag":1952,"props":5667,"children":5668},{"style":1964},[5669],{"type":1877,"value":5670},"numTriangles;\n",{"type":1872,"tag":1952,"props":5672,"children":5673},{"class":1954,"line":34},[5674,5678,5683,5687,5692,5696,5701],{"type":1872,"tag":1952,"props":5675,"children":5676},{"style":1958},[5677],{"type":1877,"value":5638},{"type":1872,"tag":1952,"props":5679,"children":5680},{"style":1964},[5681],{"type":1877,"value":5682}," bitsPerIndex ",{"type":1872,"tag":1952,"props":5684,"children":5685},{"style":1958},[5686],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5688,"children":5689},{"style":2584},[5690],{"type":1877,"value":5691}," ceil",{"type":1872,"tag":1952,"props":5693,"children":5694},{"style":1964},[5695],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":5697,"children":5698},{"style":2584},[5699],{"type":1877,"value":5700},"log2",{"type":1872,"tag":1952,"props":5702,"children":5703},{"style":1964},[5704],{"type":1877,"value":5705},"(numDescriptors) );\n",{"type":1872,"tag":1952,"props":5707,"children":5708},{"class":1954,"line":38},[5709,5713,5718,5722,5727,5731],{"type":1872,"tag":1952,"props":5710,"children":5711},{"style":1958},[5712],{"type":1877,"value":5638},{"type":1872,"tag":1952,"props":5714,"children":5715},{"style":1964},[5716],{"type":1877,"value":5717}," precomputedSize ",{"type":1872,"tag":1952,"props":5719,"children":5720},{"style":1958},[5721],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5723,"children":5724},{"style":1964},[5725],{"type":1877,"value":5726}," bitsPerIndex",{"type":1872,"tag":1952,"props":5728,"children":5729},{"style":1958},[5730],{"type":1877,"value":3024},{"type":1872,"tag":1952,"props":5732,"children":5733},{"style":1964},[5734],{"type":1877,"value":5670},{"type":1872,"tag":1952,"props":5736,"children":5737},{"class":1954,"line":42},[5738,5743,5747,5752,5756,5761,5765,5769,5774,5778,5782],{"type":1872,"tag":1952,"props":5739,"children":5740},{"style":1964},[5741],{"type":1877,"value":5742}," precomputedSize ",{"type":1872,"tag":1952,"props":5744,"children":5745},{"style":1958},[5746],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5748,"children":5749},{"style":1964},[5750],{"type":1877,"value":5751}," (precomputedSize ",{"type":1872,"tag":1952,"props":5753,"children":5754},{"style":1958},[5755],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":5757,"children":5758},{"style":2000},[5759],{"type":1877,"value":5760}," 7",{"type":1872,"tag":1952,"props":5762,"children":5763},{"style":1964},[5764],{"type":1877,"value":4528},{"type":1872,"tag":1952,"props":5766,"children":5767},{"style":1958},[5768],{"type":1877,"value":3783},{"type":1872,"tag":1952,"props":5770,"children":5771},{"style":1958},[5772],{"type":1877,"value":5773}," ~",{"type":1872,"tag":1952,"props":5775,"children":5776},{"style":2000},[5777],{"type":1877,"value":5502},{"type":1872,"tag":1952,"props":5779,"children":5780},{"style":1964},[5781],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":5783,"children":5784},{"style":1981},[5785],{"type":1877,"value":5786}," // byte align\n",{"type":1872,"tag":1952,"props":5788,"children":5789},{"class":1954,"line":46},[5790],{"type":1872,"tag":1952,"props":5791,"children":5792},{"emptyLinePlaceholder":232},[5793],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":5795,"children":5796},{"class":1954,"line":50},[5797,5801,5806,5810],{"type":1872,"tag":1952,"props":5798,"children":5799},{"style":1958},[5800],{"type":1877,"value":3898},{"type":1872,"tag":1952,"props":5802,"children":5803},{"style":1964},[5804],{"type":1877,"value":5805}," hotPatchSize ",{"type":1872,"tag":1952,"props":5807,"children":5808},{"style":1958},[5809],{"type":1877,"value":2702},{"type":1872,"tag":1952,"props":5811,"children":5812},{"style":1964},[5813],{"type":1877,"value":5814}," precomputedSize;\n",{"type":1872,"tag":1952,"props":5816,"children":5817},{"class":1954,"line":54},[5818],{"type":1872,"tag":1952,"props":5819,"children":5820},{"style":1964},[5821],{"type":1877,"value":3037},{"type":1872,"tag":1886,"props":5823,"children":5824},{},[5825],{"type":1877,"value":5826},"The following pseudo-code illustrates how an encoder could construct the\npre-computed section of the OMM palette:",{"type":1872,"tag":1941,"props":5828,"children":5830},{"className":1943,"code":5829,"language":1945,"meta":1867,"style":1867},"//\n// Calculates the descriptor indices in the 'pre-computed' section of an OMM palette.\n// The return value is the number of OMM descriptors used.\n//\n// A return value of -1 indicates that the triangles contain too many unique OMMs and must be split into multiple blocks.\n//\nint build_omm_palette( uint descriptorIndices[], uint numTriangles, const int* ommIndices, uint spaceAvailable )\n{\n int ommDescriptors[MAX_DESCRIPTORS];\n int numDescriptors=0;\n\n for( uint triangleIndex = 0; triangleIndex \u003C numTriangles; triangleIndex++ )\n {\n // determine the OMM index assigned to this triangle\n int ommIndex = ommIndices[triangleIndex];\n\n // search for an existing descriptor for this OMM or special-index value\n uint descriptorIndex=0;\n\n while(descriptorIndex \u003C numDescriptors )\n {\n if( ommPalette[descriptorIndex] == ommIndex )\n break;\n\n descriptorIndex++;\n }\n\n // if an existing descriptor was not found, attempt to allocate one\n // if unsuccessful, the encoder must split the triangles into multiple blocks\n if( descriptorIndex == numDescriptors )\n {\n if( numDescriptors == MAX_DESCRIPTORS )\n return -1; // block must be split\n else\n ommPalette[numDescriptors++] = ommIndex;\n }\n\n descriptorIndices[triangleIndex] = descriptorIndex;\n }\n\n // split the triangles if the resulting palette cannot fit in the block\n if( compute_palette_size(numTriangles,numDescriptors) > spaceAvailable )\n return -1;\n\n return numDescriptors;\n}\n",[5831],{"type":1872,"tag":1948,"props":5832,"children":5833},{"__ignoreMap":1867},[5834,5841,5849,5857,5864,5872,5879,5956,5963,5980,6003,6010,6060,6067,6075,6101,6108,6116,6141,6148,6170,6178,6209,6221,6228,6244,6252,6259,6267,6275,6296,6303,6323,6348,6356,6386,6394,6401,6423,6430,6437,6445,6476,6495,6502,6514],{"type":1872,"tag":1952,"props":5835,"children":5836},{"class":1954,"line":10},[5837],{"type":1872,"tag":1952,"props":5838,"children":5839},{"style":1981},[5840],{"type":1877,"value":4900},{"type":1872,"tag":1952,"props":5842,"children":5843},{"class":1954,"line":14},[5844],{"type":1872,"tag":1952,"props":5845,"children":5846},{"style":1981},[5847],{"type":1877,"value":5848},"// Calculates the descriptor indices in the 'pre-computed' section of an OMM palette.\n",{"type":1872,"tag":1952,"props":5850,"children":5851},{"class":1954,"line":18},[5852],{"type":1872,"tag":1952,"props":5853,"children":5854},{"style":1981},[5855],{"type":1877,"value":5856},"// The return value is the number of OMM descriptors used.\n",{"type":1872,"tag":1952,"props":5858,"children":5859},{"class":1954,"line":22},[5860],{"type":1872,"tag":1952,"props":5861,"children":5862},{"style":1981},[5863],{"type":1877,"value":4900},{"type":1872,"tag":1952,"props":5865,"children":5866},{"class":1954,"line":26},[5867],{"type":1872,"tag":1952,"props":5868,"children":5869},{"style":1981},[5870],{"type":1877,"value":5871},"// A return value of -1 indicates that the triangles contain too many unique OMMs and must be split into multiple blocks.\n",{"type":1872,"tag":1952,"props":5873,"children":5874},{"class":1954,"line":30},[5875],{"type":1872,"tag":1952,"props":5876,"children":5877},{"style":1981},[5878],{"type":1877,"value":4900},{"type":1872,"tag":1952,"props":5880,"children":5881},{"class":1954,"line":34},[5882,5886,5891,5895,5899,5904,5908,5912,5916,5920,5924,5929,5934,5939,5943,5947,5952],{"type":1872,"tag":1952,"props":5883,"children":5884},{"style":1958},[5885],{"type":1877,"value":3720},{"type":1872,"tag":1952,"props":5887,"children":5888},{"style":2584},[5889],{"type":1877,"value":5890}," build_omm_palette",{"type":1872,"tag":1952,"props":5892,"children":5893},{"style":1964},[5894],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":5896,"children":5897},{"style":1958},[5898],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":5900,"children":5901},{"style":2600},[5902],{"type":1877,"value":5903}," descriptorIndices",{"type":1872,"tag":1952,"props":5905,"children":5906},{"style":1958},[5907],{"type":1877,"value":3651},{"type":1872,"tag":1952,"props":5909,"children":5910},{"style":1964},[5911],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":5913,"children":5914},{"style":1958},[5915],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":5917,"children":5918},{"style":2600},[5919],{"type":1877,"value":5571},{"type":1872,"tag":1952,"props":5921,"children":5922},{"style":1964},[5923],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":5925,"children":5926},{"style":1958},[5927],{"type":1877,"value":5928},"const",{"type":1872,"tag":1952,"props":5930,"children":5931},{"style":1958},[5932],{"type":1877,"value":5933}," int*",{"type":1872,"tag":1952,"props":5935,"children":5936},{"style":2600},[5937],{"type":1877,"value":5938}," ommIndices",{"type":1872,"tag":1952,"props":5940,"children":5941},{"style":1964},[5942],{"type":1877,"value":3623},{"type":1872,"tag":1952,"props":5944,"children":5945},{"style":1958},[5946],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":5948,"children":5949},{"style":2600},[5950],{"type":1877,"value":5951}," spaceAvailable",{"type":1872,"tag":1952,"props":5953,"children":5954},{"style":1964},[5955],{"type":1877,"value":4967},{"type":1872,"tag":1952,"props":5957,"children":5958},{"class":1954,"line":38},[5959],{"type":1872,"tag":1952,"props":5960,"children":5961},{"style":1964},[5962],{"type":1877,"value":1975},{"type":1872,"tag":1952,"props":5964,"children":5965},{"class":1954,"line":42},[5966,5970,5975],{"type":1872,"tag":1952,"props":5967,"children":5968},{"style":1958},[5969],{"type":1877,"value":2669},{"type":1872,"tag":1952,"props":5971,"children":5972},{"style":2600},[5973],{"type":1877,"value":5974}," ommDescriptors",{"type":1872,"tag":1952,"props":5976,"children":5977},{"style":1964},[5978],{"type":1877,"value":5979},"[MAX_DESCRIPTORS];\n",{"type":1872,"tag":1952,"props":5981,"children":5982},{"class":1954,"line":46},[5983,5987,5991,5995,5999],{"type":1872,"tag":1952,"props":5984,"children":5985},{"style":1958},[5986],{"type":1877,"value":2669},{"type":1872,"tag":1952,"props":5988,"children":5989},{"style":1964},[5990],{"type":1877,"value":5558},{"type":1872,"tag":1952,"props":5992,"children":5993},{"style":1958},[5994],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":5996,"children":5997},{"style":2000},[5998],{"type":1877,"value":2692},{"type":1872,"tag":1952,"props":6000,"children":6001},{"style":1964},[6002],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":6004,"children":6005},{"class":1954,"line":50},[6006],{"type":1872,"tag":1952,"props":6007,"children":6008},{"emptyLinePlaceholder":232},[6009],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6011,"children":6012},{"class":1954,"line":54},[6013,6017,6021,6025,6030,6034,6038,6043,6047,6052,6056],{"type":1872,"tag":1952,"props":6014,"children":6015},{"style":1958},[6016],{"type":1877,"value":3711},{"type":1872,"tag":1952,"props":6018,"children":6019},{"style":1964},[6020],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":6022,"children":6023},{"style":1958},[6024],{"type":1877,"value":3600},{"type":1872,"tag":1952,"props":6026,"children":6027},{"style":1964},[6028],{"type":1877,"value":6029}," triangleIndex ",{"type":1872,"tag":1952,"props":6031,"children":6032},{"style":1958},[6033],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":6035,"children":6036},{"style":2000},[6037],{"type":1877,"value":3699},{"type":1872,"tag":1952,"props":6039,"children":6040},{"style":1964},[6041],{"type":1877,"value":6042},"; triangleIndex ",{"type":1872,"tag":1952,"props":6044,"children":6045},{"style":1958},[6046],{"type":1877,"value":3743},{"type":1872,"tag":1952,"props":6048,"children":6049},{"style":1964},[6050],{"type":1877,"value":6051}," numTriangles; triangleIndex",{"type":1872,"tag":1952,"props":6053,"children":6054},{"style":1958},[6055],{"type":1877,"value":3753},{"type":1872,"tag":1952,"props":6057,"children":6058},{"style":1964},[6059],{"type":1877,"value":4967},{"type":1872,"tag":1952,"props":6061,"children":6062},{"class":1954,"line":58},[6063],{"type":1872,"tag":1952,"props":6064,"children":6065},{"style":1964},[6066],{"type":1877,"value":3765},{"type":1872,"tag":1952,"props":6068,"children":6069},{"class":1954,"line":62},[6070],{"type":1872,"tag":1952,"props":6071,"children":6072},{"style":1981},[6073],{"type":1877,"value":6074}," // determine the OMM index assigned to this triangle\n",{"type":1872,"tag":1952,"props":6076,"children":6077},{"class":1954,"line":66},[6078,6083,6088,6092,6096],{"type":1872,"tag":1952,"props":6079,"children":6080},{"style":1958},[6081],{"type":1877,"value":6082}," int",{"type":1872,"tag":1952,"props":6084,"children":6085},{"style":1964},[6086],{"type":1877,"value":6087}," ommIndex ",{"type":1872,"tag":1952,"props":6089,"children":6090},{"style":1958},[6091],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":6093,"children":6094},{"style":2600},[6095],{"type":1877,"value":5938},{"type":1872,"tag":1952,"props":6097,"children":6098},{"style":1964},[6099],{"type":1877,"value":6100},"[triangleIndex];\n",{"type":1872,"tag":1952,"props":6102,"children":6103},{"class":1954,"line":70},[6104],{"type":1872,"tag":1952,"props":6105,"children":6106},{"emptyLinePlaceholder":232},[6107],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6109,"children":6110},{"class":1954,"line":74},[6111],{"type":1872,"tag":1952,"props":6112,"children":6113},{"style":1981},[6114],{"type":1877,"value":6115}," // search for an existing descriptor for this OMM or special-index value\n",{"type":1872,"tag":1952,"props":6117,"children":6118},{"class":1954,"line":78},[6119,6124,6129,6133,6137],{"type":1872,"tag":1952,"props":6120,"children":6121},{"style":1958},[6122],{"type":1877,"value":6123}," uint",{"type":1872,"tag":1952,"props":6125,"children":6126},{"style":1964},[6127],{"type":1877,"value":6128}," descriptorIndex",{"type":1872,"tag":1952,"props":6130,"children":6131},{"style":1958},[6132],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":6134,"children":6135},{"style":2000},[6136],{"type":1877,"value":2692},{"type":1872,"tag":1952,"props":6138,"children":6139},{"style":1964},[6140],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":6142,"children":6143},{"class":1954,"line":82},[6144],{"type":1872,"tag":1952,"props":6145,"children":6146},{"emptyLinePlaceholder":232},[6147],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6149,"children":6150},{"class":1954,"line":86},[6151,6156,6161,6165],{"type":1872,"tag":1952,"props":6152,"children":6153},{"style":1958},[6154],{"type":1877,"value":6155}," while",{"type":1872,"tag":1952,"props":6157,"children":6158},{"style":1964},[6159],{"type":1877,"value":6160},"(descriptorIndex ",{"type":1872,"tag":1952,"props":6162,"children":6163},{"style":1958},[6164],{"type":1877,"value":3743},{"type":1872,"tag":1952,"props":6166,"children":6167},{"style":1964},[6168],{"type":1877,"value":6169}," numDescriptors )\n",{"type":1872,"tag":1952,"props":6171,"children":6172},{"class":1954,"line":90},[6173],{"type":1872,"tag":1952,"props":6174,"children":6175},{"style":1964},[6176],{"type":1877,"value":6177}," {\n",{"type":1872,"tag":1952,"props":6179,"children":6180},{"class":1954,"line":94},[6181,6186,6190,6195,6200,6204],{"type":1872,"tag":1952,"props":6182,"children":6183},{"style":1958},[6184],{"type":1877,"value":6185}," if",{"type":1872,"tag":1952,"props":6187,"children":6188},{"style":1964},[6189],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":6191,"children":6192},{"style":2600},[6193],{"type":1877,"value":6194},"ommPalette",{"type":1872,"tag":1952,"props":6196,"children":6197},{"style":1964},[6198],{"type":1877,"value":6199},"[descriptorIndex] ",{"type":1872,"tag":1952,"props":6201,"children":6202},{"style":1958},[6203],{"type":1877,"value":5599},{"type":1872,"tag":1952,"props":6205,"children":6206},{"style":1964},[6207],{"type":1877,"value":6208}," ommIndex )\n",{"type":1872,"tag":1952,"props":6210,"children":6211},{"class":1954,"line":98},[6212,6217],{"type":1872,"tag":1952,"props":6213,"children":6214},{"style":1958},[6215],{"type":1877,"value":6216}," break",{"type":1872,"tag":1952,"props":6218,"children":6219},{"style":1964},[6220],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":6222,"children":6223},{"class":1954,"line":102},[6224],{"type":1872,"tag":1952,"props":6225,"children":6226},{"emptyLinePlaceholder":232},[6227],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6229,"children":6230},{"class":1954,"line":106},[6231,6236,6240],{"type":1872,"tag":1952,"props":6232,"children":6233},{"style":1964},[6234],{"type":1877,"value":6235}," descriptorIndex",{"type":1872,"tag":1952,"props":6237,"children":6238},{"style":1958},[6239],{"type":1877,"value":3753},{"type":1872,"tag":1952,"props":6241,"children":6242},{"style":1964},[6243],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":6245,"children":6246},{"class":1954,"line":110},[6247],{"type":1872,"tag":1952,"props":6248,"children":6249},{"style":1964},[6250],{"type":1877,"value":6251}," }\n",{"type":1872,"tag":1952,"props":6253,"children":6254},{"class":1954,"line":114},[6255],{"type":1872,"tag":1952,"props":6256,"children":6257},{"emptyLinePlaceholder":232},[6258],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6260,"children":6261},{"class":1954,"line":118},[6262],{"type":1872,"tag":1952,"props":6263,"children":6264},{"style":1981},[6265],{"type":1877,"value":6266}," // if an existing descriptor was not found, attempt to allocate one\n",{"type":1872,"tag":1952,"props":6268,"children":6269},{"class":1954,"line":122},[6270],{"type":1872,"tag":1952,"props":6271,"children":6272},{"style":1981},[6273],{"type":1877,"value":6274}," // if unsuccessful, the encoder must split the triangles into multiple blocks\n",{"type":1872,"tag":1952,"props":6276,"children":6277},{"class":1954,"line":126},[6278,6283,6288,6292],{"type":1872,"tag":1952,"props":6279,"children":6280},{"style":1958},[6281],{"type":1877,"value":6282}," if",{"type":1872,"tag":1952,"props":6284,"children":6285},{"style":1964},[6286],{"type":1877,"value":6287},"( descriptorIndex ",{"type":1872,"tag":1952,"props":6289,"children":6290},{"style":1958},[6291],{"type":1877,"value":5599},{"type":1872,"tag":1952,"props":6293,"children":6294},{"style":1964},[6295],{"type":1877,"value":6169},{"type":1872,"tag":1952,"props":6297,"children":6298},{"class":1954,"line":130},[6299],{"type":1872,"tag":1952,"props":6300,"children":6301},{"style":1964},[6302],{"type":1877,"value":6177},{"type":1872,"tag":1952,"props":6304,"children":6305},{"class":1954,"line":134},[6306,6310,6314,6318],{"type":1872,"tag":1952,"props":6307,"children":6308},{"style":1958},[6309],{"type":1877,"value":6185},{"type":1872,"tag":1952,"props":6311,"children":6312},{"style":1964},[6313],{"type":1877,"value":5594},{"type":1872,"tag":1952,"props":6315,"children":6316},{"style":1958},[6317],{"type":1877,"value":5599},{"type":1872,"tag":1952,"props":6319,"children":6320},{"style":1964},[6321],{"type":1877,"value":6322}," MAX_DESCRIPTORS )\n",{"type":1872,"tag":1952,"props":6324,"children":6325},{"class":1954,"line":138},[6326,6331,6335,6339,6343],{"type":1872,"tag":1952,"props":6327,"children":6328},{"style":1958},[6329],{"type":1877,"value":6330}," return",{"type":1872,"tag":1952,"props":6332,"children":6333},{"style":1958},[6334],{"type":1877,"value":4487},{"type":1872,"tag":1952,"props":6336,"children":6337},{"style":2000},[6338],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":6340,"children":6341},{"style":1964},[6342],{"type":1877,"value":2008},{"type":1872,"tag":1952,"props":6344,"children":6345},{"style":1981},[6346],{"type":1877,"value":6347}," // block must be split\n",{"type":1872,"tag":1952,"props":6349,"children":6350},{"class":1954,"line":142},[6351],{"type":1872,"tag":1952,"props":6352,"children":6353},{"style":1958},[6354],{"type":1877,"value":6355}," else\n",{"type":1872,"tag":1952,"props":6357,"children":6358},{"class":1954,"line":146},[6359,6364,6369,6373,6377,6381],{"type":1872,"tag":1952,"props":6360,"children":6361},{"style":2600},[6362],{"type":1877,"value":6363}," ommPalette",{"type":1872,"tag":1952,"props":6365,"children":6366},{"style":1964},[6367],{"type":1877,"value":6368},"[numDescriptors",{"type":1872,"tag":1952,"props":6370,"children":6371},{"style":1958},[6372],{"type":1877,"value":3753},{"type":1872,"tag":1952,"props":6374,"children":6375},{"style":1964},[6376],{"type":1877,"value":2697},{"type":1872,"tag":1952,"props":6378,"children":6379},{"style":1958},[6380],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":6382,"children":6383},{"style":1964},[6384],{"type":1877,"value":6385}," ommIndex;\n",{"type":1872,"tag":1952,"props":6387,"children":6388},{"class":1954,"line":150},[6389],{"type":1872,"tag":1952,"props":6390,"children":6391},{"style":1964},[6392],{"type":1877,"value":6393}," }\n",{"type":1872,"tag":1952,"props":6395,"children":6396},{"class":1954,"line":154},[6397],{"type":1872,"tag":1952,"props":6398,"children":6399},{"emptyLinePlaceholder":232},[6400],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6402,"children":6403},{"class":1954,"line":158},[6404,6409,6414,6418],{"type":1872,"tag":1952,"props":6405,"children":6406},{"style":2600},[6407],{"type":1877,"value":6408}," descriptorIndices",{"type":1872,"tag":1952,"props":6410,"children":6411},{"style":1964},[6412],{"type":1877,"value":6413},"[triangleIndex] ",{"type":1872,"tag":1952,"props":6415,"children":6416},{"style":1958},[6417],{"type":1877,"value":2679},{"type":1872,"tag":1952,"props":6419,"children":6420},{"style":1964},[6421],{"type":1877,"value":6422}," descriptorIndex;\n",{"type":1872,"tag":1952,"props":6424,"children":6425},{"class":1954,"line":162},[6426],{"type":1872,"tag":1952,"props":6427,"children":6428},{"style":1964},[6429],{"type":1877,"value":3830},{"type":1872,"tag":1952,"props":6431,"children":6432},{"class":1954,"line":166},[6433],{"type":1872,"tag":1952,"props":6434,"children":6435},{"emptyLinePlaceholder":232},[6436],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6438,"children":6439},{"class":1954,"line":170},[6440],{"type":1872,"tag":1952,"props":6441,"children":6442},{"style":1981},[6443],{"type":1877,"value":6444}," // split the triangles if the resulting palette cannot fit in the block\n",{"type":1872,"tag":1952,"props":6446,"children":6447},{"class":1954,"line":174},[6448,6452,6456,6461,6466,6471],{"type":1872,"tag":1952,"props":6449,"children":6450},{"style":1958},[6451],{"type":1877,"value":3773},{"type":1872,"tag":1952,"props":6453,"children":6454},{"style":1964},[6455],{"type":1877,"value":4940},{"type":1872,"tag":1952,"props":6457,"children":6458},{"style":2584},[6459],{"type":1877,"value":6460},"compute_palette_size",{"type":1872,"tag":1952,"props":6462,"children":6463},{"style":1964},[6464],{"type":1877,"value":6465},"(numTriangles,numDescriptors) ",{"type":1872,"tag":1952,"props":6467,"children":6468},{"style":1958},[6469],{"type":1877,"value":6470},">",{"type":1872,"tag":1952,"props":6472,"children":6473},{"style":1964},[6474],{"type":1877,"value":6475}," spaceAvailable )\n",{"type":1872,"tag":1952,"props":6477,"children":6478},{"class":1954,"line":178},[6479,6483,6487,6491],{"type":1872,"tag":1952,"props":6480,"children":6481},{"style":1958},[6482],{"type":1877,"value":5615},{"type":1872,"tag":1952,"props":6484,"children":6485},{"style":1958},[6486],{"type":1877,"value":4487},{"type":1872,"tag":1952,"props":6488,"children":6489},{"style":2000},[6490],{"type":1877,"value":2352},{"type":1872,"tag":1952,"props":6492,"children":6493},{"style":1964},[6494],{"type":1877,"value":2112},{"type":1872,"tag":1952,"props":6496,"children":6497},{"class":1954,"line":182},[6498],{"type":1872,"tag":1952,"props":6499,"children":6500},{"emptyLinePlaceholder":232},[6501],{"type":1877,"value":2120},{"type":1872,"tag":1952,"props":6503,"children":6504},{"class":1954,"line":186},[6505,6509],{"type":1872,"tag":1952,"props":6506,"children":6507},{"style":1958},[6508],{"type":1877,"value":3898},{"type":1872,"tag":1952,"props":6510,"children":6511},{"style":1964},[6512],{"type":1877,"value":6513}," numDescriptors;\n",{"type":1872,"tag":1952,"props":6515,"children":6516},{"class":1954,"line":190},[6517],{"type":1872,"tag":1952,"props":6518,"children":6519},{"style":1964},[6520],{"type":1877,"value":3037},{"type":1872,"tag":1915,"props":6522,"children":6524},{"id":6523},"_optional_userdata",[6525],{"type":1877,"value":6526},"Optional UserData",{"type":1872,"tag":1886,"props":6528,"children":6529},{},[6530],{"type":1877,"value":6531},"The DGF block can optionally embed one DWORD of user-defined data, which is\nuseful for locating vertex attributes.",{"type":1872,"tag":1886,"props":6533,"children":6534},{},[6535],{"type":1877,"value":6536},"Applications which use UserData must set the corresponding field in the DGF\nheader and populate the corresponding bits.",{"type":1872,"tag":6538,"props":6539,"children":6540},"style",{},[6541],{"type":1877,"value":6542},"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":1867,"searchDepth":14,"depth":14,"links":6544},[6545],{"id":1881,"depth":14,"text":1884,"children":6546},[6547,6548,6549,6550,6551,6552,6553,6554],{"id":1917,"depth":18,"text":1920},{"id":2520,"depth":18,"text":2523},{"id":3100,"depth":18,"text":3103},{"id":3134,"depth":18,"text":3137},{"id":3958,"depth":18,"text":3961},{"id":4007,"depth":18,"text":4010},{"id":4859,"depth":18,"text":4862},{"id":6523,"depth":18,"text":6526},"markdown","chapters-compressed-triangle-data",1773054818962]