From a05d90c2211d8e69db3313427e653ab10577424e Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Fri, 6 Sep 2019 09:58:16 +0100 Subject: [PATCH 1/7] Recompile shaders with more modern glslang The SPIRV previously checked in had various issues -- most commonly, it would use the VertexId and InstanceId builtins rather than the replacmenet VertexIndex and InstanceIndex builtins required by Vulkan. --- data/shaders/base/textoverlay.frag.spv | Bin 836 -> 836 bytes data/shaders/base/textoverlay.vert.spv | Bin 764 -> 764 bytes data/shaders/base/uioverlay.frag.spv | Bin 664 -> 664 bytes data/shaders/base/uioverlay.vert.spv | Bin 1252 -> 1252 bytes data/shaders/bloom/colorpass.frag.spv | Bin 736 -> 664 bytes data/shaders/bloom/colorpass.vert.spv | Bin 1520 -> 1448 bytes data/shaders/bloom/gaussblur.frag.spv | Bin 3840 -> 3792 bytes data/shaders/bloom/gaussblur.vert.spv | Bin 1028 -> 956 bytes data/shaders/bloom/phongpass.frag.spv | Bin 2456 -> 2384 bytes data/shaders/bloom/phongpass.vert.spv | Bin 2732 -> 2512 bytes data/shaders/bloom/skybox.frag.spv | Bin 640 -> 568 bytes data/shaders/bloom/skybox.vert.spv | Bin 1372 -> 1300 bytes data/shaders/computecloth/cloth.comp.spv | Bin 15432 -> 15432 bytes data/shaders/computecloth/cloth.frag.spv | Bin 1840 -> 1840 bytes data/shaders/computecloth/cloth.vert.spv | Bin 2216 -> 2216 bytes data/shaders/computecloth/sphere.frag.spv | Bin 1536 -> 1536 bytes data/shaders/computecloth/sphere.vert.spv | Bin 2036 -> 2036 bytes data/shaders/computecullandlod/cull.comp.spv | Bin 5732 -> 5540 bytes .../computecullandlod/indirectdraw.frag.spv | Bin 1236 -> 1164 bytes .../computecullandlod/indirectdraw.vert.spv | Bin 2416 -> 2344 bytes .../shaders/computeheadless/headless.comp.spv | Bin 1740 -> 1740 bytes .../computeparticles/particle.comp.spv | Bin 5212 -> 5140 bytes .../computeparticles/particle.frag.spv | Bin 1184 -> 1112 bytes .../computeparticles/particle.vert.spv | Bin 1148 -> 1076 bytes .../computeraytracing/raytracing.comp.spv | Bin 16208 -> 16888 bytes .../computeraytracing/texture.frag.spv | Bin 816 -> 744 bytes .../computeraytracing/texture.vert.spv | Bin 1044 -> 972 bytes .../shaders/computeshader/edgedetect.comp.spv | Bin 4012 -> 3940 bytes data/shaders/computeshader/emboss.comp.spv | Bin 4028 -> 3956 bytes data/shaders/computeshader/sharpen.comp.spv | Bin 4516 -> 4444 bytes data/shaders/computeshader/texture.frag.spv | Bin 640 -> 568 bytes data/shaders/computeshader/texture.vert.spv | Bin 1304 -> 1232 bytes .../conservativeraster/fullscreen.frag.spv | Bin 568 -> 568 bytes .../conservativeraster/fullscreen.vert.spv | Bin 956 -> 956 bytes .../conservativeraster/triangle.frag.spv | Bin 448 -> 448 bytes .../conservativeraster/triangle.vert.spv | Bin 1204 -> 1204 bytes .../triangleoverlay.frag.spv | Bin 404 -> 404 bytes data/shaders/debugmarker/colorpass.frag.spv | Bin 520 -> 448 bytes data/shaders/debugmarker/colorpass.vert.spv | Bin 1188 -> 1116 bytes data/shaders/debugmarker/postprocess.frag.spv | Bin 3184 -> 3112 bytes data/shaders/debugmarker/postprocess.vert.spv | Bin 1064 -> 992 bytes data/shaders/debugmarker/toon.frag.spv | Bin 3452 -> 2980 bytes data/shaders/debugmarker/toon.vert.spv | Bin 3100 -> 2748 bytes data/shaders/deferred/debug.frag.spv | Bin 1608 -> 1536 bytes data/shaders/deferred/debug.vert.spv | Bin 1508 -> 1436 bytes data/shaders/deferred/deferred.frag.spv | Bin 3984 -> 3912 bytes data/shaders/deferred/deferred.vert.spv | Bin 1028 -> 956 bytes data/shaders/deferred/mrt.frag.spv | Bin 2412 -> 2340 bytes data/shaders/deferred/mrt.vert.spv | Bin 3220 -> 3000 bytes .../deferredmultisampling/debug.frag.spv | Bin 3232 -> 3232 bytes .../deferredmultisampling/debug.vert.spv | Bin 1364 -> 1292 bytes .../deferredmultisampling/deferred.frag.spv | Bin 6148 -> 6096 bytes .../deferredmultisampling/deferred.vert.spv | Bin 1316 -> 1244 bytes .../deferredmultisampling/mrt.frag.spv | Bin 2412 -> 2340 bytes .../deferredmultisampling/mrt.vert.spv | Bin 3340 -> 3120 bytes data/shaders/deferredshadows/debug.frag.spv | Bin 1872 -> 1800 bytes data/shaders/deferredshadows/debug.vert.spv | Bin 2080 -> 2008 bytes .../shaders/deferredshadows/deferred.frag.spv | Bin 9180 -> 9108 bytes .../shaders/deferredshadows/deferred.vert.spv | Bin 1512 -> 1440 bytes data/shaders/deferredshadows/mrt.frag.spv | Bin 2280 -> 2208 bytes data/shaders/deferredshadows/mrt.vert.spv | Bin 3160 -> 3088 bytes data/shaders/deferredshadows/shadow.geom.spv | Bin 2268 -> 2196 bytes data/shaders/deferredshadows/shadow.vert.spv | Bin 964 -> 892 bytes data/shaders/descriptorsets/cube.frag.spv | Bin 848 -> 848 bytes data/shaders/descriptorsets/cube.vert.spv | Bin 1692 -> 1692 bytes data/shaders/displacement/base.frag.spv | Bin 2004 -> 1932 bytes data/shaders/displacement/base.vert.spv | Bin 1268 -> 1196 bytes .../displacement/displacement.tesc.spv | Bin 2720 -> 2648 bytes .../displacement/displacement.tese.spv | Bin 4152 -> 4080 bytes .../distancefieldfonts/bitmap.frag.spv | Bin 720 -> 648 bytes .../distancefieldfonts/bitmap.vert.spv | Bin 1640 -> 1436 bytes data/shaders/distancefieldfonts/sdf.frag.spv | Bin 2236 -> 2164 bytes data/shaders/distancefieldfonts/sdf.vert.spv | Bin 1640 -> 1436 bytes .../dynamicuniformbuffer/base.frag.spv | Bin 572 -> 500 bytes .../dynamicuniformbuffer/base.vert.spv | Bin 1912 -> 1840 bytes data/shaders/gears/gears.frag.spv | Bin 1868 -> 1796 bytes data/shaders/gears/gears.vert.spv | Bin 3172 -> 2820 bytes data/shaders/geometryshader/base.frag.spv | Bin 572 -> 500 bytes data/shaders/geometryshader/mesh.frag.spv | Bin 1720 -> 1648 bytes data/shaders/geometryshader/mesh.vert.spv | Bin 2464 -> 2392 bytes .../geometryshader/normaldebug.geom.spv | Bin 2852 -> 2780 bytes data/shaders/hdr/bloom.frag.spv | Bin 2588 -> 2516 bytes data/shaders/hdr/bloom.vert.spv | Bin 1028 -> 956 bytes data/shaders/hdr/composition.frag.spv | Bin 708 -> 636 bytes data/shaders/hdr/composition.vert.spv | Bin 1028 -> 956 bytes data/shaders/hdr/gbuffer.frag.spv | Bin 6436 -> 5836 bytes data/shaders/hdr/gbuffer.vert.spv | Bin 3724 -> 3388 bytes data/shaders/imgui/scene.frag.spv | Bin 1572 -> 1500 bytes data/shaders/imgui/scene.vert.spv | Bin 2920 -> 2568 bytes data/shaders/imgui/ui.frag.spv | Bin 664 -> 664 bytes data/shaders/imgui/ui.vert.spv | Bin 1252 -> 1252 bytes data/shaders/indirectdraw/ground.frag.spv | Bin 2076 -> 2004 bytes data/shaders/indirectdraw/ground.vert.spv | Bin 2412 -> 2340 bytes .../indirectdraw/indirectdraw.frag.spv | Bin 1756 -> 1684 bytes .../indirectdraw/indirectdraw.vert.spv | Bin 5036 -> 4832 bytes data/shaders/indirectdraw/skysphere.frag.spv | Bin 988 -> 916 bytes data/shaders/indirectdraw/skysphere.vert.spv | Bin 2200 -> 1996 bytes data/shaders/instancing/instancing.frag.spv | Bin 2396 -> 2324 bytes data/shaders/instancing/instancing.vert.spv | Bin 6728 -> 6392 bytes data/shaders/instancing/planet.frag.spv | Bin 2220 -> 2148 bytes data/shaders/instancing/planet.vert.spv | Bin 3352 -> 3000 bytes data/shaders/instancing/starfield.frag.spv | Bin 2412 -> 2412 bytes data/shaders/instancing/starfield.vert.spv | Bin 1260 -> 1260 bytes data/shaders/mesh/mesh.frag.spv | Bin 2080 -> 2008 bytes data/shaders/mesh/mesh.vert.spv | Bin 3100 -> 2748 bytes data/shaders/multithreading/phong.frag.spv | Bin 1556 -> 1484 bytes data/shaders/multithreading/phong.vert.spv | Bin 3032 -> 2828 bytes .../multithreading/starsphere.frag.spv | Bin 2888 -> 2816 bytes .../multithreading/starsphere.vert.spv | Bin 1248 -> 1176 bytes data/shaders/multiview/multiview.frag.spv | Bin 1644 -> 1644 bytes data/shaders/multiview/multiview.vert.spv | Bin 2792 -> 2644 bytes data/shaders/multiview/viewdisplay.frag.spv | Bin 2296 -> 2296 bytes data/shaders/multiview/viewdisplay.vert.spv | Bin 956 -> 956 bytes data/shaders/occlusionquery/mesh.frag.spv | Bin 1796 -> 1724 bytes data/shaders/occlusionquery/mesh.vert.spv | Bin 2676 -> 2456 bytes data/shaders/occlusionquery/occluder.frag.spv | Bin 572 -> 500 bytes data/shaders/occlusionquery/occluder.vert.spv | Bin 1384 -> 1312 bytes data/shaders/occlusionquery/simple.frag.spv | Bin 496 -> 424 bytes data/shaders/occlusionquery/simple.vert.spv | Bin 1248 -> 1176 bytes .../shaders/parallaxmapping/parallax.frag.spv | Bin 8392 -> 8392 bytes .../shaders/parallaxmapping/parallax.vert.spv | Bin 4448 -> 4052 bytes data/shaders/particlefire/normalmap.frag.spv | Bin 3020 -> 2876 bytes data/shaders/particlefire/normalmap.vert.spv | Bin 4720 -> 4164 bytes data/shaders/particlefire/particle.frag.spv | Bin 2868 -> 2796 bytes data/shaders/particlefire/particle.vert.spv | Bin 2940 -> 2868 bytes data/shaders/pbrbasic/pbr.frag.spv | Bin 7600 -> 7600 bytes data/shaders/pbrbasic/pbr.vert.spv | Bin 2344 -> 2196 bytes data/shaders/pbribl/filtercube.vert.spv | Bin 972 -> 972 bytes data/shaders/pbribl/genbrdflut.frag.spv | Bin 8072 -> 8072 bytes data/shaders/pbribl/genbrdflut.vert.spv | Bin 1160 -> 1160 bytes data/shaders/pbribl/irradiancecube.frag.spv | Bin 2856 -> 2856 bytes data/shaders/pbribl/pbribl.frag.spv | Bin 12872 -> 12872 bytes data/shaders/pbribl/pbribl.vert.spv | Bin 2748 -> 2528 bytes data/shaders/pbribl/prefilterenvmap.frag.spv | Bin 9060 -> 9060 bytes data/shaders/pbribl/skybox.frag.spv | Bin 2788 -> 2788 bytes data/shaders/pbribl/skybox.vert.spv | Bin 1360 -> 1288 bytes data/shaders/pbrtexture/filtercube.vert.spv | Bin 972 -> 972 bytes data/shaders/pbrtexture/genbrdflut.frag.spv | Bin 8072 -> 8072 bytes data/shaders/pbrtexture/genbrdflut.vert.spv | Bin 1160 -> 1160 bytes .../pbrtexture/irradiancecube.frag.spv | Bin 2856 -> 2856 bytes data/shaders/pbrtexture/pbrtexture.frag.spv | Bin 14456 -> 14456 bytes data/shaders/pbrtexture/pbrtexture.vert.spv | Bin 2540 -> 2320 bytes .../pbrtexture/prefilterenvmap.frag.spv | Bin 9060 -> 9060 bytes data/shaders/pbrtexture/skybox.frag.spv | Bin 2788 -> 2788 bytes data/shaders/pbrtexture/skybox.vert.spv | Bin 1360 -> 1288 bytes data/shaders/pipelines/phong.frag.spv | Bin 2300 -> 2228 bytes data/shaders/pipelines/phong.vert.spv | Bin 3100 -> 2748 bytes data/shaders/pipelines/toon.frag.spv | Bin 3452 -> 2980 bytes data/shaders/pipelines/toon.vert.spv | Bin 3100 -> 2748 bytes data/shaders/pipelines/wireframe.frag.spv | Bin 556 -> 484 bytes data/shaders/pipelines/wireframe.vert.spv | Bin 1188 -> 1116 bytes data/shaders/pushconstants/lights.frag.spv | Bin 2264 -> 2192 bytes data/shaders/pushconstants/lights.vert.spv | Bin 2664 -> 2592 bytes data/shaders/pushdescriptors/cube.frag.spv | Bin 848 -> 848 bytes data/shaders/pushdescriptors/cube.vert.spv | Bin 1800 -> 1800 bytes data/shaders/radialblur/colorpass.frag.spv | Bin 1424 -> 1352 bytes data/shaders/radialblur/colorpass.vert.spv | Bin 1524 -> 1452 bytes data/shaders/radialblur/phongpass.frag.spv | Bin 2772 -> 2700 bytes data/shaders/radialblur/phongpass.vert.spv | Bin 2128 -> 2056 bytes data/shaders/radialblur/radialblur.frag.spv | Bin 2496 -> 2424 bytes data/shaders/radialblur/radialblur.vert.spv | Bin 1028 -> 956 bytes data/shaders/renderheadless/triangle.frag.spv | Bin 500 -> 500 bytes data/shaders/renderheadless/triangle.vert.spv | Bin 1028 -> 1028 bytes data/shaders/scenerendering/scene.frag.spv | Bin 2688 -> 2616 bytes data/shaders/scenerendering/scene.vert.spv | Bin 3600 -> 3264 bytes data/shaders/screenshot/mesh.frag.spv | Bin 1720 -> 1648 bytes data/shaders/screenshot/mesh.vert.spv | Bin 2616 -> 2396 bytes data/shaders/shadowmapomni/offscreen.frag.spv | Bin 712 -> 640 bytes data/shaders/shadowmapomni/offscreen.vert.spv | Bin 1848 -> 1776 bytes data/shaders/shadowmapomni/scene.frag.spv | Bin 2668 -> 2496 bytes data/shaders/shadowmapomni/scene.vert.spv | Bin 2376 -> 2304 bytes data/shaders/shadowmapping/offscreen.frag.spv | Bin 420 -> 348 bytes data/shaders/shadowmapping/offscreen.vert.spv | Bin 972 -> 900 bytes data/shaders/shadowmapping/quad.frag.spv | Bin 1492 -> 1420 bytes data/shaders/shadowmapping/quad.vert.spv | Bin 880 -> 880 bytes data/shaders/shadowmapping/scene.frag.spv | Bin 5168 -> 5028 bytes data/shaders/shadowmapping/scene.vert.spv | Bin 3236 -> 3032 bytes .../debugshadowmap.frag.spv | Bin 1020 -> 1020 bytes .../debugshadowmap.vert.spv | Bin 1304 -> 1304 bytes .../shadowmappingcascade/depthpass.frag.spv | Bin 696 -> 696 bytes .../shadowmappingcascade/depthpass.vert.spv | Bin 1592 -> 1592 bytes .../shadowmappingcascade/scene.frag.spv | Bin 8704 -> 8564 bytes .../shadowmappingcascade/scene.vert.spv | Bin 2400 -> 2400 bytes data/shaders/skeletalanimation/mesh.frag.spv | Bin 2088 -> 2016 bytes data/shaders/skeletalanimation/mesh.vert.spv | Bin 4928 -> 4708 bytes .../skeletalanimation/texture.frag.spv | Bin 1912 -> 1840 bytes .../skeletalanimation/texture.vert.spv | Bin 2876 -> 2656 bytes .../specializationconstants/uber.frag.spv | Bin 4988 -> 4972 bytes .../specializationconstants/uber.vert.spv | Bin 3100 -> 2748 bytes data/shaders/sphericalenvmapping/sem.frag.spv | Bin 1948 -> 1876 bytes data/shaders/sphericalenvmapping/sem.vert.spv | Bin 3256 -> 3036 bytes data/shaders/ssao/blur.frag.spv | Bin 1940 -> 1868 bytes data/shaders/ssao/composition.frag.spv | Bin 3504 -> 3432 bytes data/shaders/ssao/fullscreen.vert.spv | Bin 1028 -> 956 bytes data/shaders/ssao/gbuffer.frag.spv | Bin 1844 -> 1772 bytes data/shaders/ssao/gbuffer.vert.spv | Bin 2532 -> 2296 bytes data/shaders/ssao/ssao.frag.spv | Bin 5236 -> 5112 bytes data/shaders/stencilbuffer/outline.frag.spv | Bin 340 -> 340 bytes data/shaders/stencilbuffer/outline.vert.spv | Bin 1520 -> 1520 bytes data/shaders/stencilbuffer/toon.frag.spv | Bin 2144 -> 2144 bytes data/shaders/stencilbuffer/toon.vert.spv | Bin 2696 -> 2432 bytes data/shaders/subpasses/composition.frag.spv | Bin 3704 -> 3632 bytes data/shaders/subpasses/composition.vert.spv | Bin 1028 -> 956 bytes data/shaders/subpasses/gbuffer.frag.spv | Bin 2080 -> 2008 bytes data/shaders/subpasses/gbuffer.vert.spv | Bin 2448 -> 2212 bytes data/shaders/subpasses/transparent.frag.spv | Bin 2020 -> 1948 bytes data/shaders/subpasses/transparent.vert.spv | Bin 1916 -> 1844 bytes .../terraintessellation/terrain.frag.spv | Bin 4700 -> 4628 bytes .../terraintessellation/terrain.tesc.spv | Bin 7764 -> 7692 bytes .../terraintessellation/terrain.tese.spv | Bin 5232 -> 5160 bytes .../terraintessellation/terrain.vert.spv | Bin 1232 -> 1160 bytes data/shaders/tessellation/base.frag.spv | Bin 1320 -> 1248 bytes data/shaders/tessellation/base.vert.spv | Bin 1028 -> 1160 bytes .../shaders/tessellation/passthrough.tesc.spv | Bin 2420 -> 2348 bytes .../shaders/tessellation/passthrough.tese.spv | Bin 3108 -> 3036 bytes .../shaders/tessellation/pntriangles.tesc.spv | Bin 8348 -> 8276 bytes .../shaders/tessellation/pntriangles.tese.spv | Bin 8896 -> 8824 bytes data/shaders/textoverlay/mesh.frag.spv | Bin 1576 -> 1504 bytes data/shaders/textoverlay/mesh.vert.spv | Bin 3028 -> 2676 bytes data/shaders/textoverlay/text.frag.spv | Bin 720 -> 720 bytes data/shaders/textoverlay/text.vert.spv | Bin 764 -> 764 bytes data/shaders/texture/texture.frag.spv | Bin 2076 -> 2004 bytes data/shaders/texture/texture.vert.spv | Bin 3552 -> 3216 bytes data/shaders/texture3d/texture3d.frag.spv | Bin 2008 -> 1936 bytes data/shaders/texture3d/texture3d.vert.spv | Bin 3588 -> 3252 bytes data/shaders/texturecubemap/reflect.frag.spv | Bin 2808 -> 2736 bytes data/shaders/texturecubemap/reflect.vert.spv | Bin 2672 -> 2468 bytes data/shaders/texturecubemap/skybox.frag.spv | Bin 640 -> 568 bytes data/shaders/texturecubemap/skybox.vert.spv | Bin 1372 -> 1300 bytes .../shaders/texturemipmapgen/texture.frag.spv | Bin 2376 -> 2304 bytes .../shaders/texturemipmapgen/texture.vert.spv | Bin 3288 -> 3084 bytes .../sparseresidency.frag.spv | Bin 2612 -> 2612 bytes .../sparseresidency.vert.spv | Bin 2436 -> 2364 bytes data/shaders/triangle/triangle.frag.spv | Bin 572 -> 500 bytes data/shaders/triangle/triangle.vert.spv | Bin 1444 -> 1372 bytes data/shaders/vulkanscene/logo.frag.spv | Bin 1636 -> 1636 bytes data/shaders/vulkanscene/logo.vert.spv | Bin 3244 -> 2908 bytes data/shaders/vulkanscene/mesh.frag.spv | Bin 3380 -> 3380 bytes data/shaders/vulkanscene/mesh.vert.spv | Bin 3356 -> 3004 bytes data/shaders/vulkanscene/skybox.frag.spv | Bin 640 -> 568 bytes data/shaders/vulkanscene/skybox.vert.spv | Bin 1556 -> 1352 bytes 241 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/shaders/base/textoverlay.frag.spv b/data/shaders/base/textoverlay.frag.spv index 4aea3bdf7a4696d676238caf9ab7b9e35e296a05..8f8aae1171b488662c12239f734ac16e86381227 100644 GIT binary patch delta 18 ZcmX@Yc7%=OV diff --git a/data/shaders/base/textoverlay.vert.spv b/data/shaders/base/textoverlay.vert.spv index fd292c04e550b61b6e0bc16c6e03d5f8db0fae9a..07b9000aa0d947dc1f908d13706152457059f77a 100644 GIT binary patch delta 18 Zcmeyv`iGU1nMs+Qfq{{MeIw^*CIBg)1M&a> delta 18 Zcmeyv`iGU1nMs+Qfq{{MaU%IU delta 18 ZcmbQiI)jyynMs+Qfq{{MaU*9x695}=0>A(O diff --git a/data/shaders/base/uioverlay.vert.spv b/data/shaders/base/uioverlay.vert.spv index e379f3faaa714912ada425adc00866152f02f916..f359961ffb7266e16dac9c14878ecea2f1ddfcd9 100644 GIT binary patch delta 18 ZcmaFD`Gk{`nMs+Qfq{{MeIw^>762x}1GE4D delta 18 ZcmaFD`Gk{`nMs+Qfq{{MaUV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QrBWCIEDh8%F>D diff --git a/data/shaders/bloom/colorpass.vert.spv b/data/shaders/bloom/colorpass.vert.spv index 9bc45ae62756e3d43094ec07bbb7c0313d8e22a7..86c3ca642a624ad551a680e91c3b87c386bbf325 100644 GIT binary patch delta 21 ccmeysy@H#QnMs+Qfq{{MeIjT6#sdbd05J{(o&W#< delta 93 zcmZ3%{ehd4nMs+Qfq{{MaUy5FI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QrBURse)|8-@S? diff --git a/data/shaders/bloom/gaussblur.frag.spv b/data/shaders/bloom/gaussblur.frag.spv index ca54c508ea5a46eae9bcb24a8e72608422648253..328633b4d5094283f61922026a06d7fee3539b38 100644 GIT binary patch delta 43 ycmZpWyCBQS%%sfDz`)4BK9RF{;*k@A-V6*3NjarODVas7$t9Wjd7E1qt9b$IcnpaE delta 97 zcmca0+aSlu%%sfDz`)4BIFYm1orQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U pxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt&v;%`uE6ya4Z?9d7^t diff --git a/data/shaders/bloom/gaussblur.vert.spv b/data/shaders/bloom/gaussblur.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/bloom/phongpass.frag.spv b/data/shaders/bloom/phongpass.frag.spv index c12ddded6573c0940410623c0172237f33119b5b..27e5b53a94dd7e82afe695009757aba7b83f9479 100644 GIT binary patch delta 21 ccmbOsd_jnlnMs+Qfq{{MeIjS|#xrL)0569HGynhq delta 93 zcmca0G((t^nMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvM38~}a>92@`u diff --git a/data/shaders/bloom/phongpass.vert.spv b/data/shaders/bloom/phongpass.vert.spv index 930645046308c2363c1ba4a06cbe912323e64067..7fa727f8080f258788bbb295b4c44f4c8b938e0c 100644 GIT binary patch delta 536 zcmZ9JyG{Z@6o${t%EcH8LolJCv9hqC!Nh2zh$09$fDd2@TG?PMx9|yg4;!*?;0x#r znfQNXCNZAPH#_G)mpQZh(fF>{GJjYxb5^mcJ*;cX`kk2tk?HYze>&TIbzKAf<#jc9 zUOuhni$^Qz3B{3rbNhr^Vn_6}hGLTi-#pc}Dv59=k{^oW^1|mOJCN8F7Xlk8UBlRw zKnKhTMw#eHYI=ei^i*>lbz<26nj2}<&}UndYtt75082$QA_zF`E7yE1;!%pXi3vgqDTNsgS^KB?xoR$JPzQKqNRpY?f>?h a$wvb$^~>W0=4MSJiDvw53HGD36Y&e={wcix delta 720 zcmY*X%}N4c6usl9IfRRd5+d5PiZ&rZMO5@-R%-s0)>sXb4Wkt*I?~d1t;Kb3&?bC? zo}f(+(1Qe>6Z66JeH`c9bMHOhpP$ojGjTn%I3c28#^h!gcWdV&Vgfp52;UD)BrJxc zv(|2D&+0iHyK8%n)oa*yPSc%TiC~)JZ|zB&Vrl^h18Mx42nf<{?ir^ca-a^N(g z9yB@)=*$(ceY}+90UnMA;ii>d0Ow{0+*u}&D1viwE<{r{9N=35XvRj?Y~fnDKpB_> zhIkmpX8>!dZ{xxZUsLrJ#7ThhtjL^H5v&1uyb=vA0BY4y&PZ%rg0Y1v?f8n+{C25< c2fMEjQ>%?$jl}#l7!`K%U&{Cg_qGoF0s(hR?f?J) diff --git a/data/shaders/bloom/skybox.frag.spv b/data/shaders/bloom/skybox.frag.spv index 054064b10546fbb776d0d8825bd20ea1d5d739be..54a894ccad057de259cab4c5e03a47bf8e3384de 100644 GIT binary patch delta 21 ccmZo*-NC}i%%sfDz`)4BK9MtfCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>oYMgU#A8=(LI diff --git a/data/shaders/bloom/skybox.vert.spv b/data/shaders/bloom/skybox.vert.spv index 0458a2a36365e1bd7ce4f313bd7b021d4fb5b3f8..c62b7c4796c5b79494f18956311073b2bc65e0f1 100644 GIT binary patch delta 21 ccmcb^HHC|lnMs+Qfq{{MeIjS_#w{yY04`Sq(*OVf delta 93 zcmbQjb%%?SnMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvd$EC6zl8@m7i diff --git a/data/shaders/computecloth/cloth.comp.spv b/data/shaders/computecloth/cloth.comp.spv index 770aa432889534bc39bac57872b5796519966d22..959d720626a0bab3df57391de6a422af7d1dae22 100644 GIT binary patch delta 18 ZcmX?6aiW5gnMs+Qfq{{MeIuv64FE6c1NHy_ delta 18 ZcmX?6aiW5gnMs+Qfq{{MaU-X_4FE681MmO< diff --git a/data/shaders/computecloth/cloth.frag.spv b/data/shaders/computecloth/cloth.frag.spv index 03f2ff3051bb2957dbc6762616bc09837690660f..f7102ce03b34522ae091f554658aa9cc43a0945c 100644 GIT binary patch delta 18 ZcmdnMw}Fq7nMs+Qfq{{MeIutjI{+UP0;K=| delta 18 ZcmdnMw}Fq7nMs+Qfq{{MaU-WXI{+T`0-pc? diff --git a/data/shaders/computecloth/cloth.vert.spv b/data/shaders/computecloth/cloth.vert.spv index 8791e31d34134bd1542985c3a511e6923a05e15c..480fafa154292c44f32f66798b3f148fbc68838f 100644 GIT binary patch delta 18 ZcmZ1>xI&PVnMs+Qfq{{MeIw_54geoj0~7!N delta 18 ZcmZ1>xI&PVnMs+Qfq{{MaURKnU|?im-^lr$6#yC%0}lWI delta 18 ZcmZqRY2e{xW>RKnU|?im+{pQz6#yCZ0|@{C diff --git a/data/shaders/computecloth/sphere.vert.spv b/data/shaders/computecloth/sphere.vert.spv index b670f69c8cf0bda585e9315e89443869570169f7..923ecf581613c6f77a02049eb1df8b5c7187b18e 100644 GIT binary patch delta 18 Zcmeyu|An8EnMs+Qfq{{MeIw^g? delta 18 Zcmeyu|An8EnMs+Qfq{{MaUV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy za!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qra7#?9LpD_Hbd7-|_HKoUrKFtEb; z%206+pn)JYj6f_o*_KU`8^UJ-^8?u=p=L0H_&^LZ1H=cJ!2=e9=wSh}B_~(1RRYbJ x31owS#N@YNGeLZi9TJln*+FK4_#itZfEZ*Zj1MxC11ttn1F}bAvnG2r9{_4zFFODL diff --git a/data/shaders/computecullandlod/indirectdraw.frag.spv b/data/shaders/computecullandlod/indirectdraw.frag.spv index 3d58552889357fc1c09323272014f980734f09b7..12c1d44eba9cc28cf3f43181f5e95bd74fd1ea05 100644 GIT binary patch delta 21 ccmcb@*~7`n%%sfDz`)4BK9RG0;|U%X04!MqO#lD@ delta 93 zcmeC-yu!)J%%sfDz`)4BIFYm5orQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt*H>3jlE<8#Mp` diff --git a/data/shaders/computecullandlod/indirectdraw.vert.spv b/data/shaders/computecullandlod/indirectdraw.vert.spv index 0b18663b638e0f4c6f5f0af6e76b86a2d8ba79f4..bcbf69270ca22321dd3f26fad3fb25950ee2e4be 100644 GIT binary patch delta 21 ccmew$v_goJnMs+Qfq{{MeIjT5#tREL05f|9KL7v# delta 93 zcmZ1>^g)P|nMs+Qfq{{MaUy5EI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv*w8~~40947z( diff --git a/data/shaders/computeheadless/headless.comp.spv b/data/shaders/computeheadless/headless.comp.spv index e3ea853c8dfc6cdc5768f46af09378d0d839a93b..54da283a06e9f945f333dccf5670ac43dec304fd 100644 GIT binary patch delta 18 ZcmX@Zdxn>jnMs+Qfq{{MeIw^#HUJ~z19kua delta 18 ZcmX@Zdxn>jnMs+Qfq{{MaUV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvX&!T^lZ92Nio diff --git a/data/shaders/computeparticles/particle.frag.spv b/data/shaders/computeparticles/particle.frag.spv index dcc76dacbe478ae36b513f586468d33d786b7e64..d3d9c746ada4a671ec08514184e561ec9f0a9f30 100644 GIT binary patch delta 21 ccmZ3$d4q$KnMs+Qfq{{MeIjS^#v^x_0WT&6D*ylh delta 93 zcmcb?v4E44nMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvYF%m8{t91{Ql diff --git a/data/shaders/computeparticles/particle.vert.spv b/data/shaders/computeparticles/particle.vert.spv index 572d49b795e7b1cd512167b0462bac4921b59380..6a36778755cc896f2a0c806cb60b1d3efae38a54 100644 GIT binary patch delta 21 ccmeyvv4w+^nMs+Qfq{{MeIjS}#ytm^0W*39HUIzs delta 93 zcmdnO@rQ$xnMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv9a%m9kh93B7w diff --git a/data/shaders/computeraytracing/raytracing.comp.spv b/data/shaders/computeraytracing/raytracing.comp.spv index baa5002bad25e8a5db396f0c4fbd3defd6443042..ee022372759e95510875c0ef79a19012925023bd 100644 GIT binary patch literal 16888 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 b>g>zB^04g&jy0N%O&+!h;Miwkzd!#E4V<>i literal 16208 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 diff --git a/data/shaders/computeraytracing/texture.frag.spv b/data/shaders/computeraytracing/texture.frag.spv index c8595438325278b22040856f8122b64739774ac1..81f30b2ff5e4d7fc9ad9a87064f817c1da118399 100644 GIT binary patch delta 21 ccmdnM_JWm@nMs+Qfq{{MeIjS}#yurW05Bs2%m4rY delta 93 zcmaFCx`B<8nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv8;CIEm^8?*ob diff --git a/data/shaders/computeraytracing/texture.vert.spv b/data/shaders/computeraytracing/texture.vert.spv index 3bb35f01cab5222605591498a6d4a04efb04207e..3a8d9076ad5f79a23fa655751e703dde9c349ecd 100644 GIT binary patch delta 21 ccmbQjafY3fnMs+Qfq{{MeIjS_#w`iV04t~jbpQYW delta 93 zcmX@ZK81smnMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvc)W&mpU8(jbZ diff --git a/data/shaders/computeshader/edgedetect.comp.spv b/data/shaders/computeshader/edgedetect.comp.spv index 4d5da358dc3229ec79eb7e8d7a9109f610fd7002..66a32b3603f3486313dde730307bee691cd79cb9 100644 GIT binary patch delta 21 ccmZ1@|3r?HnMs+Qfq{{MeIjS^#v?EI05oj{h5!Hn delta 93 zcmaDNw?>|mnMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvX$d;pTH9Bu#r diff --git a/data/shaders/computeshader/emboss.comp.spv b/data/shaders/computeshader/emboss.comp.spv index 2bcadc0d03e6d9157e602f772e846a295e106341..88cc8d796f0dc2c49b339febec6c3fd441fd0b8f 100644 GIT binary patch delta 21 ccmdlZ|3!|InMs+Qfq{{MeIjS^#v?!Y05=TV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvX;d;p$I9G(CG diff --git a/data/shaders/computeshader/sharpen.comp.spv b/data/shaders/computeshader/sharpen.comp.spv index 731324c5a42b75293a95b8dd562a4e272e555055..f023b76875c0d361657d164bac4477d3c204f94c 100644 GIT binary patch delta 21 ccmZ3Yd`F3snMs+Qfq{{MeIjS^#v=~|05i7*cmMzZ delta 93 zcmcbkv_zScnMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvXm0sxP;9AE$d diff --git a/data/shaders/computeshader/texture.frag.spv b/data/shaders/computeshader/texture.frag.spv index 38044a2e5d55eb3c06d38cca6ebfbb5129257050..401a74346f9008f15c38c323804b7f38b18a3a12 100644 GIT binary patch delta 21 ccmZo*-NC}i%%sfDz`)4BK9MtfCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>oYMgU#A8=(LI diff --git a/data/shaders/computeshader/texture.vert.spv b/data/shaders/computeshader/texture.vert.spv index dbaf4b667cef2cf68c1e0119e144d7a8251fc931..f72d60147ec9b2bfba962b7945be4cf9e84988d8 100644 GIT binary patch delta 21 ccmbQib%B$UnMs+Qfq{{MeIjT2#vKVP04%ixiU0rr delta 93 zcmcb>IfILnnMs+Qfq{{MaUy5BI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw1~765RB8*%^u diff --git a/data/shaders/conservativeraster/fullscreen.frag.spv b/data/shaders/conservativeraster/fullscreen.frag.spv index a7730bfa09ccc156fdf8dd2bf5d685644ccd70c9..401a74346f9008f15c38c323804b7f38b18a3a12 100644 GIT binary patch delta 18 ZcmdnNvV(<_nMs+Qfq{{MeIutn6969X0;B){ delta 18 ZcmdnNvV(<_nMs+Qfq{{MWh19P6969I0-*o^ diff --git a/data/shaders/conservativeraster/fullscreen.vert.spv b/data/shaders/conservativeraster/fullscreen.vert.spv index a8f44d251a9ce40071366a957f1398f8480f6eed..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 18 ZcmdnPzK5NYnMs+Qfq{{MeIw^)W&j}I12+Hw delta 18 ZcmdnPzK5NYnMs+Qfq{{MWh3WiW&j}312g~t diff --git a/data/shaders/conservativeraster/triangle.frag.spv b/data/shaders/conservativeraster/triangle.frag.spv index 34ce1e1eee91989cb2c3aeaea5875c420684237b..798349bacc26825d4dba4a6daa642f3aa384b48d 100644 GIT binary patch delta 18 ZcmX@We1MsgnMs+Qfq{{MeIw^~MgSo0133Ty delta 18 ZcmX@We1MsgnMs+Qfq{{MWh3WyMgSn+12zBv diff --git a/data/shaders/conservativeraster/triangle.vert.spv b/data/shaders/conservativeraster/triangle.vert.spv index 2d83e1a0af770494b420322634d2cadc078f7864..d664f43c102b52e086b58702c32fcc9a079e3568 100644 GIT binary patch delta 18 ZcmdnOxrLLHnMs+Qfq{{MeIw^;762dt10(CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdtV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw3T%m8_X91{Ql diff --git a/data/shaders/debugmarker/postprocess.frag.spv b/data/shaders/debugmarker/postprocess.frag.spv index 7d2ef9c10c6064f0cc8ba45f4df4e76f0a29fa7f..eb0a125e32ef4e79ae2631644454dc16ebb588a4 100644 GIT binary patch delta 21 ccmew$u|k5AnMs+Qfq{{MeIjS}#ywlO0W<0aIsgCw delta 93 zcmZ1>@j-%V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv9^+yIS(93lV! diff --git a/data/shaders/debugmarker/postprocess.vert.spv b/data/shaders/debugmarker/postprocess.vert.spv index a67317a06d4caff6670f287e31dddbbfbc10dd40..57be5820e675e566746bfea7f6a160e71adf2de6 100644 GIT binary patch delta 21 ccmZ3%@qnF^nMs+Qfq{{MeIjS_#w{hx050$Zu>b%7 delta 93 zcmaFBzJi03nMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvc|W&nAA8<_wA diff --git a/data/shaders/debugmarker/toon.frag.spv b/data/shaders/debugmarker/toon.frag.spv index 0e3518d9c928b024f898fd926641a9d32f1fdff9..62a22effa48db0957bf69007bdfffd422f39feb9 100644 GIT binary patch delta 796 zcmY*XJ4*vW82t7gi9rJv!VztZmX>J(k_U)biWa`2CO%_~kNAkuvxvVy2v=!sV|ky}kVzeR9&KF_{!ml9U0t?WHTq?KQ?;{b8j#-j{Ne z>wT+gwj&}F0LPqILY@Uw$lZS1cvsyOP>j-u7_y3D3f2VXO(2)+7d5YeKR#qin(u;( z+(rEc*r)FobpIsim&+MR$t7xLa_jg2_g<{jLK`AIN~kO60BXGUy`kCU)?7YpAL5vkR~@ssbzl&tT;10DWbEy`q>wpSoVN zfjXXB1*gVq)1EDn?!Vw|G-<2>Xhy-*^`afr@!&mhYP@gl*+(5ea2=dJeiVE9z;)~& zEjmCW9()K+jXzEYH&MrfkHG2U=IrTU>Rf|oD96AcaE}`%KMgfLfI>68;uZ*lwdo8s ljno-5gZUho1?KT$$S*>TUJI}R{vH$HLFlFD7ymyG`~gGDPl5md delta 1235 zcmZ9L%TE(g7{$LSMKs95#Do+!B1>ap#D&H{i^OyzF|hE3Iu2zhh0@lx;Ip;}zG`AZ zy3(~<7p5B%SH>;=JwBp|=Qr&&mD`-$?|kRnd(X`Dz90TQGSn9vA29RuJ7}+WhZel% zZf-Okw?me`cYnaugjb5ld;cUcwJN@ zdDLQdL&XVM4`|K^6BF$z$Ft(^-X@ZcuZx>C{^^@y-}d$la=c&9ZRAD?@s z&W>()jRI?#w7QvmisJb`ok~lrS6=9b(GYE?o3M&GEsM(YE!nY*Avei2x zCU;0qwM&Z`-Z6K)9OAsIs`0q6aHr)}_l7Nq)8mgr*pg<>kJ2I*g}VZ2so9jT#-|_v z3()YmL&~aMSiJCFFKe7vH!IrDg@xChxFOP;_MSMsO@XuzG&6X$X!nJO0)eR6w5pk> zBLIFhJnoD~s$E#T;`RT`EOO?@sxi5=a5VnoHDOSAqdzU2w@8mW=hin=bC~mNsm9k3 h@XTm_s=HJ@qMHB! diff --git a/data/shaders/debugmarker/toon.vert.spv b/data/shaders/debugmarker/toon.vert.spv index d6215eb52551e53c836505862df1c915a76646cd..82758e686cfd5a35ead56c59b5827cba399c672f 100644 GIT binary patch delta 913 zcmZXT%Su8~7=`!oWGdkxq==vr!a+0(qM$VGrk0gv_p}QU6$lQp@fkF3AWnM;aoVUC z=oxyB2wI<=jZ*(%xz}F%zn*=39eW#zx`FACF^&nDu(@tV?_wv$n5y9F321$HO#5Tr zN#w+9#rmTb6V!uW{i#uSxVvv0-QIMyYG)=;c7{2c6b6K>eyg1q_shx0MYEDruZvmj z$Hn&rDsf)+`KZ<kW9JG#9$)e1r6>gVOhZT6iAsB0UcnDK&g`2 zB_=HpgKlFo;%OgR{>7|HBZfTPn3~9%zyZK)p`sZyN$uAKnjty9NzF!s8^Vy#R731H z1$@y{nmXcZ8J)+)^R0Fy=54_QJI1y+8fM2Rh@%6{c4T9Aq!EK|V|K;S0rod$Pnu%9 z-s}>J0tW!IL3Z?#G@2nfzKp^(9|%(d*U#(VJ`M$R+t87(p<}kYrhAqP^K5m6b(gXqKsfDO8hy#`NAez-_oV%&>-G)qlBGpP)Wc zpQ?XatKaY5yX}UDwLSZJ&U5zJXYVuD(UIvVlH>?~N0VMsj1$QSI7yBrY}YM$ZGF^287vpmEE{xR%n>^Sxu_B{3ib{e+^4nuhZ(bd!2)JCvDALoZV}0K1gar zs^(IIF`xdy@J@fQ+wS7anP1j>MCF|MqPyAe_6N9dV|o5rub{-<13&t!3b4&a{>e<2shuDW`rJ zeblIy@&>9ku$c~?}ywe@QciK%vcvn{1U$74ESYcV->NB-pK{;8S&Qap=XHgVcf4?`tFG{ zrtv*9>SIqM2k-J0mLv~v82>#y^Nl;bk8f|p=6J2dYK-sx>zKp+cbL^{aefOw^1EO9 z#xo!L@0&7S;Nm-*B$s*Z?z0{aHGjkS8&GR*eiJ-P?Ad-7#Mi*iPhq~7>+JSjiDS+G z1$-;6`G&-<+51zNeRs|GAzt9*I`b4}&F!6fYkdxr56x@%YNoN!ypAvbCvn{K2IfBb z$mvb|^Vk|1Yx_1P=LqfszTA-t_fE-KuT^etec#30uikb0{0DJeo54I^jXB%*S3)HRkF& zkc(We;vdfS6FB)bDr;?TU~(~npN9y($g$8bRCx0Y{bI?hbp(GC-#GHsIGy4s)3l9P8>8*_~QZQ&bVo&ED0Di{6!8DB2q zckunaMf`1iIn5FAe=pxh24@U)#!s2$BHjc1YP>F3PIE-O-^y?LE}R-;?J$e~L3IWD E7cD2k9{>OV diff --git a/data/shaders/deferred/debug.frag.spv b/data/shaders/deferred/debug.frag.spv index 2af6398fab6bb4da93842f3d470f823c41afafcc..b9cee5160ab3c67abce4a682bf7765817d2bd752 100644 GIT binary patch delta 21 ccmX@X)4;>Y%%sfDz`)4BK9MtfCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-4gD*$KZ8;k$| diff --git a/data/shaders/deferred/debug.vert.spv b/data/shaders/deferred/debug.vert.spv index 4300cf84548add6c1a36d80a5c8c3c5e782631f3..62971ed359584f4bef7c51ed0cbbf27912c2d9aa 100644 GIT binary patch delta 21 ccmaFDJ%^iV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqmORsed38(sha diff --git a/data/shaders/deferred/deferred.frag.spv b/data/shaders/deferred/deferred.frag.spv index b3d447d544490a1664aae9442e571c2acb0fc574..8891026e33683989ea731064f8797df386dff5bc 100644 GIT binary patch delta 21 ccmbOre?pFvnMs+Qfq{{MeIjS}#ywZ~057ElDgXcg delta 93 zcmX>hH$k40nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv9?d;ojo91;Kk diff --git a/data/shaders/deferred/deferred.vert.spv b/data/shaders/deferred/deferred.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/deferred/mrt.frag.spv b/data/shaders/deferred/mrt.frag.spv index 129538fdc15741bdefad7c0282e27c5dd8cd7442..03621257877ddea7b3b7a0d33415767598b5d805 100644 GIT binary patch delta 21 ccmaDOv_y!LnMs+Qfq{{MeIjS`#w#;805aV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvj+8~}}^93KDx diff --git a/data/shaders/deferred/mrt.vert.spv b/data/shaders/deferred/mrt.vert.spv index 25d2c2da36002194895938b288108175c5299ac5..da5b4ef5227ac5540071598373304db501fa5f60 100644 GIT binary patch delta 757 zcmZ9K&q@MO7{%|*s1uYc7vZKNS1#HYp&%h`!nEw4{jn*{F>D6JXcaz#*o%al+V%#m zdYYi~lerOHInH;^_nkBMUVX{GEoVKq;2Yx@-z=E>Nw!^R8DlPmK)4lpLMV9pxO#p# z=Jl)M6q$=3N40qP5DZkO^}*MVexTEhENw+`?^=64+M0;B8=TNbZk6_0v>ehX(l>7 z)_>2DG(6f`UJP8?~ALQju;nh-CfnzP0zaTRNn~naR+*$ T*=_Vy^OvQ^4+Z~L(x&hO5y43R delta 1006 zcmY+DPfrs;7{+IJpya!6gR`BR%Q8cs?kv=|0hlI^3n6S z8WrQ^_%<5-O6E5(sH;g#7lp)e4B<15V-|9@3TK=Ge%z>8XAo zPO~MQ?FoLtq2?5)(A2bI8k!#on6Z$YCn|uR3N-RUAg8I1gnld#Th-BTI$m?J6LB>0 z(TB&gWu`eF6;GNz6YzX55WCZLL~jeMC62Fkn)mI9JKsruSDee>efa~tFEQs^Ggl%k ZCIMq^6dJ}9?g`u)V%#S9gRI^Oe*xz!YdHV_ diff --git a/data/shaders/deferredmultisampling/debug.frag.spv b/data/shaders/deferredmultisampling/debug.frag.spv index 03e4c9f4e891b6c047a5237c5aecea3f527baa79..0b0e1062a70de6144b87ef350658b52df5e433fc 100644 GIT binary patch delta 12 TcmZ1=xj=G44kP=CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>%O765F(8>0XK diff --git a/data/shaders/deferredmultisampling/deferred.frag.spv b/data/shaders/deferredmultisampling/deferred.frag.spv index c7737b3108634f21346395378114cac926dd218d..d21988cf434052b9c51980eaa94940df89eab124 100644 GIT binary patch delta 43 ycmZoMxS-F;%%sfDz`)4BK9RF{;*o8FtPC0q3=DpuzVX41z5zb2!JEq&d&L0Jf(m>9 delta 97 zcmcbh-(tYY%%sfDz`)4BIFYm1orQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U pxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt&wW&2EfcVgUW<9gYA1 diff --git a/data/shaders/deferredmultisampling/deferred.vert.spv b/data/shaders/deferredmultisampling/deferred.vert.spv index db55636773be94a99578e2ebdda65ecf4fc86654..20425dfcc3bdb27402952e8556d9f0471c12c448 100644 GIT binary patch delta 21 ccmZ3&b%&FanMs+Qfq{{MeIjS_#w`Ub04|jTssI20 delta 93 zcmcb^xrB?8nMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvc&765nz8V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvj+8~}}^93KDx diff --git a/data/shaders/deferredmultisampling/mrt.vert.spv b/data/shaders/deferredmultisampling/mrt.vert.spv index e3f5cb5d1b7a8925d952c94e42cacb962514f4b0..5ee275387eb31808f603fbbebf77caaccf934aba 100644 GIT binary patch delta 728 zcmYk4J5B;o7=`c50Am3ajj`}WMPXrQVlW|u*r7y3d;-ctl$l8g#>%h(8!{_!2O4(Z z4y;^_iRUA8jdyZ#|Ns2wKle4SYwxQ$&n@`IIL0?CCYtBkg|;!~Ru~BP!dM6dPoJy# z(=i|4Wv7TPdYaavNzg@;)<@qc{G*oKATGQ4B2J^Q(G7?FaGI#;l0zjLM-zoor%bST zai5(!=Id}8hoUhi_mZ5=k*AUz`~NxC5TIMTgheI~#+<2OIQg{mc>!q%$J6TXFN zhU!8<#YwE{GU2H)aG-u{GN!KiN?<+Q&}I|;+0z delta 980 zcmYk4&q^Cn6vpq&*i>m;xe*twf0o@8sZfvzQA7$ws)_cGspA;OWK5i-$)sJ*1GG>i z&rxW}8+7f)=kOVXe!nnR?j1hvIo~OvL z)QZE`>#zDzv-9^?)$=aLciuvUj!C-T8(c?SndXVU=>(&!uBtfI2yjf4q>t2;8;)1} z1uvUy_}{(pZ7};5fjtd?=yM?`d<5}l3Li1o=cxD`llpA(5afRTQf5iivB27tzoVU- zLV8(#Te~jClm+7Ww1>0#v?t%jY465q@5Z@x#V7ZrA3SVsFOSRP5s ze{y(EW%NMvo4@E3^dSRP!9*Dur??yH@z*_XU2r)%_~l>Jlq-D`p^vViFMM-M}G? R&`98I5aZ3@KS=70@E`u9YA65z diff --git a/data/shaders/deferredshadows/debug.frag.spv b/data/shaders/deferredshadows/debug.frag.spv index 87ae1418683be5fcc48711f7b7a953d0ae01acee..26bccb1fbd1c9ee7d8632f791ebd352484cb7c87 100644 GIT binary patch delta 10 Rcmcb>*TFZTWaFMGYycS)1b_el delta 82 zcmeC+yTCW0#GQqKlfm65-Z982zBsiYu_&=5HNH3_F(tJqK0hfdHMyjifdN?!P%1Mo aJw7KfFTFG|JvH9M$e;M^V1atrZ delta 82 zcmcb?zd&F@i8~7eCxg3Bykn44d~s?)Vo_pAYJ71>Dcp diff --git a/data/shaders/deferredshadows/mrt.frag.spv b/data/shaders/deferredshadows/mrt.frag.spv index c2acf111639efab386ff424b79d09c1bab3c6399..235932964a71842b4e3dd7a68a68990ea581e9ee 100644 GIT binary patch delta 10 RcmaDMxIl11&&Dev8~_@&1ZV&N delta 82 zcmZ1=_(E_(k2?zkCxg3Bykn44d~s?)Vo_pAYJ71!;8g~{3P6l_Mc*h{8_~O)p#G=HK)cE3z#FW&c`23`-)Z~(41_op`K&i~U b^!S{_y!6t<^wfA0BZGp(BU$O%LW=0%Q diff --git a/data/shaders/deferredshadows/shadow.vert.spv b/data/shaders/deferredshadows/shadow.vert.spv index 581c1ca6da3c88aab8c889423e8841def2b61ee8..e76afcdadb2aff6143426f87fbb1fe64a5d58dab 100644 GIT binary patch delta 10 RcmX@Y{)cTs!Nwgt%m5ma1V#V= delta 82 zcmeyvc7%OGfjbKWCxg3Bykn44d~s?)Vo_pAYJ71c7ctPnMs+Qfq{{MeIutkGXNrx0`UL< delta 18 Zcmcb>c7ctPnMs+Qfq{{MWh19MGXNri0`33+ diff --git a/data/shaders/descriptorsets/cube.vert.spv b/data/shaders/descriptorsets/cube.vert.spv index 8404d4667b7f76973bf2de74e5409701c43d2b3b..86306db8d3d03ec4c695f7ba78c64f6c1528a996 100644 GIT binary patch delta 18 ZcmbQkJBOE(nMs+Qfq{{MeIw^&HUJ$X0_Fe! delta 18 ZcmbQkJBOE(nMs+Qfq{{MWh3WgHUJ$I0^CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt*H>I{V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QrBk7666v8;t+} diff --git a/data/shaders/displacement/displacement.tesc.spv b/data/shaders/displacement/displacement.tesc.spv index 27f51af0175355a7f456099fda14b6bdd8adef5f..a85c805d17f3b7406ee85da4c2a23166b7e0bfbe 100644 GIT binary patch delta 21 ccmZ1=dP9VhnMs+Qfq{{MeIjS~#ydwi0WpLHVE_OC delta 93 zcmca1vOtuRnMs+Qfq{{MaUy58I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QuIaIRT0z97zBG diff --git a/data/shaders/displacement/displacement.tese.spv b/data/shaders/displacement/displacement.tese.spv index 6f06d21921936bdd4ec2ac8ab3c1e1e83a5ca864..e703b17748a426f2a2aeb2741bf4314e39756389 100644 GIT binary patch delta 21 ccmdm?@IjuFnMs+Qfq{{MeIn=ljUPPt0XCEcSpWb4 delta 93 zcmew$ze9nOnMs+Qfq{{MaU$n@cNPXt26vx$#~`Qp;?#n~qQsKa_~MMjl+>d5{G_bZ l+QG`n%%sfDz`)4BK9SQ~o|A!rK@f-q7?>GYfHY7B$YN$-0@8;V88+?~WdZ<; CZUrp> delta 149 zcmeBRy}-)J%%sfDz`)4BIFZx4UXX!-ffI-Y7?>GYfHVgXGXo(LkUqr702Je7aQBIK z404JuPAy0*N-Rl@FV09zNiB-cPs&P7E-6M;1C+|lOOMY<%u6p#OiztBF)}DfOwMLt Y1)2mhKQ}Qm4@d#|Y#@6#cK>Ar0L$ne^Z)<= diff --git a/data/shaders/distancefieldfonts/bitmap.vert.spv b/data/shaders/distancefieldfonts/bitmap.vert.spv index 023de7eb270724be2538dcce9cd49a643f451712..0872996a8fae4889cc9212be02f9dc1f4b261bec 100644 GIT binary patch delta 85 zcmaFCGl!d(nMs+Qfq{{Moq>ZvcOtK;E++#BumEvxVrCwQ4HDr7VqqXw24ZF)WCGHM Z7#TM17iHYUq`|n^gLwzzW&>6WMgW;J3l{(Y delta 286 zcmbQk{ep*=nMs+Qfq@YSIT#Ek@|xCjGk^dK5a%Xl=7HGCKnxP)1Y%(z)&pXFAZ7+a zCLn!?5u~1z!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9Uxuh6X4NxjGFFigdF)zI| zF+DZj#K@o^F*%!obz`A0qb4f@E7+FwocOTRqLS1KPZyvF8`xH$m}g#bNn&1ds;A55 zMn-K$S$ClIAV+~5$qK|EKFEO}KHKJ%OuHF%6@WszKrYa!3?e{m4dsKhfy7{ZkT%B6 Ii7eKP0CnInN&o-= diff --git a/data/shaders/distancefieldfonts/sdf.frag.spv b/data/shaders/distancefieldfonts/sdf.frag.spv index 37d123525688e53253427d55548850e06bd53a4d..f16588d15fd627143216e58c05d7fe24930c74bf 100644 GIT binary patch delta 37 ocmdlZ_(gz|nMs+Qfq{{MeIjQxKaj=141`QT`Vb?-#@&n@0BTVMT>t<8 delta 109 zcmew&ut$)SnMs+Qfq{{MaUy4QI0pj*12YgZ0qH}G3=Av`oDA+h@s2@G@x`eHiA9Me wsqw`bi7BZ?@%c$vsmUe9sA_;xnR)5)If;4crHSdO@g_zF1&PVo8;cn^00$2oM*si- diff --git a/data/shaders/distancefieldfonts/sdf.vert.spv b/data/shaders/distancefieldfonts/sdf.vert.spv index 023de7eb270724be2538dcce9cd49a643f451712..0872996a8fae4889cc9212be02f9dc1f4b261bec 100644 GIT binary patch delta 85 zcmaFCGl!d(nMs+Qfq{{Moq>ZvcOtK;E++#BumEvxVrCwQ4HDr7VqqXw24ZF)WCGHM Z7#TM17iHYUq`|n^gLwzzW&>6WMgW;J3l{(Y delta 286 zcmbQk{ep*=nMs+Qfq@YSIT#Ek@|xCjGk^dK5a%Xl=7HGCKnxP)1Y%(z)&pXFAZ7+a zCLn!?5u~1z!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9Uxuh6X4NxjGFFigdF)zI| zF+DZj#K@o^F*%!obz`A0qb4f@E7+FwocOTRqLS1KPZyvF8`xH$m}g#bNn&1ds;A55 zMn-K$S$ClIAV+~5$qK|EKFEO}KHKJ%OuHF%6@WszKrYa!3?e{m4dsKhfy7{ZkT%B6 Ii7eKP0CnInN&o-= diff --git a/data/shaders/dynamicuniformbuffer/base.frag.spv b/data/shaders/dynamicuniformbuffer/base.frag.spv index 06ab7a2fc2398c7fe17c45bb65069587bc9af78c..f67f201135c138f22f9bfb7bd9b0a8e1c9227e92 100644 GIT binary patch delta 21 ccmdnP@`ag`nMs+Qfq{{MeIjS}#yt&;05Q%4>i_@% delta 93 zcmeyuyoZI8nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv8yMgWJM8`A&) diff --git a/data/shaders/dynamicuniformbuffer/base.vert.spv b/data/shaders/dynamicuniformbuffer/base.vert.spv index 8b1bc18271df6ec8aeec8a20c2c14a1c6f1e6197..840e527713e7558368527787af35cb328f941716 100644 GIT binary patch delta 21 ccmeytw}Fq7nMs+Qfq{{MeIjT2#vKRP05hQlH2?qr delta 93 zcmdnM_k)jV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw2!YygV-9321v diff --git a/data/shaders/gears/gears.frag.spv b/data/shaders/gears/gears.frag.spv index e29207701373c4b1012969e83a2ae44d8c3a2c4f..8d979893813ab6c1f8d34bd8d09393e9398723ce 100644 GIT binary patch delta 65 zcmX@Z*TToi%%sfDz`)4BK9SQ~o11}wK>&z_f!Gv?Ex~+d1{NRsygiJvC5F^9J H+= diff --git a/data/shaders/gears/gears.vert.spv b/data/shaders/gears/gears.vert.spv index aa9968bcb2d5c8d42213e536b0a9269fbfaf3a53..fc950d2f56d0f363e256d1b2b8b2bede4be478bd 100644 GIT binary patch literal 2820 zcmZ9NYjYG;5Qc{&yNQBaxWO+XPe-T+bL5&{M#LLd@FKUgtL;aHoU)Mn%D6IK2J z^%q(GD!*9e^PHL9j5$>2biaM?)3c0^%}!?7o@_Fk%D%~}b0`}F$+Ep!JKc**D@$`* z!zXhWF21A1{%kxMYI7iaA@LLZ-B>I73eQ2WLS1MEdKbC?-GNr1asG{Q|4o2aHo?Cg z-xi4e<@WGiIoMe1!MCvA$NlK$eJW}v9x>Y-lt1L_!=fZ>8!K(BX`_6S>lc{0`gO3t z?BK^D|A}i9(>i*^)9;6y<(9a4_j7N5SHibaPep%JR>JI&S{KS*IjDRlQqM)dg7iCs zBGt57B{c3Fm}%_a`4s)-lvI0XMaLd*3eS zgVlU6%zs8q{fT?jm0Lv`TANoFcV-DM`oopt*Ic{MIXiRy32w<{Nt!>CLyCPLl6GF?zce*c~eN%{;T!^*@Zo%nm}~XPr$yW&LhI5ld{hpFK4F zl=XWCg`e1NKl^L?DeLza6nQZY3t!@5XuAhkA8Q zSzqOd=kCOOwRd-#dUr(GI;}bOU@x*KF!PCd2WAejrmwu1J=&Y`v^&gS?=F}&^2gxX z+#TpR9?nTweFu4}=EbknviqW5`{%i}H`fXNnpaGDnrQBhSd)xpY=4!kK^tQ$JA1LC z$OpJP&>rY~ExT*#^*>be#y0m6ZevI7C*k#t+Le7fvFN1>uf4MR8A!eHPjl;Q{K)?r zy!Ii#0U!2n!E0~-`ujtyPTBa%?t)n4cNd!Rt|B`-{jYJ`t1->zoadn|dv-ni-5vd% z*FEkI#gu)I_aJxO-jv^mv=P_eHx~>4i||eVOUT-U{|E5e zi2Hu-@nuNd6WE9FV$LkEk7~>}^G%%V6-a;W)mxL_qPTPM+q(`q7r#mC)b9o)9BF@S<`L&OVcL<~0($PG5pl>{PDL0wLEPb~*F=WOk6yzq%C z{($<6EPoYWtnz*4OoxF(0*c{LgYh1LQWI6n0(J9es(QBfQMPG^5ME683QCl>opHc1qD$uwr z>y75ZoyF!L?IrzWm^KFwlXlu~7F&>8xJnYM&g-4DV#-R64Q z-%R_%^mmEAK5!PgVvzZ!Ro#TQr)M6|^5I7I#E+Hf=$&*+-K@8q4TeeHN)@m4qlf5r zy4_tJwJ|d+YGHO{Qzo;z>~mz6gstXfJfY6j{X{u8C7!h+nfqi_L@WAj@{C7c#`GxM zL2p<3QB&-PjNiP-Vu8KtN4>EhGJa1*<_Gqw-X#7Gs(BjBN3kGwUz*%vr2wo{-6toNZ?IN@f|xd0^~@ zaRylI3lBz()J8nZr4@Aaj9l75u4+FlE9|D_Lk##M;?UJZM`ceRkWBN^AV8~O7#%zJbL@Z*zp`9GCAvQ9112!p{FKSIRB03XfW)VI9hXPM* z&VEZfvB?d4@|qMm_w>5SN4#A6zb~HHRvR*R4`#J;_rya+&)uWv{7@y8HYJWZA{Q`p5a;};otWs!3z=_GoY#HHEbJd>M`v|ziRVoEfj@F9U?#VN zd_nJnny8UQoaaKAXKd*?-+il@p7PC)<>eqR$cq_yQ^Z^`J69Eh`#LNFzpZMi_h`Vh z`DOSqN!YTe!SJ`m8&1B4zY}n5S%x1Mk3D!C=R}0Zao!C$7|Y`D9U%^Q9Ou0VN4Ku3 z=t)gPZPY=|hEIzpSMnkU!%vFmY|bGjIPYpkR1@Kc4Sgj32O{3gU+OjThazmj_k|oj z5W3SpAI_S9J1ZtXX3d(-j>}T|A2v;%{lSd@ZQYk3-RE8D>v?Z zPJ|ygIWR|HW`9vU7&5c_rRcJV+K{h^umQ)PxdSu*tKwt-Ym%`s|LfisU+$CtDx8}a zfwK%-5D!Mr3|kD?sCK)nCGqnj?9r1G-wSa1a#MR7PWc~P7JpK4H^zW8w1qT2C delta 82 zcmca1v_N=5gF6cYCxg3Bykn44d~s?)Vo_pAYJ71hO}PMU02{FY diff --git a/data/shaders/hdr/bloom.frag.spv b/data/shaders/hdr/bloom.frag.spv index 4a083d21bae63f7514f084ea676a82823356ade7..57d69057395ff8b2f076e5af7fb2a7fb01c309c9 100644 GIT binary patch delta 21 ccmbOuaz&VvnMs+Qfq{{MeIjS^#v>7&052v4y8r+H delta 93 zcmca2JV%6+nMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvW+P5^#28>0XK diff --git a/data/shaders/hdr/bloom.vert.spv b/data/shaders/hdr/bloom.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/hdr/composition.frag.spv b/data/shaders/hdr/composition.frag.spv index 1acc5f18858927611aac56e32543e1a4dc2077d7..39ff5dffed584711b3988b2bb7bf235f73c32435 100644 GIT binary patch delta 21 ccmX@Y`iF&+nMs+Qfq{{MeIjS}#yuQN05U}ch5!Hn delta 93 zcmeyva)gzWnMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqmPCIF2j8*Tsq diff --git a/data/shaders/hdr/composition.vert.spv b/data/shaders/hdr/composition.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/hdr/gbuffer.frag.spv b/data/shaders/hdr/gbuffer.frag.spv index 381f6566c8168ed642777c37897acd9215a260c1..9b9afd9b6124308f3ce5eb91375bfd3458eea17d 100644 GIT binary patch literal 5836 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 literal 6436 zcmZvg37C~-6~{kj=1wYuODb#W0MVuq5^f2yC^6Q^qB2BL(}lS(SB871SwymOj3~;o zTq?CiZGUXfR-;mE4@>KL(iYKn+sq~RsD8iierI@{rxy6uIn&4SBK5NbUWu0et&K?}F=uyEUle)X1PDtOWD!%Tf3^2tzDH3 zKytU{Yp>SMAgta~>C>rR%J-vM+aGLQCoyJ!9i@D~sAHFQ0S%hJN*u73_3tj-grQ{Qmmj@IZ0C&DmbG;q~=A{$4Q0 z3@&B&(+~AhRByenr_j8YF$c>cswKat)!NEBS1wxy_x^a_ZF29+Q8{aH?}vBZre8iC zbBtV{@uhmZAJV4KfuqgwwrR{fncg_ZPf?_)IiK7!vQ37!)0;cy zn+`TtJ7&Dx{ZuplS@hQK`i_BH%PcI*MivHtcFy;&&og&?tk*M_Ti==VuFpK-_YUZf ze0^ZrqTt(edhICR0l#(6o>RlW6MpqoQ%38#41UYQ9i#Er-buA%xf$-ootS$Nb`)OkscSOFUG&~1HFL-U=ze!1U}l+RDN_iA~3cHx!;MDkBs4d zC&F*NekW4CE8))P`#t<}-|@j6|4_jnWw*zJZBOzJF(&u{V9)13%=0-2^IX&ya1Imb zpN{#CYAf#h;b6xs#q^y@e$P(bF}`c2VZLV~$1}jjtl`9cmY#_jqwaXmTJ3S>wl-_9 zCdaqa&%|b6tEj>I^_)VZ%UkHrg&AwJ#?YS!4&8Nz{`^8W))x9PVB^)(JjW(_n&$Go1!p!A3W8xf+ z2m3ybvpfN8U7n@BOF19U{6x$g`aK_?J+;X5VzBS=$a4xf^5}Dn&!>8v;R5gsEcWKq z+{Zsf3wcZeh19GoL*n#S`AL`Qy1KEu0@|?eDA8q zn3sc{Kloa(F&7ng?-gKU)Z>1=5*&H;o7eZZdgOT(I9=zf;l{)|yTQh&$2wmFj&bhYmVGKU}MxHcLf}|^+)b9SYPDc1U6UjUT|7>6>f}rJc*tcHW)E97AB^)SaVF zuNLv=fzvs*!o629$N6Am)MLyxa5~59;Kr#t$1uHG#J?Wwyusf9HYWD(jbQh07G|ve z@LdQFpMGPV;{tkpk@F(3HEl1}{U)&S>XGZsU~^5y^l!(^HA1g1a=itt7JKkku-XnR z;?*MlZQv2iXU21WJEpc1i+Ht&e+PIZ;qL^yo|x|vurcZ}=3U@&!ru)}&*@UQG3t@$ zajQbB564py_a&^}RU*1D2?ac!T(9B;h- zSy=3WzVv6UgW%TRPX8%v1{UAHPZt_p-a`Kj%vf8amd4L!pM{5RJrV!8LO0eH`scyM ztEYLskmzZiFBZC*E%Mv|HjjFm=SzvMFTT592D>)bVa=g`1#GR>WeuT!73|#3W6tWxsIE# z(0>5F8QYCnL+C#QJGb+gGtT2jU~@Unm^hCggHOg{-}iuxRd?Ta(W@Chnf_L6YQa6v zpJ1L%yqA7jXp#RmxH;O2cgfGduDb&>R{!l-yqkUwb`Im>xl~J^%kgmY`#k>=OW#$$ zDl~PQbGe^U-><>OEaqKu5B+bkz1ZEDIos%ehpERq==Wg9smHzj1K8ZtF#Ue-+>bwE zcVhaZ#y^4Yz*g|vn>GI#Q!};&D`BlzGv=C&H73UY1>6|lcpv{2uBO>yjq!8WKhcc2 z4>RAr^lIY!=^wyit^We+5B@ONm>a3;5&B0lW7Pef`Eh#N6I8D6G3?)Y-<0F1`3bbN z<|pB5nk{O!ribAAJ!A9xd#*Xdw{MKk80T@n|ARR`=KU}DK`i##iPVhye|v4LG2RFN Vucif4^Z#(1Up@=IkD!yV{{hOdLka)@ diff --git a/data/shaders/hdr/gbuffer.vert.spv b/data/shaders/hdr/gbuffer.vert.spv index 411811abe4260566908c254fbb4ba7a5853d6b42..2743ab4487ebd1e777138797631c5a2df9376ccd 100644 GIT binary patch literal 3388 zcmZ9Ni&B+U6vsayz|u1Bb|Ws`H7ZlH%tWogLct80u7YsFV{i@~4y2_C+6&MV^e9a) zl}*!3zu))m)$Gn<7JIG#UiZB|=HHM&r5T2>cmv+t*Oh2Jw zEX}VUTvB&_x$gYzUGm=fc`r7O?);=4c%0v%50~iwF&3zJytJ$QjFJ1P>o*EVEV1w# zOYh}ASc~%?f~C+0E4B2G+1rz(zgYM?cY6ulnMZHNbKdIKsP0VF-9h!uq`T#NiDH~V za;PgGKO-vLhh5I3H>GZ#CIZvI2C^=SVDr+4}r|7lKZH-A6B zoxS@8MU?2owa$dzM3%O z`Au7^9Qke`OQHW*YQOy+`cIWUdW7oqyAA83op(`}dlPl}=9@`B!Dcxx=PzmV0K|RM z*P8scjeQ#3b0_Q$yoa^BqW&lHZcgcMtlWXncOg3izdK{ApCyBD^(5?j`i91LHc!Fg zm$7lS&m@eam}FzE!EZoZmW*#7;qxrAam2%C09jm?I(-Jg^f6BO3?YllQus_UZ+B}L zww3`{+nCXF$j)es9<29ySX*&xbeCR$#ihVrL>4noU@s-iy3A|5mtp<2_ujYgI}?xD zjvzZ*cQ|JI8nSrQ=|4&RBG*ym@*ii0y_vAQreg`KYU(TB={T7F+I#P}vX$QO1hToc ziCk|Xi%Wr>L>9|)y`3;~h21*|b6=;JhdYkKGZE{y#?U+?@$9@vym=Z1QjS5}5d}%-wH!64p;V z<~D_#&+Rh0m=wKyf-IKzawTE;+&(RRib8wu^SMo4L>7`g?<-#4}3q>w1KRRxc+xIH{h_phpheG^ndw2 PvY57;oa+Bj(MkAUDjC#k literal 3724 zcmZ9Oi*i&&5QdLH0t$+NT)bftyn~1s5Jez>Wk3T2kl?k}C0WBlvKu!WE{YOF6jW4v z0w2ZlrPQ*l^83!2riM(acmDpTyQjNnW;cr$ZCY9s_wl!^__e6Us$vm(Q7kWd%XxU@ z_f}H(TQSk>$v0WDuD`t|0TsE#x+`n7>8Le-dN~ z9>XKG{U;98W*am0PQBZx&7Q4KG&;5RnRAWt?(DrbEHzt`wW)e*a;`qvs10u4Hd7xz zU-S?u&qLi@+H>7gW2cL9-MpHu(KaDV-R!%UXBteUZqC@320i4s7X8$LV|1do#M;et z+Gf>kQ*H3}V!A!in7YtxTmwW0U5|-bcbnkPlKLC#UU01gjxwYsIGWR8Y zd(u5GN5u2IjOYGqnBCv}H}Lrgvz+=yK0P}*#r)PWTZg>y)a|+4W_0)8fS8Z=k21Ta zzww`7wl??I-o2khiei3W==RUC5i8Hee2n!fvwm{!tv;Bz*n0=ML;Hiw+Up;+d%kk& z_RjN-T(71zb9G&PK5@qT7HsZHb|QIQi(^A+Tp0IUNSeIf8o!ESJ~wZsM#bavuTfuf6Me?~b6mw>A;?C|KSR z+%d3RzSn5ts=cc3spD|^Ywvp89r>vL1bE@yISD5pHt!{y{QKh+ocwR}-S3kzL_hiH z+i7s#xA)QI98t>$V7a`O4-=R7?ISq-wRb)5+sEkcuT9*8Pr&&-P}eTM2i}LM@l&vU z$ZM>l%SSzDzlX7&HbXczK7WDfs0 diff --git a/data/shaders/imgui/scene.frag.spv b/data/shaders/imgui/scene.frag.spv index e7dd50c896281471482afffe26bea513ad9d56df..4870a1892fac5817958d3e1c86ecc86b1b6a96f3 100644 GIT binary patch delta 21 ccmZ3&bBCLgnMs+Qfq{{MeIjT1#uG8D054hu!vFvP delta 93 zcmcb^y@ZF8nMs+Qfq{{MaUy5AI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv{HRsesA8>;{S diff --git a/data/shaders/imgui/scene.vert.spv b/data/shaders/imgui/scene.vert.spv index 27505afce83cbd6663a9bea3beb70c993a42285e..69fc0b0e3cc1541b95f8f27b96868431d7f84dbf 100644 GIT binary patch delta 913 zcmZ9LO-n*S6o%(&H<)_O@-S!KIp@rr8U3DlOUA>Y#fUMEiI}Ll>cp=T$Ho{>g!P3qemdsk zYuZ^V%73i4o-`O&A91bccJ<-zzTLdN>1$rk39UL)EX|9sD4Q|k^-AG)r?McoAW8f6 zS=Kx$zbe>?^~1oQ)R@scs*!S(vU9InaZ@gpioI7i7V=#~cv`FptfoY^Sr_PlIfAVk zIxaaIf*f?4lL>Uzu+f}NY2;9+pYtduD_8)`Ce_WjNok%F9ERe=X4M-9+!7O_qXRL| z3u4i8>N=(|FA7?p)41LJaTERyp0I6{ja~WZfY}q-oU$}>hFjm$938OHoQgE% z_=Dah>6Ml&wM0i1<%iQ@E$dRZkwnF8ano0+aKIlLn0dx$bA(x zqS^aBk&k9KIF-L5>;`A@(EziDe+k~BDUBM$QJ>#plfQ>8crJgq;DzRBfZ2k6@Zguy Oh@lvDnExs&E&c%a;XgV6 literal 2920 zcmZ9MYj;ys5Qa}LsVK@tK&~W3!(_LMGb1CEl3q_A#ILnG)=nFbm=!)%U_^B z$zSCc*W!83IfL8ouIYZ~oy(p*vrncb=N`+l3H}ac+gZ7eXOrkzb~u|U_D1tgbAE5! znP0rPpvRGHs&LfjX!cZrr}@9r?hRBPM-C%ejvyzHS)_$@kSYEq+5aZNG~SJ7Yx(v{ zYcJnzkJ{tBwYS~w z);8ShjeElZ@l(Z}<;ADj@2;#C{$kheXz1;9hp!br_H$?0$*tAg`r4;{ue&`aJFv+2 zEc^cE5IkMCU0k(&2JSzKs}=p{o=wwjrHanE0=Mu26f4m_UYnY@-;;N=*gTUE9H2c*|CBv!G|$zgM}F=+Cg%5p$id^pjxM8T3=^<|=cSy_O5!GtQvf2Yc=r>h@et`*RgGCeC;f z?3r<&*-F>$UFMK1dvM+OH$c`KcRCM_`CH@rm99_3Uk1C3zsat@66fCoM}6N`*!v*l{&PRXy`2r#zKE6|Z>~HwI1eX7cJjT=!=GID4|j?d;)ei1GSspF{p6ueR5bI--v?JKHxA-=z2Q-s<|ro!$l?ywg0KeANFA zIIVvHUCtHtzYCU2>%UNOY5niP8Lz+gwEjhO&(_CUowZ!ldJ%lE)=O~m>vY!Met^iu z3jRZg;L93I|0@Y^o#Fpc#p~+|{wml!@@bxH37_V1Ck9?YEIpMXfaVy{T z3gX?ohcyR(18l9xrZXM2u0V;0|l&1IZE_SWCa?+|-?4{<)n*uO{Q zSNR2XK0j2Pyvw?+G3NIp*!=oAKYu6XV&3<`a*@9c_Ir!`n_xM`75V?D-p3Z)eMCR= jx7g((Uk*<5{e&*3xFX;0)$eu}P9Jl1*wz2V>oW2X2{*KA diff --git a/data/shaders/imgui/ui.frag.spv b/data/shaders/imgui/ui.frag.spv index d992a443549e67aa93df7c1bc13de840b590c807..147c5d2fbcb029ff1d3bcbe365ad07fec025f66a 100644 GIT binary patch delta 18 ZcmbQiI)jyynMs+Qfq{{MeIsW-695~J0>%IU delta 18 ZcmbQiI)jyynMs+Qfq{{MaU*9x695}=0>A(O diff --git a/data/shaders/imgui/ui.vert.spv b/data/shaders/imgui/ui.vert.spv index e379f3faaa714912ada425adc00866152f02f916..f359961ffb7266e16dac9c14878ecea2f1ddfcd9 100644 GIT binary patch delta 18 ZcmaFD`Gk{`nMs+Qfq{{MeIw^>762x}1GE4D delta 18 ZcmaFD`Gk{`nMs+Qfq{{MaUV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvKwb^v|L8=(LI diff --git a/data/shaders/indirectdraw/ground.vert.spv b/data/shaders/indirectdraw/ground.vert.spv index 4ed470bbef42a7448819e7b63517feb5135e1166..bf538f4e17c72db493a331d7d2590b2688640404 100644 GIT binary patch delta 21 ccmaDOv_y!LnMs+Qfq{{MeIjT5#tU;e05a1BGXMYp delta 93 zcmZ1?^hSu2nMs+Qfq{{MaUy5EI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv+P8~}`L92)=t diff --git a/data/shaders/indirectdraw/indirectdraw.frag.spv b/data/shaders/indirectdraw/indirectdraw.frag.spv index 4640e00e75db283a9af5be6d964a0d9bcc234c32..e99d87c204f875b846157c3f92b4482126581260 100644 GIT binary patch delta 21 ccmcb^JB62%nMs+Qfq{{MeIjS|#xnwJ04`eua{vGU delta 93 zcmbQjdxw{knMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqyGHUN7B8(RPX diff --git a/data/shaders/indirectdraw/indirectdraw.vert.spv b/data/shaders/indirectdraw/indirectdraw.vert.spv index 903a73e166ebb85bd8b0e7b4406ff6a370d3da08..315a2f6537c4cb08e5b7cb6c9a8ff549eb95c5e0 100644 GIT binary patch literal 4832 zcmZ9OXLnUq5QdMWfPxf}A}WR=Dj=c)f{2u;0coK{tPsK#E++S4a;X+TP^?H1?1)_v zY_WWG`K$cmT0YOYd+@BBtYOdl&g_}lGy9xN!=NdHv+SyDa5g0SGpj$NvOzFeHZ*I_ z*S1v~R?X_GZJ#w~?rc4VXAQZdJ|nWxx!%aXJ)Px>;A&(jaxF3vxgME{^df!85#$(h z9660#M*5Kk{syuBP2i@ik-z_AHo+LTx~JA!?XDUs_c2eoQm5QwPJA|XB)j>`l^o(f zIIpE#>8o{Cx=I^M`&U%9m-gd=ts$GjYJKLi-tb#rt>yOVa9z2*A-kKkhn?uvg_uJ4pZLyl+w0 zhOW-;QqDK!y$oJ&eNSTB(Y>X;)Z0<&t<}%joOn#Rt=d;3?c<(?@b$h9MZ@IJ&-Mwd7_iU@8H)a>m_tneK@kMa=72K51o}R2K z@7P)ED0Sh}l-~uo4kAirZNzc*6A|-?ox9kZD0c2*?~mBI7qNFx%w^B*&R5)&u(J{S zxZi$@BcF39+P%NxW<-DQve-MjoT&ER$2xu5s8r7Smg8lAeax?aVDF$$k+Wvc6Z@>G zxKHf9B}nX(i+$!ce)PuqOh$aHT|6mAb?o~XXVKoDu)Q8l6yr=HrdWL}ntf!cH zv1)U_=bM#u@6veiU956q{b#cpU*38=$32Ko)IYZlbN~C$^*2WNFF-eE;Kk_nb0(hp zEkTT-*bCS2U54&?!?!iri~eD2Pqv5=aqPinq?mInxag;E%)b}ioYBudbnCZ2ds#i7 zcKdUfRh#F~Uwj0S6Wi}&1?+u0p72DXoJ4o8u}-lXSI)iS(}|l1K7;NY6#d_0^-S{m zi_a!b`?;it|9PaG_ACN4&@K^Nk63AZ2yV@gT`(F93MqkAJ3D4sTVIAHXAASCT z@w?&P$*fZl`xbb50ei>%jSIVYPinXvbL4B|Um#ct2WCT<-ktiMO~JPfpKOgKH}U7Hjcg2W*p}&AGz;EmkT@x-CXT-%KJGF(MR5Us91xu zo{xB6{0`baO|pMd!cs}`vvmAY3oE32L5$93#n2R>! z*a!LO%_?-cz^l=Vb6Eq{$3AH*&Sfpw_crDt)<1f&F4?1(;&vo*tw%4;Z39>?>>JUo zE#|ffT_0=ER;;B1Y%MVtvHnrZW62(K5f|t3IM{w}Mk43=1`N;Dnx_M%TU!lt>J~6}S>DO@j_yqS2x?HjM-zKiu`|se~ufKMCALsiX-P-iA z*B4mj)GxALLZap$(dDA%pU~wLpQt(fe}*fb@fWb1;uHSQDGzyyheS0ahkyG5`Po literal 5036 zcmZ9O_mfmb6osE`z=#2Jz(p`CqGC=2bx{{tK-TOy?2gOm?#wzn1S1#_a}Fq|m@q4f z2}70TU*#`W`F(HtQeFGDE`86rr*C)P+wTos)84#SSb=3*^u65EPBkG+I# z!}ef%u`d3mG5$m1ZnE?bR2HpVT$!v*R9n?{tunc`I#O#@nrrT_4Yx^@YY5dFqm{90 zV{~10v{qSg!TgEp@B>8;s(f!fFz&CpuDzr=)^tmy#{JeC9m+ZG9nI>Y6!#qUMhVeR zFV9qOOt!0y;o2>=jW;w#Y8#Od>ni3jdQR8!+@V|9Y?tw~;D*b1S8+b$I5VAhlm0^; zzoP%Jes?j3-)gp(Rok7MZkoN_+-!|kjk%8N)f@Y$GT#=siRNUP!j z?*s3jeEBO9wx1C{5I^>7Tx{LsLT`W7n|}tQ`CZ%mhcc>_S1-0+az}xWVC+j+{mkUc zs~3Ae)SnGD_wiU!Y`(_%C*bu7d5nus#MGPbBu4kvsX=#H+o(aD$NLufoqsCkvb5N>V zh?zsP7LK7^jPH3vyClVPeZ&S+EOJC1Yj7KuuX!&x*Qt&ExA0vv>goIG{;kh?M$c#5 z`aHvE%yXz0Z%v%odi(yWiG04l;#p+zJ$0_R-eEMaoLaHpNx4~I-z)o|seg~rGs&wL zZ%>@@9mx;@2KIAAZsD-XpPM6d*!?8{J_4e;*0r0xDW4)kKDg7 zemB&f!Z-)BZh_Cruy@SgxQL7Woy)PmbvgDoEwFcP%M`q83f`UYRqV%k2V=hXSF>Bc z4`O387!St|OW6B<6y`hIByP=)PTUGkC_V;rj!$sM;>+3RK~%1J9H!QoIb7Rsjr<~V z`EL6yl=Gc;KjuFflYc6$*N1Okc)kLQz*JWKJX=D7h*KJwg%AAK=q z9_t_k-k0TI-`nVmSbfxDMT$o)#e-O^wGuz?+bXbJ#BafO zZ_&5a_-fpPv3xH>VD}Pz5vz~A+?wLi7jfQ~+rifJHZ0b^17AMsc_)7K#aQ%3KKgPO z{?t5o!^uaUd+?(##-cCsvEM3w1&i8>@5N$oYw+{F4TG&^)M^CZ`lvIO*Qy3Kcl1T9 zK62lOZ?1TsM)Bn$z7{|4OC4-}b;k0w?gzV8^hK;b&iO!!M_TY&^vSH^BD! zb-oS8o0uB;&`jX_4u5X-L8nd>>t$QnR)_orSv)EQ_Ise;G|6Jna zeLREvRo~0_0`@%ia?1ZAzH{WGmoMYLggucoui&ebkKgK7@#TGjdktT%Q@76V{OgJ9 z)U5M6^#+{t)f+z^b8YXAnCrVgvAS6MbA0!gul)sBKGyjX z-*uvgU*XGXKGDOd^Ve`{e1iK1UoNlxw~5PZ{~et3)f>0=alY^I-J2TEvWrnpe>dZg zSnT;He7V^3&-ikhPwYALzrf{Z{1q&x`Gns8uX&Gu!_2A9_4gz$^8F6Z^Zfyq(|jVI T-(U0niK#Ky-h}@{bt(2g?Zu5O diff --git a/data/shaders/indirectdraw/skysphere.frag.spv b/data/shaders/indirectdraw/skysphere.frag.spv index 676cc0db635cb8b13978b66fa3154615fcfc82e5..41fb6739280c9981c2a56967c1e1f74b7900dfd0 100644 GIT binary patch delta 21 ccmcb^K82l=nMs+Qfq{{MeIjS}#ytwm04)>*Q~&?~ delta 93 zcmbQjeutftnMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqmGW&m;B8$192 diff --git a/data/shaders/indirectdraw/skysphere.vert.spv b/data/shaders/indirectdraw/skysphere.vert.spv index 0def32742cb920d6973ba6e9be9eb13d3618a1c3..1e833c1166ede7d07d2d1c5a75e60cafd8e8897f 100644 GIT binary patch delta 745 zcmZ9K%}PR16ovOuuQm}82SF4BLjPv}X{LEAD{GL_xIvH5q^a}>Hz&PCM1yEp<6fe1 z^aw%gJKhV@zAVn#YyTbgxsS!qLOz`;=ggetY{D+0{8b?|v$VdH&JSnN>zfOQx9;18 zFW0FjS6P#e&05CVI-M{nG-986G~(T1J@YdNe0)*boPb?w*u2gq0Ucn}F}H7{nq_fn z(36@Kadd$Fuc=6*hCaTgEwU;Q09aDgv#c%1uL@j-=H&LJXLYU%)!}+j3N}2u&z6Es z&u*k`dG;)A+p|d8j%Q!ec0GHSR`aZwD-G%}fy;rO_RjM51ZFXX{wz6(HN=_347!iU z_T@8&3G^P1HDezQ6wL;{>5QC~z)+gggyaWpo!Eg;7RYJp6}jM{5DLjF9K{+smMoN) zV{yj~18IoQNmlB#v+6R6Y$l0&(5kqWG6M6X$~Dgwnb?&xI*rT4?Fl#V7Aq H*QyDB)j2ne literal 2200 zcmZ9M+foxj5QYa54vK<^96Z4So>4>uM3JM1phgq4;5N0uR$PUIN`iW6l~16LDCbm#~SDbFP_NV9OXQ=3P zxulSqK6fJV^ZI`n#x(+v9_a;XL7LNFyX;Rb$SYeYR@UEcRGQII*a%xurTISGj~bQw z?uTfv)%>?cskm0H9E7#%aafHibF(u?;oe8rp-%pu#Ozx?Zf)<#62l>`C86R@H=?+D zP$@@^ov6`@z9oo}|@iASr zJCk7PI=K4lh*`HLwRK>&j=hZ=Tm$7Mq=?1iX_&;^z3~|kV>pki2d@WzNM5IGARSge z_8}%0DDIY}7JMm-xnnT$CuQ5DmM3OTV1vq^k`1KDR2H93!(@H0d}`T~Jhorz+}BmB zKdXou_zlZa!@C<53+@37F6U+81qN4Q-ai;zF3JW{deNKsk`x(Hd|8%WY47xYz)<>+ z$ubw_Nq^!%YO@;8eCnD;=KcfTf_vvCeM^Zk_dBKaoPrSOFtJp9~-VmPoLz5U#i zECxe)>-6N!K9#OX=}ix6f9Q>qdnV;gQ^Wg(!={vPwxnND?)gQAfg_xe^K50`)=T-+ zAcnn?50=g&{RWE}##%e?Yx%6Fo;Na05f-&;wxEamr+Z<248n7ZHEX;JzI Du3UT4 diff --git a/data/shaders/instancing/instancing.frag.spv b/data/shaders/instancing/instancing.frag.spv index 7857daf840031ef673ed52770fe7d1c4dc1f0acb..243925488c1802057bce68c5ffbaac28e22fb1b4 100644 GIT binary patch delta 170 zcmca3G)0J$nMs+Qfq{{MeIjS|#xpyZc&!*9K!kyb!FuvU=5kJu2pCTmWZBMWyZI!G zJyW1LP*4_#Z5db?_<^(q5Gw-l6b4oXHXv;Y#2_^w@m)YMYand{#2|5yVc!{;8SH^H k2>b$?VKX_BJ)Y5O@=o@AM%&4n9MVA2l|vawW^#N609L{o{{R30 delta 242 zcmbOtbVrDjnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy za!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvL&OuW_%5Fo<9#9%YolewG|Bm%~h zPcm<3G~e9FV$T$40Th%4Vq2iW{6N|gh!uf&3Ii(x8<4gFVvrh;_%5KB4Uo14Vvsn< suT%_i|dnh18H5d{m2Km#jvbHCLEcArl@GI2& zj;x#wA$*254yux)#cz+SpNsP~~Iv*s<}Q2lpQs-@R{dskNJ@ z^7(9y#a2NEJ3?0(>bxt?+s%4)Iv+I5kku@_V|32}*uuP*(H-)RdAo6Z$+@i6+_ZG# zvZ7js&aiwDv|S`|s&EO^MRN;FkJ6&$FM~PiDd$SmUDFolTtzd-I%Q6Qa}8V&EhW`L zcNk)R9c;$p#%|?Y>Nns7ERS(F@y)e4*G|)@aks!4uAA%OZiDx>p-zy(9Wc;^VXo^! z)J9mJ#=qN`SkYhH(}PszKK_}G`2+m3FcGUh#5YFWd+TO=1nOGS9^+uO?b*{$#AbfMyNjtncq|VGn;& f!SDE;1%EJC6D<`i;+OU(nlTphAB^)qL~Vw@2Bx7= delta 1520 zcmY+Exlfc)6vf{+0}Mn%V`6C(6FZF<3XPFujE0yH1q&;aFP}IWP-Jiz8k>pnFF*=A zODh{gL1CwbxZu98xBzarFSy`%elzcy=bN0o^Ul5Ry!)1K=36J)n$xM38RsJX8eKXX zX)eZhopV2hijdYXrT$FhT%Buj9i4G@=jM1QH<%QYQZ63qP4?!BabeHCTu*7}{~U$- z2J&%#GLRom^0~Ne-P*yVXaA{V2U8nZqi8THo$HpfON+Vtz<6kDdU$slk;oW)rPQzo>jzbRnG zL~=IiaM5oGhlIsG@3uIFwFtzH>O#r8Bj7=txfFNLxiya48&ML%eSt&;T)XbFmQ0?AIW|JkHC?a%lLk~v zWfWl(K8v$B3t?*S?~6EQ%p-^Mqbi?n`q2lnoM zXv_j6a%ucWq1g-jC5~nb{1)e8ZGi=GG(h8IIE5qr1^yAogFO6q^OuBZhRg^JBODB# VVp#THPD(LyFsn#syr2o|g}+8@)H478 diff --git a/data/shaders/instancing/planet.frag.spv b/data/shaders/instancing/planet.frag.spv index bdbfc6e802030e120c133629314b3a581ef7d092..f6db777e758f1b4b5d153fcdfa7fbab1b65683d7 100644 GIT binary patch delta 21 ccmZ1@_(Xt{nMs+Qfq{{MeIjS|#xoDt0WyLGYXATM delta 93 zcmaDNutt!RnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvLi>;Q`)98&-Q diff --git a/data/shaders/instancing/planet.vert.spv b/data/shaders/instancing/planet.vert.spv index cb1fc2d86b39aaeff53962717dd8e579d3be3ad7..da6a9d77c4a543840eba533734ed05dbe427b100 100644 GIT binary patch delta 941 zcmZ9KNlF7z5QeKe=|qGqBuGF|40;9!M8$c|;5<+52+@GU!c`-lK(cY`5hNS8dI3-2 zF$DiF_Cv9npI7z2`s-D_*H3M)xlF?EN}G9>wkA7$%!IjFGustHA)(LL`tI4w$DP;D z-uY#rdUbJ7k!yh^t)R71s$T!ZK|@=;y_r8hJ-b;w4wVyFSikopFOR%K@PsKzIfghH z$6-C6-11uoL^O*cozzan3$^D|HnXmXeqc6gZ>ekxB@zOfCaq!ZGu0a`$Sc(I>2^N~ zET>>h7!k0d5;d}o3-AErD2kWWFq#Pg4ZPD##yor2f6bIQG}LKmxTa}=4S+dO$x=3| zct)TZijzC2S!i%h;0_+u5b?Y~F8q+D9*(&Y?RU#B)}GVZsDvlDG0O7cFgM1ce0YGl zj+|ym92$71S(XnEu>YDBaneM;vx`_2*Z`OlxzX3e(G11OWt0uAn?jesgL56c$Cd!^ z8rqIIchmui ha-b`CB>!*0W5sX)a|NUL!B51IL$OdR@t3mtgm0nlOl|-G literal 3352 zcmZ9NeRC8=5XP4z7f=*MgrH))cq(czMhu7|kQd;ho+KgWeD~N~mdldO?s>OS%YUTG z@&o86viwy3W0lWucKR4Hsb;#L?s>YWd-fO~YaETDBl9nTz_NQ{}IuI zPBmMdrMt_WVbYHWahY_6yYWsk=oH%zl5RPCJVvfG?{%^`?;XUwq_c2wz8`n@qMDe( zT53Y5r#L8AimVt&burYJ<`u*lYE{fu+xw|I&7G=57y{xmI4BE+{On#9mw8GKx z6~nYli(KeY7f*j2p62Cd`fEa*`M9@yD_PpVnGVZ1?2&b^prBKfFv6)}zt~B#pVH)K=@w7^EbZ-b!Y-m5&E~HPmd8K*fB;RHE z`U<6=%u&6%Qw;Xw%$=>dxu*FDavWRoWh4HYo4d}nNZU@jj*E97tgY&RqNZ{)uW1Rj zV>2sk`hv}@u(<;^vod>CtjvnVIhJAYfw3C~2N>Ljp@Z>`n)1L$+^Ucn?W~%Fc(WT0 zeH_z=6+P?Xs&nKG&tY?JQDR(RkIq&6kN?FM}BMTe-jI>GZb;*>@Q#&^Py6j_K2fylV=4<{ZrIXwI z*z_I@zNfXrM=tnIXy+_AeAv7P_6rhnoRj^ccH+UNrSX1@10TX&&S|G^{M-ebZyby~^t~>D zmps_7NLXiO*R{h-UDN(8f+67K;B8bht8!pBJcj?Zk^U&hd12(FCg#B#!nS_BBRz^9 z-r)TE(x}(+U6Rf$v2EVGIbx`JSv!7g<6Du=vV6Qr^1=UwcH$B10Y9YN3IBbshxvHJ z@LPU3!B{hhGAcm&Hj{x_jz5XdB@oJcsI{Ucx!+7 zcXY;MyeHy$r(jF+)A!dU4GA-aqptl83An|)DV><}5{r3DI{07WscU~*!Z~oO^MZ8d zwxJl_;+zDGW!SsY!HxvjyvOL%x^7Hg-;;2jc>K)&Px0crC?P*F)XaNWknoPV7x%^{ z&hGSq^uu?$A`IN>|4@2Z|3|XHSXTd4>0n{~AA2mU|C%t)6OTWv|GI2)6GN@cAIxf9 zlzzC@C1Kzj>MXszDFL%(_$>j3S2b4gw*#CyExze-Vp)c-N{0tL{Q5_}u`rS+u1ep2e5K!0nD-Ne8oK_}2mq5AXg>fOB_?|JLKgvJC%DIy~SZ z&-Vcy^8Da&FqZLjq{9Oq^4tq>eAe4oI(Oq9)NJ^+bZVt8YB0Pjo!sQPC$U-VNQaAa z#L(OO+Itdun@E_?l=fW-_?rF~XFjRNz**EyjW)jr(%~nL`SIHcX7kRZgBkz6biOy^ z&!vMQEaU&(zmGx~9K^xDryb1rev}^a4P=8MEaUsl|CSGh5d#R delta 93 zcmcb?zd(SKnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvK=b^w608?68U diff --git a/data/shaders/mesh/mesh.vert.spv b/data/shaders/mesh/mesh.vert.spv index d6215eb52551e53c836505862df1c915a76646cd..82758e686cfd5a35ead56c59b5827cba399c672f 100644 GIT binary patch delta 913 zcmZXT%Su8~7=`!oWGdkxq==vr!a+0(qM$VGrk0gv_p}QU6$lQp@fkF3AWnM;aoVUC z=oxyB2wI<=jZ*(%xz}F%zn*=39eW#zx`FACF^&nDu(@tV?_wv$n5y9F321$HO#5Tr zN#w+9#rmTb6V!uW{i#uSxVvv0-QIMyYG)=;c7{2c6b6K>eyg1q_shx0MYEDruZvmj z$Hn&rDsf)+`KZ<kW9JG#9$)e1r6>gVOhZT6iAsB0UcnDK&g`2 zB_=HpgKlFo;%OgR{>7|HBZfTPn3~9%zyZK)p`sZyN$uAKnjty9NzF!s8^Vy#R731H z1$@y{nmXcZ8J)+)^R0Fy=54_QJI1y+8fM2Rh@%6{c4T9Aq!EK|V|K;S0rod$Pnu%9 z-s}>J0tW!IL3Z?#G@2nfzKp^(9|%(d*U#(VJ`M$R+t87(p<}kYrhAqP^K5m6b(gXqKsfDO8hy#`NAez-_oV%&>-G)qlBGpP)Wc zpQ?XatKaY5yX}UDwLSZJ&U5zJXYVuD(UIvVlH>?~N0VMsj1$QSI7yBrY}YM$ZGF^287vpmEE{xR%n>^Sxu_B{3ib{e+^4nuhZ(bd!2)JCvDALoZV}0K1gar zs^(IIF`xdy@J@fQ+wS7anP1j>MCF|MqPyAe_6N9dV|o5rub{-<13&t!3b4&a{>e<2shuDW`rJ zeblIy@&>9ku$c~?}ywe@QciK%vcvn{1U$74ESYcV->NB-pK{;8S&Qap=XHgVcf4?`tFG{ zrtv*9>SIqM2k-J0mLv~v82>#y^Nl;bk8f|p=6J2dYK-sx>zKp+cbL^{aefOw^1EO9 z#xo!L@0&7S;Nm-*B$s*Z?z0{aHGjkS8&GR*eiJ-P?Ad-7#Mi*iPhq~7>+JSjiDS+G z1$-;6`G&-<+51zNeRs|GAzt9*I`b4}&F!6fYkdxr56x@%YNoN!ypAvbCvn{K2IfBb z$mvb|^Vk|1Yx_1P=LqfszTA-t_fE-KuT^etec#30uikb0{0DJeo54I^jXB%*S3)HRkF& zkc(We;vdfS6FB)bDr;?TU~(~npN9y($g$8bRCx0Y{bI?hbp(GC-#GHsIGy4s)3l9P8>8*_~QZQ&bVo&ED0Di{6!8DB2q zckunaMf`1iIn5FAe=pxh24@U)#!s2$BHjc1YP>F3PIE-O-^y?LE}R-;?J$e~L3IWD E7cD2k9{>OV diff --git a/data/shaders/multithreading/phong.frag.spv b/data/shaders/multithreading/phong.frag.spv index 7ed7ba298953bb2ed3ecca9db5558a73f55868fb..31922bcbb6d85d13d726cc6fdc64d37189f607ba 100644 GIT binary patch delta 21 ccmbQjbB3FfnMs+Qfq{{MeIjT1#uGlQ04%x$lK=n! delta 93 zcmX@ZJ%xvpnMs+Qfq{{MaUy5AI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QrZ&RseJ98+!l% diff --git a/data/shaders/multithreading/phong.vert.spv b/data/shaders/multithreading/phong.vert.spv index 34453470ae56a4bdd482956cdd865b51b9e07701..84ca10a3ca3eefc951b83448b3a193a542a414a9 100644 GIT binary patch delta 561 zcmZ9KJx;?w5QS%LoCHvcC<^Xq5E4iy$&~Wge98A0z5)URCW1@*cqX)T=fT$p%mIAdD5D1iW4_@^^_yRw{ z@CSZ{7e9r>_ewXZyLs%)o9Ua~8QwR4(kVT%vm&BlC**aSGHNXmaR41Vg7aGwiAqv( zdE=sVX^gF*IWk?#7`M%qH8KW`j@5L>|8o#>`nJ(C`}V}NE#v6$U}!eGUtU$qG@#il z4)BFY44d@^6F2YJZMSSSea@LLw6wO)&^8bSa`<)T8T~wxHR0mUKK3N;pH28%A)F#T z0iO~&pnPZc89RGpm!uNxzzz#`;gch{l%N+}s0WTY)Z%}h{sLJiz#r9M BQ;7fo diff --git a/data/shaders/multithreading/starsphere.frag.spv b/data/shaders/multithreading/starsphere.frag.spv index 3225917ce6455110a415fcb2af0bb8dca275d911..5cff28cf83709a4e66774f97626c7a7f43fd5d1e 100644 GIT binary patch delta 21 ccmX>h)*!~o%%sfDz`)4BK9MtfCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-4g7XWVt8>IjM diff --git a/data/shaders/multithreading/starsphere.vert.spv b/data/shaders/multithreading/starsphere.vert.spv index 995bb7e035e4baaf86e72d093fc07ac8e79b3c2a..1a98a97a6bfad1289837d42a08c7c488fd095870 100644 GIT binary patch delta 21 ccmaFBIfIjvnMs+Qfq{{MeIjS_#w|K504>=BT>t<8 delta 93 zcmbQi`GAv?nMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qq^o765a?8$|#B diff --git a/data/shaders/multiview/multiview.frag.spv b/data/shaders/multiview/multiview.frag.spv index 7a45deb019afc7103b24fd5102dd4160ae34ab5f..1eae642c5f92b14ea02a9d31a97ada9064663ffc 100644 GIT binary patch delta 18 ZcmaFE^M;3$nMs+Qfq{{MeIsWw8vrLm15^M2 delta 18 ZcmaFE^M;3$nMs+Qfq{{MZ6jwg8vrLh15*G1 diff --git a/data/shaders/multiview/multiview.vert.spv b/data/shaders/multiview/multiview.vert.spv index 27dc151625852a717d6d980fb718ff2ae8ea9abe..69fc64cd2796daec2d796b2e56d40f9eaec9fe9b 100644 GIT binary patch literal 2644 zcmY+EU2_yw5QY!g?1G?1L_SoE8-hlSMwAax1QHN8z)BVZOVo=Lk}Vu-vqNn*;+<6a z3;av|DsQavd1j`=a8mD{?zj7N_vt>9#?<`&l=h|l=|K89mFsYtf=S8!;o+1HrdC?- z^*3*?-rL;X9Zs^}v%xd$hv4<=bl1B}JCm)YbLY<(;q}yTD{M1pu4%CSC>tri0uF)K zz&l_8d zdGWcEkGCHU3!g@Mi~Yg1H8Qmd88tl}=f4dePqLh`OK(gIfDp^k?~a zxV4vOI(-8-+|!#yAGu%Ga{7bEoN5+*g)_etOe^&`M@_xKxIY+A%9^~7yh~fYlNAl{ zKF-C}p)UJ83yS%p+hcY6pxqv;yVT!gZ-M1XKT^|IvD<%F6Rh$Z`h3B@%<*8;8--ta z&Km0H)IIkcL@c=%=gRojTExfL;eO_f`kmb=;Ie-8xk4*-->rAv;QP?-8?N`mxz+FQ z+g5J?{e9=^=Cj7=xiMYVBd7fczwUEzo>xAGWIx;BIPtujy7o5ufl8LYRO!wv><5v# zc5zO-y1C`T-x=y}e7|Dj`@NmucZOX~{V2cAqYYe(l}>AlT2G=of6vINJO9vUt9k1q zZ(Q$il-;{J7i&^?4szx^&fW&rY)dsAn?I+odWgXt>eRlihouelU z$l?D&#xN)Yb4`|sP780IkjJ{VRjl{WpHf!~9+yHrx%v*e)C8ZX*BbD&*;t?0dXi8H5= zjk6ELnR#S+;nG$=a~j<*f9>AKH!g1t`m6%EsOcuMcaAr6 z3t3LM%xR9ls<&_(*%WR%igPGUfTZMo?@&tn(5^0bd$$&D z_cnKiJpI}Iggm0jI!VQkH&+HtOK{+&1|DTEPD{Rxef=9e;qGp+rF)n z|55IphZ%e$uk-P+*QIkew>J8J6gKs|_QBR}D*3xJD4*cQ`s~YKt8i-WUn4)wM#GKW zIFqRbHr$o#c^|2-V>;dbBVN_>zJeKF2&9qj@s6C9`=f4uG%j+o9&wMlYX?Sp!Itn5*Kox1_em-69?ynx>Rd+N{vzah`&=!+N&n_kQ9ig)Hv zeW&cZXHfVOd;YHQZ?3t2lx^xWX5{beW+0FGD^KTAA-lKMyvFyT-W{&?!?{)Kcej;m zkoNAmvhmC@dah58`G~1M%&+$}nD6C}!r9LzbPRvirmVh+ytm}VFP5@13;jNL%Ff@Z zS2ng-*gHe*^?!g{|9)@B`8~)jrhJ57=h1{br%IXD}hor^gsI|ngi9^-C8=4?#m&N%!>AyKROON=!AbwN&vaU0bd57%Zp^)d{Tcvynd+}Ew z_vtd;+&g7;&f;yzIkf1oGk6DbuFg)KcFx4_L){8?&SIv-xbhSDEK+=H_B!x)E4cLq z{$7b|>k0gQc>Rc1{d`cttA0K#aWPN$`3OF~?W&)TE4Xi#smflRf@UD=Fz3KOfj3w4 zGKauFg*Ucw^eOJ{&O!R}oi;HG|5J8P|7N1b`yA3%-1+#Oi-r9;c=vV%d;5MK67vN1 zCA?TsUtxEl#ERPXZ$`^sd;8@4CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdtzIi-Ry5-(GOIq51IcV{Y($~V5Q`<+Drk1Li?GOjd=b*})#21-fX3qCV z>BJkjBhO?u-~cpwl%rWY1o=Y40TqmCNjXhWj{H0)L^m^-{^cCuDMxjtIU~d|XhCS? zABt?=>cl6YW>j2z>zqgpp28xGX-M%IXs`SRcj0GV$hvOe64pRBqZ&FywarTl`3X8` zdF^E42h}cWcV_hpEw7t=`$4UT(tf%6pnf5FdGQ!Mn|)0zFHXXRVEqOqN16I7DE{T} Gd+-OA_%FZ! delta 841 zcmY*Y%TB^T6rEB)h+*M-XG~nWF~o(5f)r6iQ64H)Sv0jY1vNmRth?X~*!dfVKkzU7 z3O8;|JV$4e@ivFK_uSJnGhBFG`C84GvF!yR3_K~(o@KoDl@P)POgu5H?}iX@krw5u zV>OG;*dMwhH}sux*X{TtXYlysd*S%M2CZH{a9-SgFmVIl*~{(@UGMpAY8h+vA56k( zFX)CX-xCQu_WZ-JjU~1=fjCgcr#-jKPouJfGzlsXFb+_suu^UU>~CPL0X*>*>blIA zu`0bi?9Y2LgNrn(E!U$3V`BqbD?-ki_@% delta 93 zcmeyuyoZI8nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv8yMgWJM8`A&) diff --git a/data/shaders/occlusionquery/occluder.vert.spv b/data/shaders/occlusionquery/occluder.vert.spv index 5606e185868f415c417adecce7113f983e464b47..8cc6fc00511e323f18eac2f5c5cfbfd0541385e5 100644 GIT binary patch delta 21 ccmaFCwSbG0nMs+Qfq{{MeIjS}#yx9T05E?9{{R30 delta 93 zcmZ3$^@59&nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvA1EC7AD8|MH3 diff --git a/data/shaders/occlusionquery/simple.frag.spv b/data/shaders/occlusionquery/simple.frag.spv index d9bf4c157e135db181e715ee9e733c3923cecfc4..347cb130ee37c20d1e91dd1007672424daaad520 100644 GIT binary patch delta 21 ccmeysyn>mNnMs+Qfq{{MeIjS}#yuvC058G>h5!Hn delta 93 zcmZ3%{DGO1nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqmUMgV<_8*Tsq diff --git a/data/shaders/occlusionquery/simple.vert.spv b/data/shaders/occlusionquery/simple.vert.spv index 719aa269560082ffba45219037364df3088d1706..81f2dc13c459b1948fb5f798db975d533473fd38 100644 GIT binary patch delta 21 ccmaFBIfIjvnMs+Qfq{{MeIjS_#w|K504>=BT>t<8 delta 93 zcmbQi`GAv?nMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qq^o765a?8$|#B diff --git a/data/shaders/parallaxmapping/parallax.frag.spv b/data/shaders/parallaxmapping/parallax.frag.spv index 84624bfe978f7d905d4a9d1ec2b56c23b99a0b6d..2bfa7b1f620362c4926de6a7a92690c5ad95bace 100644 GIT binary patch delta 18 ZcmX@%c*2pBnMs+Qfq{{MeIw_71pq1S1MC0* delta 18 ZcmX@%c*2pBnMs+Qfq{{Mc_Zh31pq181Lyz% diff --git a/data/shaders/parallaxmapping/parallax.vert.spv b/data/shaders/parallaxmapping/parallax.vert.spv index 9c99a660f4c17c43b8249c248b63aabcd5947ff0..270ad84628ce1a4399b42f1f88e1f0c2e488a2a9 100644 GIT binary patch literal 4052 zcmZ9N>2?%V6h=!z5)?!c8B~OXID?1^h$0XI5|o$(32_#h&^CohH+DLJI1q6_oZ}O@ zd;%ZGKd$B8RriFlZ`SGio$rkI)U8U-ilP22yDRI@R%J_Bxz=SXV6tp=)>rJKW2eV< z&37*B+Ov1J9&59n!cm|5_;am9=4yFUd@nMH>_iSA2a%J=yGR4Mf!soR_*=pL7m0ew zP|eXx?bX;Cvu7vk?df{EQ@@4^Tk>LUt@*r@x0}NIyqVGzTu(N^K9cM{zq~n;hlhQA z2sfVWKHI!G-fGX)JZ6z!Ff}p`?k}GEoj%8wPp-}TaK|>y^vW}wAkur_iaj{zEax7a zbCz?q!HMOZ>nIknekWjjrmkK@|ImjD_WxWz-2H`L8E4&UoVsztNaT|1jBd*W~OSRC&TPwQntGadc_uZ}9y*uij zN&Cs9hrjnjdpYNo#k;N^{rKKj<9+5~Uyql5gH$)4cq6EfeE``+R_CE^{tf)DVjnG$T&?{`@^L2Hz@E`wjUQmwSKj>UgNU5@ z^c_O7Z1J%EPlJq&{&pli;?=zu`dIH}c5_6(uOyqi_0+vL(a)=3YlmIkdn9N5!|c|! zp0hlfu<_CVNwEH*d(WzRBkAV*1Z+O@#Cb1+UB-K!8;JR1zF#NZ_?uwQW{&W`mF(ev z8{KEUkGEJ~vCEwQ!1!((>)D2p$ffT0w5t344Bg)SUaB7@7SRNmp0!+^_a~OaQAFR3VYd$Ge3sNxhD9+`n+F5nk7g`2cJ_=cC>EOt8zxd_Dqq z&*v5Bt^+o|E4T%)Ts8Je;;OM%;q1i~vDd(I)!5GxXRI^a#(o{KZ~L^b;6Df3 zlRa27_%FcLGr#%bS$qjLmvQ<`@%{20{|eFOeEnaj?)RqFeKJ^0DSmh2_2_6osz|Nl*|)WKc0A#2G|XKoo(HAVG~uFoUzugeF|a zO4X@ywQ-0`mx7Vapo#x#Lz&4}xZcJ42)_T~1V zuan}2qMf_Vt3$Q=bcr!T{yFVqeM7<>;oh(IIk-4EHr~Tk+k{T9nBkxzc?T@-<~V0K zc5|FF9A|3|49B?+$O6Xipcw9y)h5B;dQV{g&*?+SZVY}!9Cgz;bmDp?&IQ*TN9{BY zow#|4mi6vJ4LZ0p(fMA{se?b?ZffW4 zpfeM8zUkDT_kmuV^OEqbqr0DlXm>n!Zu=^E;n%I|)CaE-YS-Q+S*xs^2Rivz>+hx7 zyCkelQNLE0{OhG(ryYN|P9g5yIj|vJ@>{N*n%H+mo$nrwIxDnyNytkb^x{`9%hpNf zO^}zqI)%6cI14s}S~qEDHhids&OO0lzd2%JU2CmyTKl%>!Rc?ur~|HlnGS`)&#G_+#&pEGRFwdnDAyhn{(>_euCRIgdR$adiAV)BVED zGi?zE@BSYUPW#^~9ggK*9~6d5`+q2MY5xz4BOZV3Y5&`#QyU-W-7XBzGPgq*F0J)Q z7oR|3nBFqlLtP{^Gw2H8_`s}*&zwDF$X=H z9~P!p`l1K(Bf`|C4msibwI7m@i#UAzrbdPNUE=LhZ%l$O{PNhtxG=ra2X^kSS3A7# z=sDr$J9=Imyk~zw7|zT5iz3XYXYx|Qb0+qGIr8|j%)cT`9{4oRs|laxIUIR7mh&7D zCJ%g?r1ayTaU~?e7T_-?;{7#Vm{_sh`*UX2$L5-YA$GpbIl)x)0#g?r{?A8L(QKh@UHnw vjzDJCknMs+Qfq{{Moq=N_cjaag#vNP$IMf86 delta 168 zcmdlZc1E0=nMs+Qfq@YSc_(sL*0V5hGPwK1I|ez$7pE2^7A2OX#usNKrlc0d=O<;Q zCYKa5Fd(Y|N@eDy$LA#GrI#kAr^cHY85ATYX9Lx6fy{CD_jmVkjZZEph%YXw%t?*U j$;?ZQPsuC-nv_|V3NniWNnNHuUUE)p3X+PA%{#dOu-r4b diff --git a/data/shaders/particlefire/normalmap.vert.spv b/data/shaders/particlefire/normalmap.vert.spv index 48d175fb6e25e3958c2daef2e2b1e73d9a507a5c..3cf2946ad48c9fc62d2fb9a7b1a1c31c25a2bb65 100644 GIT binary patch literal 4164 zcmZ9O`CC<06o!usR}n+a9GVEB*&-`7%Ty#2DpX9NIYqqTF}T+*7l*90Y%royv)TGv zditySrRV8=&pk^{cl&(o^?iG-wf9+>BuQsd%I2Yw z!z2B(^%MPDwrTFt1tL)HD%nJ0e!Gm~|G8>wlu2oN!CmTK`y!7#m zGu0F2Y39(}uTrheOdv+Q6-}p8C+lp3neEZVJa@dBoy(fiN@KAd#rmpq^$|n%rZtrI z%8`l6RJl^mHG7g)2GdaWvqx#=Kz^!5tUZf8#>`3`+*`sir6HlB4I zn)OKC;aXgT_uw5mhRJQe9qnM4pTYYw_5T`=E_*o<=RFnUhGNwx%VyiZM*JW%VR(9 zS#Eu<`<)cmy~kp_-;dm({{nNwTXWo1XXc?#Yo@v18g_Nwh~{~<*I|{Id%$|~*(^OBfo+aBpKrtS1>e`ieH*dv`FtDhr@!2{A-7*M%ss&2e)3Aj)Z3COw!Zcu z*8QEaq`=Q($N9|fTQkOczQSy*>*o8K*)?^~BcIPT*T2CwcdW~On`+%e`Yz)we2;A| zHFL=ue-9da-OShZ-^QEv48AXiasQzB-5cxs>;Q4E-iyDBgS$SN^F2iQj&28C!1uM2 z9G%Q-fV$k+b-?#@h#32@A=j90X?NzDHHP0^x#pQi$z%<81LO5~-FJD7ysq5?+*_Z> zac{0O-O~KV^)2poU#>OwDrM*HK{H-|*LTq|`_lug-*^20u>L+^y`JMipni~!TK_}2 zrtWZG_lf>IjBVb_bjO|(cR^l$6#8$T-p6w~1 z=7{q>jjb*malVMzf@X|*#B9Y@7mntbZD__=XT&^%tu7o9GfItq``dwMF}J?apXads z-o0mgu>Qz&i&Zx!VzbVm;-3Ws7K5}Y<1yiju}NWrr4W9aCPB`nCQ)` zXr9H~`bKY#U>^q2n=x#C)uT7#*!IS6#@@*FbKURzbzpCb-}f829yPrQR}+pnU!3DD zv*Ev3|dYW59U*U3cG2%oD)cuIAs(aqMG2 z-CF&ds1~)Jz;3R!jHVv7zK5+Q9L=>(p{)f`>q%^5)ZKHESuJ{V3fpfx`1{!U+{pVf zjjfNm=d3cH1}UfjbISFL93No&O$4uD7jw?S^-+(UbJ*sr19QstiyUXLeM`a5Vi$9s zgX^OnIX}cU=XqdGxqgx3BkW@BAH(fk)cy&!KI)P4BK8FkwafL3oR_eRwSNjP=KKt< zk9y?1jBU=SU9Ml`{2aSj`xo$H&M)Ems7KDPu+15@%k?wo73Ocj0<9XHGG7Pk;qwEwKC3|Z+`v}9P99@^%xwF)Sj$h?o;|*&pRv^(q5Xob=GzYK*Ia91 qj{l4NhHbq5uCE8z*n2ti@4)@_@ys`w{{UBkby>Guzkk_jJNOT3H5r@$ literal 4720 zcmZ9OX?Ijb5QZ<1M2VoFBDi5l+|j6rihGD)P@@SVad#Y&AzTbIaWVniam57@aNkAT zcmILMU*#9i@pQs55$-c`-(I?J$LYyjJWZO3+EPh$tMPqELjW7q=z z%xC@+v5stEHZ)vWfA?TzrZ!z|R$H~o%#P|rtyyVo+gTfL&HO)xrMx~_nX1+&XRDL7 z%Gx!TPglnuL#JDvp^=fH;fFLT$>xrpaWh$@NDie7VrF?fyt>crpygoiPJCO!- z5|P%`$$c#3th;N?R&DQSV~SLV?6wBDqqyU|-d^m4@xB|gtzlC({7Va zw)&mbRx{sQXml1m$?NxUWwm;%!*?LGWhUfW|jTu1R1;I@txF&)Lb$m@m6dRKN7esZcZT5FCKw~kxf zk-WpTXoP+6O*uB9?R`5su}%CPeqX`CehxN(1-zog@+Fy_?x}>si6y?jxtak`?STsi$vmO6K2=sjo0^W%DMg-v)Zw)?^~5y zNz_s1cpG1W&6870|5(YX^=pZZznVAh8GLUJ^ZtVIcfefVtN(69pY4;s&EdQ5@2LKI zvV2!3W4=Y-+l^@W#!kWH^^H9Z^L=e5$9q^&a!mhnryLqGe>?AHzs#6X5L23btSYqJi|9Q=)7&+556L-03&-P?WCl=t`OW=t*fjENqt2M=Jr zHTyA$87uGo`)%BU`MvaG_DA2i=+6f5-2T{4`KbF=uw0DbhaiGa?_*QKdmj;hTge;i z2>y1kI`XN`9SNW6441r|BXsTrt0SN4+?DXI#eI)}t<5?-bMT{J&+556L-3oy?(IHm zMt|-Gt7V=s(Vu(3Td?TQRW0_$$nJ*pC^10`u3He8hYMHf9MHG2epakDz1DcbIwdQOoyW z&mP~{4`4Y*a6f|O((mr4l52l=?f)143}?Rat}n+9vv)W1FPQrq1S>q+Sfs!CCdl*<5c!4w@ z5QD^cCO5JQGxANI$|}zZlDA`EX5gQ^msJ^P^+Q%^pzgmwHveQrw&{$VlXtRZ14&i( V#X#~TJBV${ahQ>J^G^AZ_0nm>C3tGzk0x8pl7`msOqRT=1znXJ-4v$g`+ loRe>|PG{trT*#IUB=52<29k~JAog4K!;E~JH*#1r0RZkqJURdX diff --git a/data/shaders/particlefire/particle.vert.spv b/data/shaders/particlefire/particle.vert.spv index 1bf28d9c84c9ee623f85ce6a4d3e763d36a04599..eb804543cccd0a4b86bc766864f1c43030ef2337 100644 GIT binary patch delta 21 ccmew(wndDSnMs+Qfq{{MeIjS`#w#nh05&BBaR2}S delta 93 zcmdlY_D779nMs+Qfq{{MaUy54I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvj&TmYON99aMW diff --git a/data/shaders/pbrbasic/pbr.frag.spv b/data/shaders/pbrbasic/pbr.frag.spv index 8236e4e6c4c6b5ea672259b4bd6464d788950e2f..818a0bfebdfdf9043312a0049f5a4827cdfc75f0 100644 GIT binary patch delta 18 ZcmdmBy}_E3nMs+Qfq{{MeIw^`SpX%<1C;;( delta 18 ZcmdmBy}_E3nMs+Qfq{{Mc_Zg?SpX%r1Cam# diff --git a/data/shaders/pbrbasic/pbr.vert.spv b/data/shaders/pbrbasic/pbr.vert.spv index 09e98b1e07f00cc261b7311a610bd38ea4999c58..84274aa1f5c141cdc66603b3de6c66e5ee5af6d5 100644 GIT binary patch delta 675 zcmZ9J%Su8~6o%LK%zup@CxaBlS?J8_v#J*?RabYh(UHT%-2q0e6p3px-4fD;xqwYP2ghk{{fPHsulGhj}zjiCm@KNjSo zm$i${K&vY5%Px(wiPWHsB|^0#dseU;I?w1^6&3NJO8iqn9eQ|sP44iuIO>o}_5El*);Z}O>(Ioz_ z-7DEE`LkyJnfYhd;Vb;^&juai88c^rb=l>6_A0e$W~HB-oEyZdJ)YN}9;){;EoEto zKHuEXaD=OMdw*T7Ki6Jr^+!bmD>Z*z$%Pb-2u?UuAo>i0oQs+h!K6cD43oT9Ff23rD8@~-#8-xkPi^MOsrT%>p?dspZc zCIx9UtVhP4K)@#*$R>&Rq7gZV0{n-B@Q(!Q;QcVivd4sqa(KQI0gmOlQ`vCs+q-Kg up2cMQ>N2fQbuJD83WyI0oRSZBAus?r3|-b<5%_SNY*SwmpS(Y{DhU78&^cxR diff --git a/data/shaders/pbribl/filtercube.vert.spv b/data/shaders/pbribl/filtercube.vert.spv index d858d61a30f4fb720e1050ee69f9716ec173a890..220a3df49bf403b63a63d60be2a53cc067fb6ac4 100644 GIT binary patch delta 18 ZcmX@ZeukZsnMs+Qfq{{MeIw^#W&k4~17`pL delta 18 ZcmX@ZeukZsnMs+Qfq{{MaURKnU|?im-^f`n4*(#n11A6g delta 18 ZcmeCM@37}&W>RKnU|?im*~nQh4*(#Y10(RKnU|?im-^f|d0stA&0-yi@ delta 18 ZcmeC+?BL{NW>RKnU|?im+{jta0stAa0-68- diff --git a/data/shaders/pbribl/irradiancecube.frag.spv b/data/shaders/pbribl/irradiancecube.frag.spv index e5d9dea3ea337e0ee815028ca2d8a14cda97974b..a369970e8aa72d0a9a436d5974cd8d597697a6a5 100644 GIT binary patch delta 18 ZcmZ1>wnB`PnMs+Qfq{{MeIutlHvk^^0-*o^ delta 18 ZcmZ1>wnB`PnMs+Qfq{{MaU-WZHvk^m0-FE; diff --git a/data/shaders/pbribl/pbribl.frag.spv b/data/shaders/pbribl/pbribl.frag.spv index 28cabcadd6ba0a6e1ba21ca41b809e7412e97306..4ae9789918470078b8b26a8d5b3a5821d3c0b677 100644 GIT binary patch delta 18 ZcmX?+aw3J3nMs+Qfq{{MeIuv65dbY;1H=FT delta 18 ZcmX?+aw3J3nMs+Qfq{{MaU-X_5dbYg1HJ$N diff --git a/data/shaders/pbribl/pbribl.vert.spv b/data/shaders/pbribl/pbribl.vert.spv index 9537021a3ed78512ba08bcd1abb1dfb12b399eb3..37d92b7b3fa3c46397675e24102adf67653b7b4c 100644 GIT binary patch literal 2528 zcmZ9OYjadZ5Qc|jv!GxAk&CEtlSn|(h{{zYBtc2QKo%iHKUpE!lBJS8)b2+4h~+Pk zUu5~K{9={Qb9Q<;W~g_2`t8f~bk6}sN2d3uv@h*X2hvYzu#Tn?n3N8tdMTGy9HjAApa(KEYoj|cP!1I zKd<;1Yd^?$zv%94Sf`x*X?KPcOs(t}eru0QpIX_wcBfRa*V8imFWWyiTiwU4Zol;c z6?VY8*H-k}WrOUYeRnOB+g`cGz%sv~PnYcfIUYtjQu+~S?t-MD!Wx#af7IfrVT zx^XW-#L2ym8`R~j^!p1e<+q^U68CU!Q@|DalfevPzV?`OX2NPXq?S9k7m+HW9@4ZFJUK+ayyBOAbFz4OQgpxyYz zy!TA?+emY(+Y8@|Gu3tnsZGvW)cvmIq8InrNA2s`X8dK|qr7j!Wz0V?ev{_%ZAIS} zV4d;Xz<1&7Z{Xv+j{$jgdwc>o>j%VG^Qp`shTOZE^UmRSI&;?4B$GA12aMNWyKm-C z@@jh@c(y)~I&dYkQ0e$7|gWsT>{(dVr zOMYPUds4SYi^yBqwt&>%clB-N|G-E6JK+0}H|{oa37E?`&s5hhdjCE9ac~xx*Y~^v zyQef;eYKZSA~4P(e5914wsFD~C%o*nJ1 z&(57ctHneZFATLg9G)%qHGa2x{ei-9s0F zjJ?R+ruoaPd9arhXw9%hiYD|Y(Y zSK{5whg&`C6tmC$!5#!sEBcPz>fOSoR?MJ3C`9y)a0`56v)jprceCM6_B$eIiMv;q zkNQP}?4k2>EfL#Zx$4joze%1h&?hl2SU6JHm45cP>Zh#VH7Lard)m)ARQ;6odk7^z zvB!R8UCv6of1t&97qnaC9L}u;xsp6piiPYfCo8hHNj7Jineko57fbP-mG+*;_|B;+ zx1*fweJARbjqi+Hhe}q&7gK+XU-=X{J)`>*>>BVUbdr4bLRozic|TlCQhyMxz6PD* z*F0j%lW3f)SR(z5^BmlK>MupvUWy$@J`8U{`=B#X_6{iPe-y5*ag|?yt24gwlRB3gO{Z?Wfpzrev?&ir6F?XOL=rgT3DaF=H#wL@d>I8rfy+H{se>V>?Il*`xQO zPC3<9d>D~a?atZS?eRR^`aQ4l7vTDeYp>jnnEFrI>znk--U~5%y9jSWF7qodLF)Ct z5%=a){t|9JWqafOamMO8aCKtVqFjEbAJ6S8uvGhx?6ueb0{2tA2D!xl1F6G}`5v{c=6Wq+Wv)iNYa!^bz4|M3#Pc_ybhc^sV)ny(_7*e) zoraRl+Y$c*8~bqv(ofu&t%#+bzKi^HPiMizSLmQUd>;}^E8*t=5?-FKwEv)jd&Xox z7jbP}2|v%?IO5ef7bp5}H@A6=Deil|3>iy5ZPF~RviB`}XUumE(ze9Mi+_tttbFI!(fL-LQyZ@AoNmBB zht&C2jqhB(fW-gAMtK?Xj*9E&+r0@HOF!c(YnSGKoBafo?vQWl4kVszR@rOgTQ;{g z{=Y!{Z}KSLgY*+m=l`003rg?f8}?$Zgni3itejVQj_)E?&Z>Ni--GF|y?W1SUk}26 afXuIrHT#|ELVk-pm*-a2?h%E&wP;1JVEh delta 18 ZcmaDN`b3nInMs+Qfq{{MaU)xpKd%%sfDz`)4BK9MtfQB%%sfDz`)4BIFU2korQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>ob765EW8=n9G diff --git a/data/shaders/pbrtexture/filtercube.vert.spv b/data/shaders/pbrtexture/filtercube.vert.spv index d858d61a30f4fb720e1050ee69f9716ec173a890..220a3df49bf403b63a63d60be2a53cc067fb6ac4 100644 GIT binary patch delta 18 ZcmX@ZeukZsnMs+Qfq{{MeIw^#W&k4~17`pL delta 18 ZcmX@ZeukZsnMs+Qfq{{MaURKnU|?im-^f`n4*(#n11A6g delta 18 ZcmeCM@37}&W>RKnU|?im*~nQh4*(#Y10(RKnU|?im-^f|d0stA&0-yi@ delta 18 ZcmeC+?BL{NW>RKnU|?im+{jta0stAa0-68- diff --git a/data/shaders/pbrtexture/irradiancecube.frag.spv b/data/shaders/pbrtexture/irradiancecube.frag.spv index e5d9dea3ea337e0ee815028ca2d8a14cda97974b..a369970e8aa72d0a9a436d5974cd8d597697a6a5 100644 GIT binary patch delta 18 ZcmZ1>wnB`PnMs+Qfq{{MeIutlHvk^^0-*o^ delta 18 ZcmZ1>wnB`PnMs+Qfq{{MaU-WZHvk^m0-FE; diff --git a/data/shaders/pbrtexture/pbrtexture.frag.spv b/data/shaders/pbrtexture/pbrtexture.frag.spv index f9731e557c6fbc6a6411b82810429418dcc1e6d9..35834d48fed7cbcb65657d2970ab45a2d4f73cfa 100644 GIT binary patch delta 18 ZcmexS@S}i}nMs+Qfq{{MeIsYS1pqar1abfX delta 18 ZcmexS@S}i}nMs+Qfq{{MaU*BG1pqaN1Z)5R diff --git a/data/shaders/pbrtexture/pbrtexture.vert.spv b/data/shaders/pbrtexture/pbrtexture.vert.spv index 3112273402889c5efb2ff558e19e16e8d5650d33..5fc3b51949136f46c94f062dc4db56b113bf03ec 100644 GIT binary patch literal 2320 zcmZ9M*-lhJ5QZBD#sx)j#SI5=UvS429B}~^Wz?vb24P~x0LKitT$=a<`b5U3^2WsP z>vMWIp-D~E|5sIabyXiK-J_dA=n9*{=I}D)Yan#PgwPkNQBTjlnjKqRTO7N3?V=I= zp%Md)*%7uyyNBQ9`PPbHFEWB0LoOg!k#S@Ssqoj0{zGza=;3cYPrL=Zlr1!}RsEH? z`|GJWDybGHh487JeQYkQwK7ht5@iL}vYah8m(YpxoG-2BS5$|y@`d^3&i?)2&+oHX zi*>hFq6^#`?~r|7dz-bF7G>qU6WsHxy*%$(a^A7E(xG5_;+=_m{U*lr#QV2aBE(+} zb@&fU?;6ean`V2h`3(r0^V<5d)mFTueXw_~8TQUQ?%Cq}{`yA!VU;`^E?P^&C0z5FY0!m&82x*^c%+{kIEjujKZEcc5!X7jm}1&RA^z0NPmh74Jdo zbAR^}+gmyFt#LmR!uPwz4`X?!6fYhrIP=B!-Wcz75^bzF?e8qy-#%PMdxkZ+{}r^c z^2Upum7M--XmgWa?Cj*c{|$5vaaq6kCZgZ`TZQeJ;z_i7i-)l4Xy>5s9$H@=u@>>jgR9VX)v(9qvHEb(Oe-1!qkScCyApi226rckVygSKnd8vyDk-9VvKJhw~dU zwtUvng3HgU#=2{8<{Phnl8$))8j|idiY=#a1T9XzIgY)tHz(latrSb6*4w6vCTJLfB8Mnfj!?CYxY}xflMLZ%X^EB`^QN)kpDZ(dQt!Y literal 2540 zcmZ9NZF5sq5XVoSB8Y;BJSbYyR0TyVVnGyvwhAd&AqCp%t4wI`)M%R9NmBJCGkya6 zM2?@zH_rI`oqJEXaG1^R{`c|h-czO~=U)k7f`5m?PoX%+!z6kLM?x*~=GvpRh2dyt zVe!f(J&uN{=%~-J@LH6o`Q7Vu`zj})2J}936}k@HfbK$5{F{XTL-2Gs9GYwG<%cWn zVYc5HbVgZw_;Y6`8?^H$zhv8^;fp?)y8YdDuhZW>=`hMMI*^=onuXWxK4NuMj!sJoBZ zimq=}cNgmRYrK1?>VCiKsh;0*((TzDc#aedeJW!5pCC#;2j(4=Pa)Odb?7wpysNtQ zI{G2Fn56wxxOTtsGyGadOnnxMdlO4!oOxb{TTlD-Qg>EjC()0=>(B&rvDDqMy79;1 z`kGh$Ex0!Gn@`=@iWzT@r=bv@-qL>#$vY)~^+t&qukP&i@m}ZQ`l_dV7mz)vp1ZN0 zbNLExO?$N7*KlLS^;dUyV%oof8=LIv?o!No+=AC3kM-4;AnnF4m$Eh0Z^O;4K8w_Z zyBBS%aBX7tqF(&{dp_%XV4gJlACS{swvdfC-&MXbarf;J{};q}WNyC~|K2&fWl;C_ zCgiT&=M8+^;R#4wUEfoX`&%c*JDe#o*cf}e#3m}(J0)gMEi&2TS;%<(wfh}BBd@l1 zA#3ZCYQ0zDurcPF(zjacT!|I6YO(J+nDP2+zsW?re;rD9n@1MY)_|+0*?fTf@@zf? z6JKW%&f+6TES-dZ43O}m&%*y=1-IAa|4E7K>q+>h$mS8R=2@uV)jXe-xR@v9@jqnq zh*$G`Uct4sxRpD<40$*2Vb2Nw0@+^e%N`QGh-_`^m{a^b{0d|)h7&~ z4boTKUHIO`^!FX!jB;V~t*X1HW%x>ITZ+8+`|@px|5<*s-=X`hi5useyaSnQ39_cT zerf;TBfI~5kbU?z)*$iZb01kB-(>Q6fGqwOb&P32#)+rxp}Uax^4{wD{l}Ma4f-Eoj+rC? diff --git a/data/shaders/pbrtexture/prefilterenvmap.frag.spv b/data/shaders/pbrtexture/prefilterenvmap.frag.spv index e876f93da939482f60b4dee304177820ef6689d1..aa5955dcb75b4f70fadb48edb0c0a0b862a4b33f 100644 GIT binary patch delta 18 ZcmaFj_QZ{onMs+Qfq{{MeIsYIG5{@r1I+*c delta 18 ZcmaFj_QZ{onMs+Qfq{{MWg};_G5{@c1IhpZ diff --git a/data/shaders/pbrtexture/skybox.frag.spv b/data/shaders/pbrtexture/skybox.frag.spv index d5632e9ebcd73da6b934699ccd76353276418807..ac4c939c6d95469c5ea389780ce09238ce6adefe 100644 GIT binary patch delta 18 ZcmaDN`b3nInMs+Qfq{{MeIw^>E&wP;1JVEh delta 18 ZcmaDN`b3nInMs+Qfq{{MaU)xpKd%%sfDz`)4BK9MtfQB%%sfDz`)4BIFU2korQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>ob765EW8=n9G diff --git a/data/shaders/pipelines/phong.frag.spv b/data/shaders/pipelines/phong.frag.spv index 1e547c4022164f7529c4859c4ea41e1a56d41b19..7d071fbe0adc830a9380c00aabea30de78fafe67 100644 GIT binary patch delta 21 ccmew(xJ8hYnMs+Qfq{{MeIjS|#xn*S05mlO-2eap delta 93 zcmdlY_(zbFnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqyI4gi%N8^r(s diff --git a/data/shaders/pipelines/phong.vert.spv b/data/shaders/pipelines/phong.vert.spv index d6215eb52551e53c836505862df1c915a76646cd..82758e686cfd5a35ead56c59b5827cba399c672f 100644 GIT binary patch delta 913 zcmZXT%Su8~7=`!oWGdkxq==vr!a+0(qM$VGrk0gv_p}QU6$lQp@fkF3AWnM;aoVUC z=oxyB2wI<=jZ*(%xz}F%zn*=39eW#zx`FACF^&nDu(@tV?_wv$n5y9F321$HO#5Tr zN#w+9#rmTb6V!uW{i#uSxVvv0-QIMyYG)=;c7{2c6b6K>eyg1q_shx0MYEDruZvmj z$Hn&rDsf)+`KZ<kW9JG#9$)e1r6>gVOhZT6iAsB0UcnDK&g`2 zB_=HpgKlFo;%OgR{>7|HBZfTPn3~9%zyZK)p`sZyN$uAKnjty9NzF!s8^Vy#R731H z1$@y{nmXcZ8J)+)^R0Fy=54_QJI1y+8fM2Rh@%6{c4T9Aq!EK|V|K;S0rod$Pnu%9 z-s}>J0tW!IL3Z?#G@2nfzKp^(9|%(d*U#(VJ`M$R+t87(p<}kYrhAqP^K5m6b(gXqKsfDO8hy#`NAez-_oV%&>-G)qlBGpP)Wc zpQ?XatKaY5yX}UDwLSZJ&U5zJXYVuD(UIvVlH>?~N0VMsj1$QSI7yBrY}YM$ZGF^287vpmEE{xR%n>^Sxu_B{3ib{e+^4nuhZ(bd!2)JCvDALoZV}0K1gar zs^(IIF`xdy@J@fQ+wS7anP1j>MCF|MqPyAe_6N9dV|o5rub{-<13&t!3b4&a{>e<2shuDW`rJ zeblIy@&>9ku$c~?}ywe@QciK%vcvn{1U$74ESYcV->NB-pK{;8S&Qap=XHgVcf4?`tFG{ zrtv*9>SIqM2k-J0mLv~v82>#y^Nl;bk8f|p=6J2dYK-sx>zKp+cbL^{aefOw^1EO9 z#xo!L@0&7S;Nm-*B$s*Z?z0{aHGjkS8&GR*eiJ-P?Ad-7#Mi*iPhq~7>+JSjiDS+G z1$-;6`G&-<+51zNeRs|GAzt9*I`b4}&F!6fYkdxr56x@%YNoN!ypAvbCvn{K2IfBb z$mvb|^Vk|1Yx_1P=LqfszTA-t_fE-KuT^etec#30uikb0{0DJeo54I^jXB%*S3)HRkF& zkc(We;vdfS6FB)bDr;?TU~(~npN9y($g$8bRCx0Y{bI?hbp(GC-#GHsIGy4s)3l9P8>8*_~QZQ&bVo&ED0Di{6!8DB2q zckunaMf`1iIn5FAe=pxh24@U)#!s2$BHjc1YP>F3PIE-O-^y?LE}R-;?J$e~L3IWD E7cD2k9{>OV diff --git a/data/shaders/pipelines/toon.frag.spv b/data/shaders/pipelines/toon.frag.spv index 0e3518d9c928b024f898fd926641a9d32f1fdff9..62a22effa48db0957bf69007bdfffd422f39feb9 100644 GIT binary patch delta 796 zcmY*XJ4*vW82t7gi9rJv!VztZmX>J(k_U)biWa`2CO%_~kNAkuvxvVy2v=!sV|ky}kVzeR9&KF_{!ml9U0t?WHTq?KQ?;{b8j#-j{Ne z>wT+gwj&}F0LPqILY@Uw$lZS1cvsyOP>j-u7_y3D3f2VXO(2)+7d5YeKR#qin(u;( z+(rEc*r)FobpIsim&+MR$t7xLa_jg2_g<{jLK`AIN~kO60BXGUy`kCU)?7YpAL5vkR~@ssbzl&tT;10DWbEy`q>wpSoVN zfjXXB1*gVq)1EDn?!Vw|G-<2>Xhy-*^`afr@!&mhYP@gl*+(5ea2=dJeiVE9z;)~& zEjmCW9()K+jXzEYH&MrfkHG2U=IrTU>Rf|oD96AcaE}`%KMgfLfI>68;uZ*lwdo8s ljno-5gZUho1?KT$$S*>TUJI}R{vH$HLFlFD7ymyG`~gGDPl5md delta 1235 zcmZ9L%TE(g7{$LSMKs95#Do+!B1>ap#D&H{i^OyzF|hE3Iu2zhh0@lx;Ip;}zG`AZ zy3(~<7p5B%SH>;=JwBp|=Qr&&mD`-$?|kRnd(X`Dz90TQGSn9vA29RuJ7}+WhZel% zZf-Okw?me`cYnaugjb5ld;cUcwJN@ zdDLQdL&XVM4`|K^6BF$z$Ft(^-X@ZcuZx>C{^^@y-}d$la=c&9ZRAD?@s z&W>()jRI?#w7QvmisJb`ok~lrS6=9b(GYE?o3M&GEsM(YE!nY*Avei2x zCU;0qwM&Z`-Z6K)9OAsIs`0q6aHr)}_l7Nq)8mgr*pg<>kJ2I*g}VZ2so9jT#-|_v z3()YmL&~aMSiJCFFKe7vH!IrDg@xChxFOP;_MSMsO@XuzG&6X$X!nJO0)eR6w5pk> zBLIFhJnoD~s$E#T;`RT`EOO?@sxi5=a5VnoHDOSAqdzU2w@8mW=hin=bC~mNsm9k3 h@XTm_s=HJ@qMHB! diff --git a/data/shaders/pipelines/toon.vert.spv b/data/shaders/pipelines/toon.vert.spv index d6215eb52551e53c836505862df1c915a76646cd..82758e686cfd5a35ead56c59b5827cba399c672f 100644 GIT binary patch delta 913 zcmZXT%Su8~7=`!oWGdkxq==vr!a+0(qM$VGrk0gv_p}QU6$lQp@fkF3AWnM;aoVUC z=oxyB2wI<=jZ*(%xz}F%zn*=39eW#zx`FACF^&nDu(@tV?_wv$n5y9F321$HO#5Tr zN#w+9#rmTb6V!uW{i#uSxVvv0-QIMyYG)=;c7{2c6b6K>eyg1q_shx0MYEDruZvmj z$Hn&rDsf)+`KZ<kW9JG#9$)e1r6>gVOhZT6iAsB0UcnDK&g`2 zB_=HpgKlFo;%OgR{>7|HBZfTPn3~9%zyZK)p`sZyN$uAKnjty9NzF!s8^Vy#R731H z1$@y{nmXcZ8J)+)^R0Fy=54_QJI1y+8fM2Rh@%6{c4T9Aq!EK|V|K;S0rod$Pnu%9 z-s}>J0tW!IL3Z?#G@2nfzKp^(9|%(d*U#(VJ`M$R+t87(p<}kYrhAqP^K5m6b(gXqKsfDO8hy#`NAez-_oV%&>-G)qlBGpP)Wc zpQ?XatKaY5yX}UDwLSZJ&U5zJXYVuD(UIvVlH>?~N0VMsj1$QSI7yBrY}YM$ZGF^287vpmEE{xR%n>^Sxu_B{3ib{e+^4nuhZ(bd!2)JCvDALoZV}0K1gar zs^(IIF`xdy@J@fQ+wS7anP1j>MCF|MqPyAe_6N9dV|o5rub{-<13&t!3b4&a{>e<2shuDW`rJ zeblIy@&>9ku$c~?}ywe@QciK%vcvn{1U$74ESYcV->NB-pK{;8S&Qap=XHgVcf4?`tFG{ zrtv*9>SIqM2k-J0mLv~v82>#y^Nl;bk8f|p=6J2dYK-sx>zKp+cbL^{aefOw^1EO9 z#xo!L@0&7S;Nm-*B$s*Z?z0{aHGjkS8&GR*eiJ-P?Ad-7#Mi*iPhq~7>+JSjiDS+G z1$-;6`G&-<+51zNeRs|GAzt9*I`b4}&F!6fYkdxr56x@%YNoN!ypAvbCvn{K2IfBb z$mvb|^Vk|1Yx_1P=LqfszTA-t_fE-KuT^etec#30uikb0{0DJeo54I^jXB%*S3)HRkF& zkc(We;vdfS6FB)bDr;?TU~(~npN9y($g$8bRCx0Y{bI?hbp(GC-#GHsIGy4s)3l9P8>8*_~QZQ&bVo&ED0Di{6!8DB2q zckunaMf`1iIn5FAe=pxh24@U)#!s2$BHjc1YP>F3PIE-O-^y?LE}R-;?J$e~L3IWD E7cD2k9{>OV diff --git a/data/shaders/pipelines/wireframe.frag.spv b/data/shaders/pipelines/wireframe.frag.spv index 987c629d5cfa4aa46e68951293bc08e4945e3d7c..2193fb00d55f6b6bdf37512bcc9c23d44085ac42 100644 GIT binary patch delta 21 ccmZ3(@`Ra_nMs+Qfq{{MeIjS}#ytg$052{Cy8r+H delta 93 zcmaFDyoQC7nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv8uMgV*L8>0XK diff --git a/data/shaders/pipelines/wireframe.vert.spv b/data/shaders/pipelines/wireframe.vert.spv index 9e254ace61f32b6a71dcbdcad66cf171349688a6..8d61379508c55f5800c9230ea927d1967bab1292 100644 GIT binary patch delta 21 ccmZ3&d543OnMs+Qfq{{MeIjT2#vN~%0WXFHD*ylh delta 93 zcmcb^v4oS8nMs+Qfq{{MaUy5BI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw3T%m8_X91{Ql diff --git a/data/shaders/pushconstants/lights.frag.spv b/data/shaders/pushconstants/lights.frag.spv index 1b6c5022f7c08fd7ed72e7019f913506d0598048..6120306acd1c1d77091ec77b80bc0788becdcdb8 100644 GIT binary patch delta 21 ccmca1I6;t;nMs+Qfq{{MeIjS^#v>ve04^N_X#fBK delta 93 zcmbOrctenrnMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qq;a4gh$D8&LoN diff --git a/data/shaders/pushconstants/lights.vert.spv b/data/shaders/pushconstants/lights.vert.spv index f27a6c2424a9448847adf565e25fb8590ba3525f..0a6d2fb00e93b710b7965d4e289590082571bf3b 100644 GIT binary patch delta 21 ccmaDMvOt8BnMs+Qfq{{MeIjS^#v@BO0WvTJAOHXW delta 93 zcmZ1=@V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvX^oB)SO90&ja diff --git a/data/shaders/pushdescriptors/cube.frag.spv b/data/shaders/pushdescriptors/cube.frag.spv index cb60858375b2563c2978e5bbba266ae0b1f3f433..c98e777ae4a7f29620590bbcb22ee7bae3fb835c 100644 GIT binary patch delta 18 Zcmcb>c7ctPnMs+Qfq{{MeIutkGXNrx0`UL< delta 18 Zcmcb>c7ctPnMs+Qfq{{MWh19MGXNri0`33+ diff --git a/data/shaders/pushdescriptors/cube.vert.spv b/data/shaders/pushdescriptors/cube.vert.spv index 7eb786a951a22846d44273bb526c5362129fa15b..9b5b8b2cb34313a40985427beb0ee581fea7b57f 100644 GIT binary patch delta 18 ZcmeC+>)_*LW>RKnU|?im-^lr&4FDT+11tal delta 18 ZcmeC+>)_*LW>RKnU|?im*~s~y4FDTt11SIi diff --git a/data/shaders/radialblur/colorpass.frag.spv b/data/shaders/radialblur/colorpass.frag.spv index bf3e9bccb789e355ace0d02a10d17f705fa89c7a..07a97ca34a982d26821b41eeb5ff3dc39dcff21a 100644 GIT binary patch delta 21 ccmbQheS(XVnMs+Qfq{{MeIjT6#se2v04%!%`~Uy| delta 93 zcmX@XHG!LxnMs+Qfq{{MaUy5FI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvvyEC6oW8{_~0 diff --git a/data/shaders/radialblur/colorpass.vert.spv b/data/shaders/radialblur/colorpass.vert.spv index 7e40062779c51bec629ec17a76916c8f327687d6..5635051a3d39cbb28702e7110492eb23521845b9 100644 GIT binary patch delta 21 ccmeyuy@s2UnMs+Qfq{{MeIjS}#yu9S05P5frT_o{ delta 93 zcmZ3({e_#8nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqmMRse=48;$?~ diff --git a/data/shaders/radialblur/phongpass.frag.spv b/data/shaders/radialblur/phongpass.frag.spv index cd300965359fc612e50e26a8a4b40a1fa6aec6f7..33b35eb9ae04304372e6d33870bb2429a60435a8 100644 GIT binary patch delta 21 ccmca2+9S%z%%sfDz`)4BK9RF};~5Sv04_fSZvX%Q delta 93 zcmeAXy&}rV%%sfDz`)4BIFYm3orQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt);v7XW(b8&?1T diff --git a/data/shaders/radialblur/phongpass.vert.spv b/data/shaders/radialblur/phongpass.vert.spv index 7ad5cda7970f3e6269bf73890ef7424159feeb72..f265539d28a5d216dbd161495307436492d6ad94 100644 GIT binary patch delta 21 ccmca0&>_Id%%sfDz`)4BK9RF}%8)&Kwi delta 93 zcmeAWxFEpE%%sfDz`)4BIFYm3orQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-AeI{Pl diff --git a/data/shaders/radialblur/radialblur.frag.spv b/data/shaders/radialblur/radialblur.frag.spv index ccac707f8595b54142e60da28b0ec317df59162b..521a3334ff0f3df8aee01a7dadff2231fba733a0 100644 GIT binary patch delta 21 ccmX>g{6mP7nMs+Qfq{{MeIjS^#v^|?05#_YqyPW_ delta 93 zcmew%bU>JsnMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvYJ8~~W69E<<} diff --git a/data/shaders/radialblur/radialblur.vert.spv b/data/shaders/radialblur/radialblur.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/renderheadless/triangle.frag.spv b/data/shaders/renderheadless/triangle.frag.spv index 685b3a78023a7d4fda8bb5460fc146834a10039f..f67f201135c138f22f9bfb7bd9b0a8e1c9227e92 100644 GIT binary patch delta 18 Zcmeyu{Dqm5nMs+Qfq{{MeIw^wW>RKnU|?im-^lr!82}m}0}%iK delta 18 ZcmZqSXyM>wW>RKnU|?im+{pQx82}mr0}B8E diff --git a/data/shaders/scenerendering/scene.frag.spv b/data/shaders/scenerendering/scene.frag.spv index bf31835b00d7b8e5c06c88591f3218aa26a2f33f..68d36d018016232e7915a50f86fb365d3a550c5b 100644 GIT binary patch delta 21 ccmZn=-66us%%sfDz`)4BK9RF}CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>ufP5^EL8`%H= diff --git a/data/shaders/scenerendering/scene.vert.spv b/data/shaders/scenerendering/scene.vert.spv index 56a53202500bf313f781ec356eb5de0e12bbc2ac..64d217486b3b20ef47a78b1df08878c58b311e9a 100644 GIT binary patch delta 1123 zcmZ9MOKuZE5Qf_}o){7@kR>9J#Z!nKLSlo2KngGO2(is0Ku91Y7$-PjAP(C(02{11 zN#qM4F2D&m0!x-ieBZ<^f@}0oSAX4AuCAH!*ZQ}k)l%`yR0xGI6)NHLu-dJ?3?cMT ziL1!?y%2VPtQ5{R@wZz2ZH7?ha$kREFu&Q|7%X6do=rl6NEMwZ{=0ZHxgWTta#Zx`Rmn$t67-Js6%(K4} zkD1GrHW{-BBPRXV3cwTOg3@A8?8H-;#hBc^o@|NnIr3yae^2J)Sw`}Bh?OyuYkRq~ zV>5@+7fem<78~d5D2t6=#h1lKzQUhuDd8j{$x4YZd1o<5h&R4eIQW~*ouc@#evSuA}Ef3oy@Rr4Y`xRAt45oN^<$-t^So2K?O@KQh{qlNPQTe$Ug^%Z znM#@CS?Fr$03ihvsboXW#^vCz8PivRPW4{orSV9 z4|xjN*?Ib)DgF)lWPv`2@z}G+3%k*pSXj$&`^%IXJ^_f@?3`AT-Tp??@YW~E-)TE)WNU27kDcdg!h?!|o8V!ngi+KOwh z>|2O@hv4-My|Qm3;vIoEp8X%=-=o}O%Emv&Z7<@-vGm=@2WhL_Gu+ms-a3@smDpkA z=eP$U^Pa9`=d7&%^W54RH}oee>^R+=f{$D;!P}phxs?5ViiPhh@Sd2Vdym}qJEAh% zzGUt(IDI4jIe2?kHlFtHK^|xHKDYXq@n@AR7Wwl;e+%B;jAuQ*5#OEuA#YXk7{3^8 zoxew$e?a^lY3n}xews_!TK)cnY%P9+lrNz7egyK3T_l=sQ8{$}&*b}3=etu@=X*H} z`Bv2Vrj##JiMtwv+^;*--n|V$gHYI2)wMZw4Y3H>kRv;3fI;X z_($-@5l`cMoZxAkPbyr@6LF^DjU%4M`82`R&C-?cI|&%j%&by-8;v+(9N zk1@slPF#bGrJpvj)x~V<@b+dO)*Sc(ytP`F zH3Ys0Z*KG4gkl#<@W#?l8)tiqdl_=JIplu)9j`#*GkmSxPou)bJ=SfFvA^5!#@EjM z&2fvxzMJr3vClR5-TQ2TiHA=cKK%}?Ba3m_2D{zpLD0(cfM8-TnOlCLaC$2%q-%6S9~m`uiDP yEbZ@?3QPO@6-V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv{;tN@S49BBXm diff --git a/data/shaders/screenshot/mesh.vert.spv b/data/shaders/screenshot/mesh.vert.spv index a8beb7b6dd833b31607fc04f171da7daa2e270cd..1674220820c714925942af88a0962d0e09f2267b 100644 GIT binary patch delta 619 zcmZ9Ky-EX75QXRNx+Xya##oDB6-+58#Kf$B>rZqO1uZQ^Oh8CstXJ>}LhwN(jh$d) zVP)^D2!3bT1#y-yJ9F;L$=s0F#qWi(@2wQfoE5BS=i~BK^~lU(@OeDm@6KL6Dy|lh z-wkg2qwesY)B+y$4j)Dx$rm@*sTNP2cj+oRS^^&;o3VI0@IPH|nRFkC?@U>xo+Up3 zv&XkOmCg=f4W#Scps&bVwzACYc=8;q2Xc(2UqR?4fz4Ai(-uC6m_b>#K)O&k&;@&} zt(h%ofb@K(O)gz1{?CMHnvqXB(d5xi^+%+Kn)N+3s+;}2?!_f2!@TW zOx$_}FW~`9d~cjd+UmUNs#nFU?ym4P|GE%#yH;j|P_X>savapIszL}AaAUc!e<(tD zL_p*UTDq3e21ZZs>qA2uwDcRJuXV3)jmB{BzXqvxr>WiRo#sey8d_{)t*1BcUd)i9 zlqO>(9ATI4Xjo`BTSL`o2rrg8eN*a6h^a;E07B%@TAePtKb6QTTp#EJKwCmwoP2x2 z+hr?$e2*fJyNC)91ITlaqtcI^!fq*6CkgMSw+N;*eekATrq61Sv`X-?tqPWncY(Og z;Y}d-$EPHo59aV`n`bS};WO~5LtfU&no>d*+Ov6bG)HJ3K8483LI)DhTm=W^yW{{~ zju%M*4xfjg2G%q9WTnI*d^Tqzit-0L*pC2;rHb=h% zpQA}&9IUMYL$OfD*Nk^~_Ulu$^Opc&A Vf~I|-3vjHV7XJZ^e^9jr`~nYWQ6~TZ diff --git a/data/shaders/shadowmapomni/offscreen.frag.spv b/data/shaders/shadowmapomni/offscreen.frag.spv index 27510496087b0d3e838ba843f822cdc355d0eb1e..56001294e35ee241b99890e952645d01345b3f69 100644 GIT binary patch delta 21 ccmX@X+Q7=m%%sfDz`)4BK9Mtj;{gsP04bLQ7XSbN delta 93 zcmZo*J;BP!%%sfDz`)4BIFU2oorQsu!QCg`F~}*tIJF?LD6u3pzBnT>CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt*5#698i%8vg(Q diff --git a/data/shaders/shadowmapomni/offscreen.vert.spv b/data/shaders/shadowmapomni/offscreen.vert.spv index 023dcde58c9aa4273efa913693608e35a52130e5..6ec7eaf1429dfb843eb18d9b0c438cd6d068e0e3 100644 GIT binary patch delta 21 ccmdnN_kov_nMs+Qfq{{MeIjT2#vKi805XpR^Z)<= delta 93 zcmeysyMvFDnMs+Qfq{{MaUy5BI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw21HUNsA8{7Z@ diff --git a/data/shaders/shadowmapomni/scene.frag.spv b/data/shaders/shadowmapomni/scene.frag.spv index ca683aee226fb75440c9f789d797cb4fc0f551f6..0d34c82fafcc6f349b649364016809a9c4667779 100644 GIT binary patch delta 300 zcmXw#I}QP16ot?DXAF|52$@15N*16ojhHS^-vRLC35x*u`? delta 463 zcmZ9IJ4*vm5QQhZiE+VHrU_ypmI{hk2x7okq!A_Yt91)OkKGp5&L!VlihzziC^x z?VIq>*8G-fRF3^>I~4glgLPC7%&DyhXEyN7?96o2R!{COU);=wh}`xv*|a#a1)pGZ zfLiL_#Gkx*R1Q_VFC-dnXAQan7Ji1-;Y;8`68)u3xb`&kfu06#1Km^aRb1Jn>iHl; zy&bRz-nfABEHg#w7@~ diff --git a/data/shaders/shadowmapomni/scene.vert.spv b/data/shaders/shadowmapomni/scene.vert.spv index feb6c4c894ef61ef63fd70bc7bff6d9dc8bac2cf..7fcad0e6d495c2147a896416840bb7fd3b537e55 100644 GIT binary patch delta 21 ccmX>h)F8yk%%sfDz`)4BK9RG2CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-Yg2LN(J8?OKW diff --git a/data/shaders/shadowmapping/offscreen.frag.spv b/data/shaders/shadowmapping/offscreen.frag.spv index b479d59d8593d4fe6fe3eb6b55b3eef7da1efbc4..482931cfa5128b999a6c3784e9dcde0b36a14907 100644 GIT binary patch delta 20 bcmZ3&e20mXnMs+Qfq{{MeIjT2#2s${DI)~@ delta 92 zcmcb^w1kV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy ka!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qd?R09e`^CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdtCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt%78OMKcX9g5xlO@7%22F7zC1i;J37J71V1R_Al)22@J6s#?r8{?6N?BYI zm#EI6v}`fk%iScS6x6g-(AGbt^_)6=KEL~WIKS?D&cpM4zR&wC@B2Q#I~2xVGA>ER zB;%6t$zPM^nwpG-NfPx!^n|1%wR?KE^ez}_3@%u7{k86#loV8{Z!){uz{>7or7Hh8 z@*?s})&;y|NT$AoW7`q2Zm(W*tYi|Bf>Iu!Y6H6dM^&&wrUy6+zJo?^X78>xL?i+vos zSxs+()Zdo;7Cl%g zmq$lR_}bFhs#Mq1hPhJj`7Hk0XrsGc9BPu-J?!%>=OM1JyTH!7w)Z1;X*OglQvxxT_(YAgk|Bgq?Df-Vt z>o->a`DlIeUEIV3w0`6Cb+Knkjx%ODcGS5F+x;_{-HEu|r#&07 zcEnu-ChpX1I=CEUt}#-%74{s?Iv?JB_HjkFM{ap$`(Cc7cU{vwXMYsiyNmjZbAD^D zM$Vo&v%>z@f;$oGdw1PvxwyL?u=gNuK7BVMuE_6vC&}qm_UkOV-+j^FcCh&)erIMc z%|2||vn!tMS+sud#+c{O z=9AZc0c}2QYiK*$a$!5$dE42}+iz#K`Obi?6+LS^>vD_f(K~jAU2^|~X-8Yj`SW)w zVznR5+0O2hEw;Z!vHyJVQ#sqS`dbu!?Gr7wzcqRPt1Y&_FZ%yMx8Fd!{!OpG*JH>J z5YHf90q@>#A->aUPUahZC$pVV_xK*)&GtQf?(hvT%iW_d`jyZ3Yu|BK&wxFXdz}w$ea`GJ5a)Fw*|lFnoXxd}K4Y8#`G|QL z>`X_@ufP$b&lu-KK4N|YcJ3qQ6>!ApGsanxkC;|C#d^+&xoz)?@1^_*4t$p0qT{9(TZw*K*KPJRb=kGwtj9=}J-J0H=%8j1LKz<%4u zh_~N&5jkV5@3$cr``-i0X`B0f#P^E$KY-mMzbWhKk6?LMaDM{J*;jCX&bYDYn909@ zjd#EPnTUP)d!z3^WLS#$yJJ6-5Z44`3H!#QCuZ2+jtdaKmC5M%J(>X?m$NU+Z0qQ= zrr-H=^am01%|_x5=4AXy_RIo*2$8!8@i*mSw9DTVeRB~x`w&O&PH=1PE;#v@v)uE* za`xo66nWHt;}q7v1hI~1biXz1HGQya&b3{!1j>;{kk4oKJI-9 zSZ*=md6%JGo>$*eM9%Yy`NSTw;F8j@Ts-q&D3#*Pk^1(|KbibPhMXYxr z+V7wTy$;EL2kTqxjV<=J7JEm|-VE+Vntwnzlk*{GJ zcWcJ^cT;;SVlH{>dWUjR_fz0}-P^F`@^wFrZQboi)cp)tKI+~MmW#S~fXyXuUEfMh z>^m*aa6dZk$M@NZM2$hP+`;UuC9s@1d^>IDv5a<>)PHC1E_4NP>Aw@LUmdwW3pPjC z!(eN@$i2-%??&7s?{}g-gqYi0;)tz*^L_5Yma|W1O4~j@hc;GipCjl7;?h5g)~}A- zd%@-idmlL8=YDMW$lIrO9Wl4L#Kt-c2N2&sa(y1`9mE@c0W23Yco*0h`N(lM*td)v z2f_9iISzs4BFAB{G4g%ft-r}f5OW_!%;PtIFESPJ&iwAQ#eQ?{kN?}<51xd$M_=^y zMX+<_@4jb!0FiUQdGyIe-$%jy$YJ)cML&qhIe+f&N6YyxzL9sSj`)Ybo;%_n2Fpdf zKDqq6`zG4Xruo#7?-B3-68XLamWzD)gY&d<85Q-{)7s N#>o4dt?h62{{V=g=~Dmz literal 5168 zcmZ9OiIY^-6^Ebn%&>~=xI~$Om=F<+1O%<4 z@(biw$O+_k$UDdc@{D6+P=Q^Np zpouRe%_N+ zI}-iP{Z|$H8nrrRx@Q^PR~xRnsXYv!>&5Co)T>}qF0E$_<Ojp?m4Z=qT1NK37swb(!ZKf91Ti|xI5ug*ZFy0%u| zQ5*!q6p~};o)ovI^HHhxR0g&;wv^JhDI~}7ZOQ!3PNlk~Qrexm)BKm=Hl+Tx~7+G%bAEP>@F~)nA+Zt*ropv`aHxL z)%IN4E^X&r+pj|VL}okR+RnfJsBd49Kbfz~pAi5xjBsmHyy><(6c&@8^m>7B$UN`(4&z zcVoYG^5jy_u^QZoxSx0DEXu{*tpR%v^48bq?~E(XvnjQXFSEaGVB?L8er^C;Kk~O{ z_WZ1#^W|E=O?YqLMIJ-sjkWH>Xlq#8b88<$JHsxyf5Nn*-OKs& zcPetVzn8O}-6JiwzeN%6T>D!TwrBOXC~qHYv5&Xd{5-Q#Teh?(TwjU!<-*voP5ZB^7Z`?v8FMX(}#B;w-~>* zeuPXy&@YXcO{e2TTvG3tb zE~Zm^J&KG+jL{eU%IEvF@3^a{z@Eui=R;ecGy6Q^ypE%~_Ae1TIgXZ(oL9is3Hw#By^P~k?e#Up8r_Jo`ftz9 z^*UI8?DqyZ_S5Hn&Z>OW{|(ssVV?xM|G{id-U1sVZx6o5ZxQRxM)ccD(ZOBFZyI?tOYrlv1UXlMk*ckcsSxZmdi_gXXn9N(-`-&7rCh41(xeXqW(;< z{PXlM1N~t{ZWiKi+DFhXf7A4xkH~os;;8*maBFR6M*g|1_Q$|--htn8)KUM98*%>& z5clzpjdu_GxDf5K4`b#aa`qwiJQtzoBNu13cl-&&zSdEHG#&{Ee)^w>UXREPFlRmJ4H?&q z_D(&YoY=E%LgN0mfaUg)+kxJS$W23>3(s>kVvR+Jd8^UaAo4YA^RCS}e^0bOjaWh_G z9f>_|0?XZ&o%OR|IrDrwZRc?i?JTMPPHYujLtOfIqV=nz_RU~xgk1-_*HP|m26_lF zM&9p4dk11|Yl$Ow7@Y5O7q*;zI#b&Au^Vl!+CFbVe-3f!|2$g1I%lvQ1?T&` z4ci!b`_$fpSle1+bDf3T5#K**?FD-W@rHMR;ub1 zjjw>sk?-YhN2BjVtgX*FBhhyu6A|ys?@n9nH)nkOZ+Q=RJYtN#=<8mvbLH>8XT1-R zGu}G->1)+z6q9#@AF$=bL9Qa*7i61e{CQ8 AQvd(} diff --git a/data/shaders/shadowmapping/scene.vert.spv b/data/shaders/shadowmapping/scene.vert.spv index 55c36581b50e6ac82db49d48f28c87898a3c4461..4d449cb00a16fc0897d97166673f67c92e31eb9d 100644 GIT binary patch delta 1154 zcmZ9LOKuZE5QcjuPMifsAP|v30wRR62$5g~BIIF0V&1U{m^X1q49)^sLZB>X!3hEf zV8aEFZvY2i%Vm)GzHv7~Y3p}Y{Z;i(S5MEk`tPaQSbnY=LKdoFGVJcxHczdF5bl9C z=z}qSIrc{uzW-`u+3J_0`LQ`G1|L6kc6)oB-gXG%VWRAS+vsoY4E9zAgZDe~mCzry z^RL+@g-@4)AvB?tFjm~y2O3vm+#gO?erCly#3YpMV_=r}ICc$KdY1ntRv9JO zjpwk+r~V222Y|Jtp7BN*hHwFuBlr&iHAR^)DN^!Lj1@VU>-@*fL_hUCCblQ_nKyR= z`vmwyzM#jRan0ynq< z4ugF*WPAfyE5FED)FRg)-^9NO>R=5djp9~JB;q#ldGINU-odv<{tz4TL3e?ZdEw0a zFnxJ-Je~XCB1k8*9yxheJeh*)Gn%FaX^~>yOk;O`68j9ebKkKK@G?9H@}H?OegV87 z@~Q77zJ1dm^}WKEAN6tmn*=tSNT<-n_Y{2BUZgG11+K)s#_s|rN!)hia%_vU@+A1i d%YN(4&j4SUx!xK6+<-++?l;&2e~`Tb{sOhWRM-Fj literal 3236 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 BG64Vp diff --git a/data/shaders/shadowmappingcascade/scene.vert.spv b/data/shaders/shadowmappingcascade/scene.vert.spv index 612e8feaacc91d283279c02ad4fd593b87764c29..9f5c7a6de8f93bde39427d4eaecaf2563e3bdcb5 100644 GIT binary patch delta 18 ZcmaDL^gxJ{nMs+Qfq{{MeIsW$Cjcf^13v%& delta 18 ZcmaDL^gxJ{nMs+Qfq{{MaU*9qCjcfm133Ty diff --git a/data/shaders/skeletalanimation/mesh.frag.spv b/data/shaders/skeletalanimation/mesh.frag.spv index fbc7df87d65dd95a8133197b9016e8aa7816028d..a7314f28db7b86b427fca2c003e34bed5418f1c4 100644 GIT binary patch delta 21 ccmZ1>@PMC_nMs+Qfq{{MeIjS|#xpVO05G%!-2eap delta 93 zcmaFBze0eMnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvK|b^wNh8^r(s diff --git a/data/shaders/skeletalanimation/mesh.vert.spv b/data/shaders/skeletalanimation/mesh.vert.spv index 1702a0cb7f2cbb50e2590b8cc61ab9f5eb4c7907..c53bebb71802c074e066e0822a311826f46dc260 100644 GIT binary patch delta 765 zcmZ9KJ4*vm5QS&6iAfXCMmtdyA@~ObQLwTRAB|us5>4stXMDd+T#ed^ zf5JcDf3Olf-)66hvz)y%=bo88_a?7>AH7*W(UUgwENvNku4ETGj?L^$s0qHFgw{9D z>hD!A$6j$|ytKMJyQI`odeD~E%45ZaLU}qr7jd<)n)vj(k#`E7Flxz2N}Y`BTKJMo z`!j37s{s zbx(i?1RrPUln%k*eSsc$*K?p89uWU~s^aKjPSg`9ITY9cgln3#7TZyMBw*%1Ks%%p zV(>)ZRw^lh z93Y&2BQ|v>j+y8%#m@#8n+oh+1+MCX`$(u9-hJdjIUFF|N1Xmq++R}-)o_4tdS~iM S95Wl%-gL#E1M*AK0pS~Tms+r1Qko*pO_95@?vzvA$+>Q1eo*aj4v=5(+$h#XIxOnEq zuzeHu5a8i>kZnNnNAR;idIz6fSK=5x#VN$5T(Ay%0V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv{+Yygki94!C< diff --git a/data/shaders/skeletalanimation/texture.vert.spv b/data/shaders/skeletalanimation/texture.vert.spv index 276a824d694499d2fb7bc8fe179e7807f2afc3a7..cf371af4ea4dfdc3f7e2d843debdd63be44f0d36 100644 GIT binary patch delta 691 zcmYjO%Syvg5S=8pl|mMZ7@{B*S0e6(+S>T4k2XzBjjdgY6fLMlsp~HMg3>RMY+bo= z?H~9fg6G`iViHd7%$YNH9{E`QS+Xs2qab2PLFT1Dwfjz8M9zQ^u<)8VKMi^Rsu-J$ z4WInc%j3-hOv&M;cJw-K4Das8(co5bVZ3d=8S9j<0R~W)IVGiUrG6NHTLrUMMrc)0 ziIjdBK5wRU3;rU`^VBcFZ@^|}HlX!M$N&0H?BxgMB&S3*2&({}7G_<+=>fGAI8>j! zw2dKn@jk#D_OEjeQl2qBjAe5U;WLMv%9+480vI6p=%hgMvIqYdU^Bd&+6pFQgC_u& zI7LJBPXTJlSFxMjl=BehMw-9^z)kTE4&nOvFrX)B!6xU=yrSa%z*`>%k}2WxdihEb7T}K>kv4zgXE0 F@CW8pI@bUI delta 994 zcmY+C&rTCj6vppNfy$x_K~0c^Kv=Rd#t;*1b*fVSmm-1|?R3CNsbV25tY^WBCE-a( zx2${v-+&E|LE!tfbHn9KzTR`bbM86c?Y-B}u3qFa{&dzDPu~->d!E|~*Nib0p(N9KLz| z>L}X#bD8A5=gerf)(+c$qXW5SP+#TZzc=btyEopcH$}mOpt+``(Fh{Wq;a)-mdX0b zj8a3QJ_y*H;&H8PXDjiXR<^U1`Vp-gX*{X;i+s+Q6Ks9|><{%j$_)s!(n&48ta~?D z_LHHWgg|kj$M%0JVv$yKcqCc=qr=nE@}E+kTFmmF<4^fXhA-W z;N3=x4o_}f@?UCQ5(1$pAlmZF@)4V$Y~D$%$Y(f%Xv&87T2}>{v5}g*{ze9r1upDd ze=hO5KrMVh*Y+;u0_C}^P2s7)C8|f#yScAvqO503lPv)bV4RdwF_fF$7RCfy|1IU< zFuGZTO5qC91P7si2%nSN8k7me}BJt7uR6NkkBB<5Kn)<&G#AS3IYI7+!YxB delta 113 zcmaE(_D7AAnMs+Qfq{{MaUy4R7z+a@gS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy za!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2HUleA6$=9cLvCVb9s|S1RUC|)FEP#% F1OWRAAP@im diff --git a/data/shaders/specializationconstants/uber.vert.spv b/data/shaders/specializationconstants/uber.vert.spv index d6215eb52551e53c836505862df1c915a76646cd..82758e686cfd5a35ead56c59b5827cba399c672f 100644 GIT binary patch delta 913 zcmZXT%Su8~7=`!oWGdkxq==vr!a+0(qM$VGrk0gv_p}QU6$lQp@fkF3AWnM;aoVUC z=oxyB2wI<=jZ*(%xz}F%zn*=39eW#zx`FACF^&nDu(@tV?_wv$n5y9F321$HO#5Tr zN#w+9#rmTb6V!uW{i#uSxVvv0-QIMyYG)=;c7{2c6b6K>eyg1q_shx0MYEDruZvmj z$Hn&rDsf)+`KZ<kW9JG#9$)e1r6>gVOhZT6iAsB0UcnDK&g`2 zB_=HpgKlFo;%OgR{>7|HBZfTPn3~9%zyZK)p`sZyN$uAKnjty9NzF!s8^Vy#R731H z1$@y{nmXcZ8J)+)^R0Fy=54_QJI1y+8fM2Rh@%6{c4T9Aq!EK|V|K;S0rod$Pnu%9 z-s}>J0tW!IL3Z?#G@2nfzKp^(9|%(d*U#(VJ`M$R+t87(p<}kYrhAqP^K5m6b(gXqKsfDO8hy#`NAez-_oV%&>-G)qlBGpP)Wc zpQ?XatKaY5yX}UDwLSZJ&U5zJXYVuD(UIvVlH>?~N0VMsj1$QSI7yBrY}YM$ZGF^287vpmEE{xR%n>^Sxu_B{3ib{e+^4nuhZ(bd!2)JCvDALoZV}0K1gar zs^(IIF`xdy@J@fQ+wS7anP1j>MCF|MqPyAe_6N9dV|o5rub{-<13&t!3b4&a{>e<2shuDW`rJ zeblIy@&>9ku$c~?}ywe@QciK%vcvn{1U$74ESYcV->NB-pK{;8S&Qap=XHgVcf4?`tFG{ zrtv*9>SIqM2k-J0mLv~v82>#y^Nl;bk8f|p=6J2dYK-sx>zKp+cbL^{aefOw^1EO9 z#xo!L@0&7S;Nm-*B$s*Z?z0{aHGjkS8&GR*eiJ-P?Ad-7#Mi*iPhq~7>+JSjiDS+G z1$-;6`G&-<+51zNeRs|GAzt9*I`b4}&F!6fYkdxr56x@%YNoN!ypAvbCvn{K2IfBb z$mvb|^Vk|1Yx_1P=LqfszTA-t_fE-KuT^etec#30uikb0{0DJeo54I^jXB%*S3)HRkF& zkc(We;vdfS6FB)bDr;?TU~(~npN9y($g$8bRCx0Y{bI?hbp(GC-#GHsIGy4s)3l9P8>8*_~QZQ&bVo&ED0Di{6!8DB2q zckunaMf`1iIn5FAe=pxh24@U)#!s2$BHjc1YP>F3PIE-O-^y?LE}R-;?J$e~L3IWD E7cD2k9{>OV diff --git a/data/shaders/sphericalenvmapping/sem.frag.spv b/data/shaders/sphericalenvmapping/sem.frag.spv index 94ae6cd54b1d8dbb06aabab74546f6ef604f2978..3c721b2bc9741c7f7e302a77d12183635198cfec 100644 GIT binary patch delta 21 ccmbQke}#{enMs+Qfq{{MeIjT1#uHcA055$7G5`Po delta 93 zcmcb@H;12-nMs+Qfq{{MaUy5AI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv|FYyf=R92x)s diff --git a/data/shaders/sphericalenvmapping/sem.vert.spv b/data/shaders/sphericalenvmapping/sem.vert.spv index aefb62dc1b69728938fa384c5816093cff5283b1..3eedb6565ca61b405b9f8341c7dfe853ddc79435 100644 GIT binary patch literal 3036 zcmZ9NYjYG;5Qc~BW3;ii`t7)c6}=|Az#lS)IR~ z*ijhcds~CKUZ>YbOg`o-x+SI0^XMDBcHUVn@?VorEqj6e_SI#oZX_8sd)V*&oUadx z9+fqS)5p3~EPHU))9v*));c?!xBR6{zn#-s2l=Dx-FE&6k&LzM5c}4H9`b0qGqqp) zEpPQUlf9mLP;^5dP5r>1Pn~3K(-bq~j>8#fCgm)!0+ z?=&2zZro!KadNxkta&(2-MGI&#L4Z%mG^O0^s~_m+}t~w-~Ko=Cx9#TsZve4?~eWQ z9@?9g&W2t~Gc=y$dXl5J`Z`PMah7uwxvV#4!e`p)gENPm_X|#0&ih%5`Sg2{ zU-v0EeUvAV8thGQga~`2uDyxAuaf02RJyYh_Ggi;C+zA`qxt;$n9o{{@@r4z)Xjf@ z-B|g<=m!&D=A6XhGtoAT(x=XS$~)*|ZR$QZ?{%`ubr?Bnov3W)3j0gQ)*pBCxrYDo z%4WUV)teP(?QbFLYdzZ4{g%o_{&$e$t|yVLE&T263>fx*zw)tHA0pcu?dG?)&WiPV z{v~$pLVd21?YHN7`!^*7g9-UrXOhc5Z2Fuw2Ra(?_@V-M8r ziQnMR?a6$lU&Jmy2At7LWOJ6)uaMFCI0Bp@=SF{Ld~K5$of0Wao-P+<*nQMeFWrO z%Y0?5@idSZF6;6R5pxFF82N}fi!3i(yJJ3vGsZj-a}HTvxFW`0`ObX;ti{~=dI#&f z0M3Ia+(G?Qps#%N^CGhO?5B47<2x=Nd1jIAap+f&^%*0pd9MO{-8{~hf%)}`oHvop z*#eRCD`feIyM-+0w^ZmtJj+_t_4}8~ H&w>8{vxl|u literal 3256 zcmZ9NYj+b>6owDY1+?WRQc$s`6cDY(iUm;w+7wKY04;@z*Dy`SFf^U%N>W8X;Rk z&S)v?X9J1ehq{t9r|>x_Kup=s zGD%IZ__@mGfu$jiIg7g+O7OXudy?)_;!3V5j-ep8v~%_qRTpXR_1i1)U_BnFK&ifF zcow#7nD{|d-G1-S96X<-qqXF>7(cTy580Ob$@Yz8IEvCvylZ1F*mnB;T^sdqM_5gN zJDi)!Rj+e?=)^9|&N;9u!m@r%pYiOAoG!XQZ;PYuVjMbg3xef>dpVAtigD<~Jr^tv z?&UaYF2oiKin1kxNuE%PLJegKHQnp0?YL2T=hEdAoHRR?6sh4lV0+7 z=#ZDoUbfld%UwdZXElOOF6xc6vp5r$aoFLCe&m3oKl4L|qd#gPAAZO5%RVg*ALL0% zRqZw5gd&&`I`*3M13`wr5_H~wv%e~tdd!Y)HIk3782PB>q<)zR96I?AYbO@|xb&l* z&vQ=6!kJ(zBKIk)pS%Zrs12QSqp#VJ>$qgAbu!qy0f@Ef6cINnr;N0`;g4NVI>`aQ4h>1)!-Z}vx$>FJdGA8RK!K2wq+ z?RNf;B?Ic%&`wX-nHzd1aO7n^U4e!Frgr?vbxH3B&ts-6_|5&qnrlLEZ?yeSzU?vnYuB^mxNl=NSQ>W!xFbaQh0}*}yTk6-CnXIe~cm zu}=j4UCG4W6!4)|-U)d6oz?z8=>gBvX6yWja9YDAF%t^+dyKVh`EE#@P&!v}( z0-P=5FNrWd?1Eerko|U zvSa6r>Or?W%hEY#({D+}XF^%Y`;|bBrhqSY@}Ohmta-Oq1USAM!Q(OwLDw<@{DMyv2Pd8IJF( zJ?DGL_8jcR=lmd@XW_$~>FY-UfBsKk|0C4YmP{;mX4cXUM}3ppV}bXhD^MTbi=PB| v(|eMS2=+aBA{ifed=6?)gqmRAjHiQl04@~;761SM delta 93 zcmX@ZH-(>*nMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvXqYyfrC8~y+Q diff --git a/data/shaders/ssao/composition.frag.spv b/data/shaders/ssao/composition.frag.spv index db4f0de2e52cb66998d3e0055524b528977f7a73..b4b65b090717ca01a5233e22ef64e5dfde7dfa21 100644 GIT binary patch delta 658 zcmZ8fJxc>Y5S`8CF1f@)i6SaUFrA6fm=6?56AVdbAyFF%K}CZGKSGLB!Cw%I)mD(HT=Z_3wXw3^n~JMVBW8oHkBO&P2OH;b zBbhXup0W~Ec835~Z<`EG4kT9xYKTl-O~R4|w*=7q*lSxuHCRTN0K&iw_B75Uz*jBu zH8@#A-XMv(6~w#(^IJj85#-W=&MJIfiS=v0xxai~B<2sAMq5GO+5?r=${DJXH*y|S zl|4Cty3{HMy6XY|h!0nQUj)cOPrfj511Iep^+nx}HdRS~M31nS-4yng`<|or9zg8| zV6^uG-e?~nCYSe4VwUpTP7$(=<4oHbeDbEP4WC?I-^I1xb%p5vuxoJSpMr<*FCmxr I4kvci4>T%4sQ>@~ delta 702 zcmZ8dO-sW-5S?voZLJ3-7OA3GdsC}zO^YIeic$qZRQ$MwSVLO-X`=^EJ$aV0zd*bx zf{>HH!$0BGg9x5{6SE*Lyq%f%X5MV_KK3#m(?aQfB0-`TtCjjFMx|YI{b0j%?Y7mi zu58n-Sm$=fY@J=$kY)C_-W4oR4{a z-Dup@p>9k3Zekg zz#8CpBk~I7HWep7Li&VSUcxsmK$!;k__deP?nHMMr4IA~3EXptQvffS@5GF^6L}C@Jd+35 zm%Ua4-^GA`#IGtKF9OWLkG`;R36ak?`in9bHN}kVMa#H9qiNj9*jtXhj{){R0+jbj zz$@=l)XW*)#DFIJF$X1&@j5kDLC(Ayt0HI4ko$4zPqk6~Uv>$O`KRDRI>?zbyu{$4 F_yO-XSIYnZ diff --git a/data/shaders/ssao/fullscreen.vert.spv b/data/shaders/ssao/fullscreen.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/ssao/gbuffer.frag.spv b/data/shaders/ssao/gbuffer.frag.spv index 857181229770e1d785cf227b0e1f0e4ff4fa0974..c6b7e38a3ae7f0e5eb02400a4158e9b83c926d80 100644 GIT binary patch delta 21 ccmdnO_lB2~nMs+Qfq{{MeIjS`#w!VI05XpS1ONa4 delta 93 zcmaFEyM>RFnMs+Qfq{{MaUy54I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvi+HUN-58|(l8 diff --git a/data/shaders/ssao/gbuffer.vert.spv b/data/shaders/ssao/gbuffer.vert.spv index cdc5f6e27abd1c8febef4a9992f38fdc48d4f6b9..0a2026f77a221fe44a6adc8355c0017f74928cc2 100644 GIT binary patch delta 573 zcmZXSu}T9$6h+_cx<g2w+GuGb0ZEKmH73SM1UoAWyU0S&Qt}PKFA4hxw)qOd zkFXKEXPv2>&=y!@O--XS0UfYt##!z( z1fH&d2R(Yu6?X&l_~+?K!$Y6SGgpucBmgUJG_iF%5x)>P49%(C3i_pDYWD?d?ln2} zR|2_?=4}Pu4!LV_G&n>K{>ko4#{X+zbq9{sQv+wJ9NRkB-yN#XvzSPVA+xW# z15Ds?Y%k*Utl8^Vnk~4~N!1KgXKQdhDzeGA^*@ z=G=&(d?AUs0x*m(vSvBZFR^AL8vtusI9}FQ0eTr+MJnLwz^j8(18?|UUV-oyXSgAD c-2zxdodNs5;qDdWDAQ$@qs4z3k318;1)qq$Y7&LNN-5&6bls*Od0l9q(~vF zr7>!v@wNIVQdnzYBY2L?79aP_x##Zeo$uUFHj}WXY!M~4q~)WY(JHE!+>6eP8nI1`WrZet_Bo$4E}1_5eMu%p`lg z;L~xdPf(nzm?fT}`K;&Wju&WV=${(z6`BjM7vD=SUgjN|-()XB<@py+JqP{(D`rj| delta 593 zcmZ8eJ4?f06#bG~+X@||n+5TKR2)RaK@f$ybaB!}a0s6@RI9eJsi1VIB7$oP{tO3+ zj;-%UwZ5W%L=>!o;5jt`G2w8}J?G@!FG)T2-W&F*-2ovK+(GeD3Qs9cNk$V*A|w(M zT6}U`Gj&7eWM0?Ic{!)&wCrqJPv%V_{$^k;WK!Ca%%oOjO4o)42Mn29+%LowtD;O> zeQH{9>|J$6L3#DPshziiTZQProF`Nt&Yy<__W5hcVn3%P8!2F;dY1#}OH3x7jC z0xtlEz$l`ea12ndAhV8o(%`@P2lkwy=kN{#0kDk&@qkwVGt|AzHMjw6x|u3CHDRYb%2+lXB=Pjn@9rPKTGwC^~?7#6R Ghk+lOmTYbS diff --git a/data/shaders/stencilbuffer/outline.frag.spv b/data/shaders/stencilbuffer/outline.frag.spv index 98ea47465aa05cf9ccbfc9587bc2a5a8afbf6d26..368f53e281d3d817df3d9b299041e13b6d3a953d 100644 GIT binary patch delta 18 Zcmcb@bcKnNnMs+Qfq{{MeIutgBLE_v0`mX> delta 18 Zcmcb@bcKnNnMs+Qfq{{MaU-WUBLE_R0_^|* diff --git a/data/shaders/stencilbuffer/outline.vert.spv b/data/shaders/stencilbuffer/outline.vert.spv index 197bbab3b7c0e8166755ee4a564d7aa06624df19..ea2fcb854c86417e274ed59e48e3f7f20639e654 100644 GIT binary patch delta 18 Zcmeys{ehd4nMs+Qfq{{MeIw^{Rsbln1Kj`s delta 18 Zcmeys{ehd4nMs+Qfq{{MaUryZ@_+Hp7!qy4+16ZvBJ!4-;L)} z+;^^3+nH)x!+qaY)plOm_O%5s{l@6QSF64qZIrbEb`Wpx+U_^7SC+c`_0o3c?w`cg zcQr`q+f>*w`w4c9^IM^hys*wXR%3nh`^n}V$ysv)tNG=usqJ@2ZX5O{)&>{?*3{k% zl%3dHSj|=BF77}scx!CK_Wa(3HMG48Irn#zx-n5>H@Y?5kD10?w7sj?KZ0(*_7QXQ z?&R$8B&)I7?i+s|MEoUm_hTm0r7aizJVK9to26c@=Ub@e_br(J60g`e=cDNJ8^*V7 zFV^;Z8E2bDpDFEIczgfe=?oFhX(w=Y-oZ`co!KrRA3l4~^>K#bvlm_dCwYw72aJ=~ z$NCN6T%Y3Odl>@_pagdiy#a|G`hS{24nnZWQ=(t z<}A9rP$Fi5N&5cI0edmGzA^I)=)Of~W4{-HzVgn&cPtlkxPm@7hpTY%k@FgQ^&YQd z%PF4QyS)MA>@&EVC0D)2TX4qf@BV6Fug-f4SX&=^^&QJaueZ?$d%XiEZ%uRD1#(Kv z@*cXpP-2!5b05wa`G}cCmlw)l%p9CC)jNBDEiaUai934;XD{Z~*K;*l9|OFu#7zZl>ho4xeGmMgHgL&NuSEK$jCrwFV(j<0DyV7*tyNfp#=N^sk z&7C^^nI3ymD?945H@%YeDSmIR^@kcSBd;Pykq?otklV;Q(&A^5{a=FHX^Nk%xHgEf z)#LG%YEX?(L8i%<(*41m<=$wuHyZc;7N2f#bVSi zj;gm2m&KN!P~n)wd0KVGlUr}F*!!}`$Ly(_g}uST0| z@`!o&{_q6^(n{yS9zrQc7k%)8zn%L8$D(OhdmGuuzV(N7OS;6^qa%nlFW_N+T)XNG z&Q`{(e*yovcRSnleRZAn7fX)tVHk4%BF-FToVIcENW_V4#noKq*6#^oJ<(6=w};0N zSJ*SPnQiCB`?)-~ucd8IwawwVvsK#bjcr}~@zQUG8k}17gJ{$29pn)4)~@Y&2YW}O zi=S(3d+zyhY<+hkDLuIucJ%%Pr^fkJ=p(L}XE(dC&ioPBd^a(3?q!!>%$(YOLt+Q8 z_px`73B;V*uOY6(*!$V#s=4bo5DVNK2e7@rZ($B?-$KmuLyc}s5@|ZmhQF#`~5L{|&n5(UWf*TP*7N1wHD$)#znDXQAX@$Cm#L zQ*505aq06Ph_h`i=JvacyP3P&*cb5j{e9C*MA)aph`sX-&J%CX-ay2|=Ph)7>|yx4 zjV}HVJjT3(7$>fe`8$YxUBSnBnL#>;E3jke9b}@wW*f|VF2iJB-bIYp-*ad38N8mo zhnQaV|xZl88L@wj>iFf}R-S5HoG2b~vUvb~UZ%HiP;sW~ix44*nw>amq%UQaFE#`_@ zx{N-L)IF$Y?n;Bz_pfK^Dwy&5d%hEiS-OU9ZhfrPZ%Hg_T|nPn>vv${@gCo!i^U53 z2Y|rKcUmlP>kR)N8(d#k;MdXR5ifa`3cTc5Zg4SI@T{QABVO|SRN$V)9Na+nZr;P1 z1OFM_TCK|(0>7Dc^Q9zb%*`sgT*m2RZ*Q^xir8EKHabhY*?&XCm-uhyEdAbK;x6m9 z#+bD~(B;?9_v^BY#cckGE*AWEvcAQC7h6nm1^?4#me;`KxQobtn_cXGJkKJ}0ZP}A ArT_o{ diff --git a/data/shaders/subpasses/composition.frag.spv b/data/shaders/subpasses/composition.frag.spv index 9c568e1a7815fe0d7ab5d7704366dca520218713..9257020ccdfef2c0cd9afcbea278e251a0cfc769 100644 GIT binary patch delta 21 ccmew%vq6TFnMs+Qfq{{MeIjS^#v@yJ0X75$WB>pF delta 93 zcmdlW^FxM{nMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvY1ya1S;983TJ diff --git a/data/shaders/subpasses/composition.vert.spv b/data/shaders/subpasses/composition.vert.spv index 77f02b8bae8773a74a5f1a200019b8e1f32885da..4040f608bd837727d1051a6539a15338d11242ae 100644 GIT binary patch delta 21 ccmZqS*u&1r%%sfDz`)4BK9MtdCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-JWGXP!Z3; diff --git a/data/shaders/subpasses/gbuffer.frag.spv b/data/shaders/subpasses/gbuffer.frag.spv index 0a72ba9df391cd0717d67a587fade0d415d53327..5247445a8b54b502ee21893f2ee324d15522dc89 100644 GIT binary patch delta 21 ccmZ1=aD$(dnMs+Qfq{{MeIjS`#w$MT056mT%>V!Z delta 93 zcmcb?zd(SKnMs+Qfq{{MZ6as0I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qq~sb^wI48@d1h diff --git a/data/shaders/subpasses/gbuffer.vert.spv b/data/shaders/subpasses/gbuffer.vert.spv index 22cb7c55aa4fe1a7a0c0501a4ae333012b4b3a13..cf2b5b45eb3a357c44879782bd258cd9e910f5a4 100644 GIT binary patch delta 662 zcmZ9IJx;?w6olW}m{5=c(E~~fDmsJ$At8SdejI)TO-dx1NFkOYC{eBu-+_+OH=yAZ z9D)NNF`rqZh_%MvnfGSA`{wJfYvnMgmdu=$Y{dp?`F68oX2-&ra4y6`s3*|(-C6qa zIiMwZe!5JikN0EkBRyC~lRqifh)`cQ87EV1r7h)=qsgy?FV4Q)wrdl)L625nZN$O( zE1W2}^PH0{@;DoYZ*EvuYgHxULSak1r!TgOKpjpzTG3BD{Y9Pl#d@5*L_5JO(wNNl zg_^*+(%1+-5YPb&GiSfi74g&sJm`hz(CgG#|2++9c*w~;Gi{mz1;8py*S2iC;zt69 zA)MY-ueY?Pm&4L?r%BM?7Ft46_uuop;cH!SG&sJ86TKK6p$L6}P&8_(Zi{{@V5UxR T$7@B>v0a zev05;F&E+un|sdQC;Ob6oA>e8iLrDlH)M>XXV_fz#x83I#+YN_T(}UbLRwEs`yk@QI)qHnxVgAXxdFX}T zle7xDos*#T=rt4%=sA9Sb|z+NE~Okaf|f$@nP`}L^N*sk+W&C!P7#x7YP2dUV|H@p zCC7?fqenSsO6Jx6c>2=`=TtfZ8uNRK8H8rkRCOuT?+a)fx{9SZFT~oRayaGn=*1Hy+#;qJoeG%J46Ubs5B^Nx YWps@BGvF{rzZAG_H2wneA2}@xzm;%Q1ONa4 diff --git a/data/shaders/subpasses/transparent.frag.spv b/data/shaders/subpasses/transparent.frag.spv index 74ec84801f9ecd62238ce3863acfb1445186e84a..c74278902180c7c247cab4bb79cbae67d4a29a3b 100644 GIT binary patch delta 21 ccmaFDKZl=_nMs+Qfq{{MeIjS|#xoM^05A9ikN^Mx delta 93 zcmbQk|Ae2DnMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QqyOb^wAw8+ZT! diff --git a/data/shaders/subpasses/transparent.vert.spv b/data/shaders/subpasses/transparent.vert.spv index b5ab165dc2ade21deac0a5f57caa280a49f77398..27d94ea3ee4f56ddcb241cf8bb3790090bb0a616 100644 GIT binary patch delta 21 ccmeyvw}p?BnMs+Qfq{{MeIjS^#v?n}05p*WO#lD@ delta 93 zcmdnO_lJ*@nMs+Qfq{{MaUy52I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvX+Yygpp95ny{ diff --git a/data/shaders/terraintessellation/terrain.frag.spv b/data/shaders/terraintessellation/terrain.frag.spv index ed8f0e82efb9e7610b6b1ff50a14100338601612..8a0d6a47b05546560cf83402a46571fe531cf990 100644 GIT binary patch delta 10 RcmcbkGDT%V&&Deqf&d%;1oHp@ delta 82 zcmbQDaz|xCk2?zkCxg3Bykn44d~s?)Vo_pAYJ71 diff --git a/data/shaders/terraintessellation/terrain.tese.spv b/data/shaders/terraintessellation/terrain.tese.spv index c5bc1384d690012ebf6acbe3f19f077d8ec760f1..cdc6193d1efdbb026fb67c938cf1b1a11c7c0f21 100644 GIT binary patch delta 10 RcmeyMu|i|QhK)ZegaIC@1zi9D delta 82 zcmZ3X@j+w426q+)P6l_Mc*h{8_~O)p#G=HK)cE3z#FW&c`23`-)Z~(41_op`K&i~U a^!S{_y!6t<^wfA0BZGp(>D}@1px*SUY diff --git a/data/shaders/terraintessellation/terrain.vert.spv b/data/shaders/terraintessellation/terrain.vert.spv index 25df7cd04c168f60cfef5a9489ede8fd99045fad..ce67e25d2b6d40166b599e2dca0e68d89fb3d62f 100644 GIT binary patch delta 10 Rcmcb>*}*xXVⅇ762F81NZ;{ delta 82 zcmeC+yudl3!kvYIlfm65-Z982zBsiYu_&=5HNH3_F(tJqK0hfdHMyjifdN?!P%1Mo aJw7KfFTFG|JvH9M$eV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvu|765*f8>#>R diff --git a/data/shaders/tessellation/base.vert.spv b/data/shaders/tessellation/base.vert.spv index e8069e99f02af2c0184c1a4d2f8a7edf9274a10b..5d393b8f8f2550f39ecefc509142426f458ae6e1 100644 GIT binary patch literal 1160 zcmYk4NlODk5QW<$W8C)`cN3#0K|H7kq9O|MAfkv~CFmdx<3y4Ph$nxWzsif?`+B-V zI#jCPtG#-Pg+|$!AyYOZX2;}b))d4TGj4{RZr(iH>~*u(y@SJjJf=+1IpQ-dFHTAF z-m)q8Ny(gKO|mYjOB#}*eg)|t1xAV(jEPi>OmE5aUEFz!J6ZfGC^qN0V{3P9X4|RQ zvh$}0$J;b}uwOBL!A33FE))B4WxH7`eTn-vCcxH9lD;icfAr3wKW4D0N;(|5dD^|~ zw%vJeC7xqGoAxOe$Gq};d~!Y|H@i(8G}rRTH^zSR6F6ppLkEr-;OIAS+~L??Qx@*{ zHGR(;x^uw1!62qzFg38#>mcTxz~r0PKf10O)a1UX+pu&^QdPV@9*60rB0M5plW=xD z9@U+CYriImG;miKI`(($lIA>4=g5DjX_&)S2bLs5NBovN;?X*Rx(m<{P0wQn{!Gu99`o3LT$JKaCsjjF!f*xKGiF=-3_o z-fI-f@?P9e^4?w2OXIDdo43iue`~AK+qc{5c~o!o`tfO6o~LD<-V2Hy@Z5u%$NHx_gs78l7Dm9L-fFuPmzy}(6^ zjmh(e>2J?t{wdtNFf&9l-u~h72i-Z;{wU8|=&3g;j~1SKVD=pH(ay-s9uCnj=tgen zXUXG`4`x4TLOu3FJ>LH!Pfd0}y|40U;n9QHUFdI3cXC4<9C>a>|BgEBi9^nln6~`B zSbCb4G0$(Yy!**>a@CmW&8(reV|Uj=tCbX Zy0Zsj><3JYxz=Toj2N?npEdQa>;(qUNi_ff diff --git a/data/shaders/tessellation/passthrough.tesc.spv b/data/shaders/tessellation/passthrough.tesc.spv index de402721785b99320303acabc1fb7decf6a35a19..306d9024c2609f466736da16e8f4565e0c639c17 100644 GIT binary patch delta 21 ccmew&v_^=NnMs+Qfq{{MeIjS~#yc}O05od_R{#J2 delta 93 zcmZ1@^hJo1nMs+Qfq{{MaUy58I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QuIGIRKU996ta6 diff --git a/data/shaders/tessellation/passthrough.tese.spv b/data/shaders/tessellation/passthrough.tese.spv index 7e91dca63fa39279803eea6a40a5782c743d87a6..45bdc9fa1ed8cda811040b799801c4752850e272 100644 GIT binary patch delta 21 ccmZ1?aYvk!nMs+Qfq{{MeIn=djW2At0Ws(W0RR91 delta 93 zcmca3zC?nPnMs+Qfq{{MaU$n*cNPXt26vx$#~`Qp;?#n~qQsKa_~MMjl+>d5{G_bZ lV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvUZd5{G_bZ mV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv`|Rse%x8@d1h diff --git a/data/shaders/textoverlay/mesh.vert.spv b/data/shaders/textoverlay/mesh.vert.spv index 004270ba95e8b89346cf9cc6eb0f60c67331a8c8..9fc041e777b54cfe2bf4c87d42b01412e0714db2 100644 GIT binary patch delta 867 zcmZ9K%}!HM6ot=iy?~Ss$TjH%42f}U2m>JeNKq&#N(%}KTz*1`nwT&E#(f5IpMXao zeFG=H05hJ##3{t@E1Y21H>+pub@tlX=k#3F{ywXgOD}puNJ4Mu3kT=bz3fW}AqQo? z66>!dT>c(RUM|6ZHjhtOLds{|@!9Fhk8j^kH;xXwTHd)y#*#s|o`W)IgeM{I)XUdN zIs$DJqiI%MW5eDm>qRTgx)#f)Q2JQ&;w&9c8?dF$Wjb1Fry(Pm>6Y+AtWwD6VHT(h zBLOyVF_NCwU<#;5&m3G`7>_-5G(Gm|dfJeA;D#`wsTq30H2E9gFmu4#8P4K>Z$SkN zP-ngX^t!rt&Ye2HNt}cwno>eqF?T1T2XaYBc5l!(xYyK; zyWYiZfB*6(sjV&Xs(hSk@yfr#)ne-{_$v@wZ^PBLidLmIxdYRoYB%4nT6FKi|99_^ WtL+vSmD literal 3028 zcmZXVYgbc86oyBVpr{os_0rnfAhup;sa3q+fU5D53J9ckj|Vu0gCSuhVd*zrtG}TA zN&YIobS>X!&TJj&xHhx*yZ5}aFLPpPU~H#zJ6zfAa&1?v18zWwb9>yN-)r@S`b4k4 zIx%_SED`%$$p;cM>^|{&S${Xu+*1rm-{XDG9ngMAazc_x)+HtV8_@nn1Z6kmYV~CL z@l4XoHq&m}&ywC+x|(&9&hmP;((ip7BUj#TCatvH+)A5SGI{RoX1em+Rm2qMP!U2N zovr?(PIn`1Ne3gZy!{^X=Z1^8rG}3w`<(N(H{~C6p9ycalDVwg$h!UPrA(m(j*hR> z%lmn!t@x6!7aaWy?MpMWJ|3O5+3ipn;le9EhF)%TRx|R1n^=0(%A0F_u}k%QUuxf4 z?np2Dp62bs$z4Clx2aHkv(j7d&sBWy)r&fGjci3R6+a7MjXZk+T4?gaKZ=ZI~f)kI;%#4qIa@PFV%+UBo zq{GLzbWEq19T?mPwZj7jH#Xlk*g@HcwO1u@jR*UPbk-5spKFJ!;4WqZW;k~ol}#i(N#)&02zG-_K+|755eM5fs zy%OHTO`Yc5VB=%HpGuf5KHdQKwAkq(Z{b+iUt!7`WwsPI{dGdD&nr%YRZjSe*ZbfW`S=6vlbt@yGdJlFi-3 zkSntWvs^Dr-=6CgVc>h!S^9rfLJssF-(r~MHR<@~6~_#2O2BLxeoKJiMJ+}ARD@HH z#ZL#ESeD^4(%}J*d47uUnCEuD!C1y~M>;&gsCwNb~E#PEC4rzJBI zaxnb9bnfOJIKi)Le;|R2bHvzNcqpCki+*!oT|!=*$H!X)|5*YDe)|@|Y?gDE`Z&f<{#4$g9XTj_pJd+M){7vb6ug1S79SmU^|KH(#dV!UbnMs+Qfq{{MeIw^_CIBOE18x8S delta 18 Zcmcb>dV!UbnMs+Qfq{{MWh3WtCIBN~18V>P diff --git a/data/shaders/textoverlay/text.vert.spv b/data/shaders/textoverlay/text.vert.spv index 506468d2efa04317529d71976272cafe38fb1640..07b9000aa0d947dc1f908d13706152457059f77a 100644 GIT binary patch delta 18 Zcmeyv`iGU1nMs+Qfq{{MeIw^*CIBg)1M&a> delta 18 Zcmeyv`iGU1nMs+Qfq{{MWh3WjCIBgr1MdI; diff --git a/data/shaders/texture/texture.frag.spv b/data/shaders/texture/texture.frag.spv index 823fc799ad59e4d370ab2b25a520d14954aa4ca9..971d3e82857b2c3986451e715e395faa950dd13d 100644 GIT binary patch delta 21 ccmbOuaD|_fnMs+Qfq{{MeIjS|#xnuz04}@)xc~qF delta 93 zcmcb@KSzL*nMs+Qfq{{MaUy56I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QvKwb^v|L8=(LI diff --git a/data/shaders/texture/texture.vert.spv b/data/shaders/texture/texture.vert.spv index ce9b686dcedd40b91ec4effb2fe2c4514d140da4..153cd5ddc93c9679f1bac2a523acbf0b333ec43e 100644 GIT binary patch delta 1046 zcmZ9L%}x|i5QT4d&kQUi#$aO5s2DdUx;4=lG%O672s8LI{-L0NfHIEC;III!LVtg7&$RC5IyueM8!hGw z*##ds2Q0jR)W?h)b=(_$FV5$^8xXTlrf1+Xaf|aA(5?{8a6Sie0d;qXEn9$y$McNq zoP>W5Y+;uC{&2q4KH*&KqEejZTp4|B-7d;zI!@3Ai$H6$E1&LE{`gMbHZ8f#uxgfp z8u`%NuX*pZ|1}Tb)L5s|lsFH87eWhBhaD^tKLR#madYRG$p#+-_jgD`#!rB`@;BMe z-I~*PdUrWb?pe+kU>XcBO&%*>)1nsoQzjhNF6OrP8Q2SJta5waTfJC)TP>nh=g{x8+Kpu$SmtQY>dhW8K$JJZD~-x* ztvz3BcWZaGGdFpcXRS`XOwRcB+ogVyeT~r8>I|s$a;v>sHD@_zQg3ciCAR?AsIT1U zW;rd&ZQ+4(j`mHn`Px$H=Un0DDPO9XO#MFs?-JX8vAq-fMgmWP?W=15nc{EY(UN_b z_f;Q?5$Vq*${XaySDP@ z681Zh^ZYUP9Y~yu&0Ws($JwKxW=q~NwXZI}pFQA)i;Hh*Txrlu? z`q<;k?4Ct@bDKe2k-P88+>epDwpB!%5bccXdoxbpjf5lbdtm!y-uIJko@aRL^3K_1 zjDKMKCXHqP{k@BKWsUwm1@?Sl8(vKKJpS74L41oBi0+#ek8^{wKZN*Rd=uK+gTsit z_P$ZE_RiXGNPFLa_Rjr9L|$xN|@rm)G)c;_|+|2dBUGp67i#2ljq# z%-QegJaQbdF6$O+7d2f%-(J%=oP6Xzfu8680a(rz`G1Hmm*@Xc;`-QQ?jNJ;uf6Aa z{*z$u*2Y}@9(r8wjeZK=p6h3D^4HRvoko}2!wYpDpCjfpf_OFuKgd3dcor-8If&qU zwe;+-WW4o+{nf;4>k9rFdfc7Ixt{TPocYAdxgyRN=*E%H<9wO%p3PE~-{@DRu76RO zbMRlIo2z-5L-60Ad$;!(Q{LatZxLhZr%k+t@6rA3^jr153ZkvNGxK*?PJMyBio{!6 zLf<~WWjOh$w}vhkEBGHEg3tS~lJR*zZzNt@SH!8K8%I8mb2H=fIJXin=ZZKDbmPe9 zaaJ?lv*>dZ-P)|foP%$no2z-5L-1?p-t9fcjJf=XZY=$@iMh1V7m%1s2VGlvXR*jG z7xwGua$~jBNc^3H(Vs+}& diff --git a/data/shaders/texture3d/texture3d.frag.spv b/data/shaders/texture3d/texture3d.frag.spv index f8b405e11c7319372906df3f549278d38f3b0a45..85811c96c67348ab94a229534a2e4f33826a30cb 100644 GIT binary patch delta 21 ccmcb?KY^cV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qqyjb^v*a8&m)Q diff --git a/data/shaders/texture3d/texture3d.vert.spv b/data/shaders/texture3d/texture3d.vert.spv index 80e0acad8ea4b976e01963ea3f18c6dedf9f43f0..86f3bc0020b6389aa654ceb2827709169ca2726b 100644 GIT binary patch delta 1068 zcmZ9L+fEZ<6ovP6O3MW`0b&S&aELc1c;kf;Lm+rX2o#EkDhHKQfpTbt7Dlh;h8Jk& znuj3O7x32jEIxsW>l(OsL337ukw!}^=&6cZFXxW0}YHcsg zq^h)Py%r&*TGTD)o(E4UJSK41g5}dD;Q5SWg@+lBy5Ga!K|G^`NlDlPVM@H9=Z3&~ zBBmSKrhw+a*DFq!lyuH9aOw=|*$`-HLcE#94>EpbHjpNBAO$2?lsqde^{*@9Skw_c zx4NCe*D&reysJW4V6CbP5-Vx^Zx5ZjaPFFBglA2_gYKSJna&>TzUQ?xJk&`&v4S@O z8-V4eiUzeJ{#KwFijzC58_?i8fgyL)5d6JBF8Z9Nu$XDY+@68IR4)J72Vp=+9vA!K zkD1^%`y`IW@|$fdMh7f!(mgxU@SwYAS1~$Zv3GZZdfo8E|HmO=Utj~U+~m`!N!u1E zPOeYmKry%UX&fph7o7?4F`#*VT`}6Mjpx(<^H^kF@a|6(qa7!|N<(EnEi9;%<1IyF zpuB~j1qRv>ID$9iTtN4V7nydR+?0lfTVnHfcH4^4TAVj=sfc`3&f_aU`=fzO3x5G+ C6<_NB literal 3588 zcmZ9Od3TdV6o+5v0t$kNEN)m@cMuT)Q3Tq$6tqIw>Ta4gu?@6IO;T2sYW)D>NAgqo zkLUP2Z|0Vv!?~S%fAgEW&YMHu=8-K$v59|Mi$9Cr+Er}EE{bi%V7X6BUY$JB>DG=M zKXFvXj-sz5%GrtK>PMEUji&k&$aZ8H@xle<2c(PKMb?l${%vOe2Pgg9n3$}LT^X-* z>dV!3wOg-r7OJ&+yV9DyQJ?E}9_Mh>XwFv_tIhe9>U_O&{Mgau>fFs@08e=y+UC+) z>0X~^*EX+4vox{$il?!!k6)tF!BWR8mfJ0(Hd<6O2uqH&F12d)MfSkV|5l@Zd#cr0 z$Lvh4zT914*Z(u@E3+;1f#OB<+pYFu%?ssuf7zo(vj+^|TY5R(q*x&SK7>(Oid0YzAzxF~88wa+(!ew+G6( z;cHUbbbYS8=N!SNDPO3>oU6Q6ZM;#X!im)X1K=)g`>$<3&tuzL*8p;!zhRG*=;Ig< zwLFh|`pEBTdv6p8Ut*8$_53?Gd81q2RZdzeJ|P|`w+4ZzV&N+K7_qB z>Efr8?RVn2{3qGv>r1|M7)xBfwsRDdzk^-A`R?cMPIfWv1DrThvA}z|^%uLqjN!R{ zwe7Xo9_-!hLx^z>CHq3-;;YD`OwIi2H=q~x@ z>bu#5941q_RYXom`1L*MCv4wS__fFP5c_DJ_mduZ{(&vmUU*-7Enz2l>)vzDE_wfg z_)W@n9{%PF`nLH9U4dUikJ!1N>lvQ=nNGNvEBt(gt{?H-&(|65 zS$yl?l)Cqe!kh#D7TsLU%Nzp#4&B(s(Wkh-$=@UT@}8V{%Ri#~d;F01wS~Qc$Q5^H z7ZRpEgI+~qesky>=T`$0k9zCqVzC1M2_W#i5AzwG_j4iPa$Vu4fvz9%+|P{+&;8s? zxR@*aETZd2JomGd;hsgGo9NbN9p)T(3*B7J%Nznw8GV_%-1X<2P(E#T7Av{{UV~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_QrNiE&!HD8^-_u diff --git a/data/shaders/texturecubemap/reflect.vert.spv b/data/shaders/texturecubemap/reflect.vert.spv index 42f0bfc4485e27d7bd407ef3050a4be1c02b87a0..9c7c86ad28beaee607ad4d7c206f4b9858864024 100644 GIT binary patch delta 926 zcmZ9L%}!HM6ovO~xy3}ANNS=E6#s}J>cps^2vYp1KNSjEaEeN#3ED(pk@D)>+ct__3}ro*4BZ3x#Osrf5ytoj8hS>^M)Fq z10Oe#FX!y@*OIRs^2MuUF-8aIvCfhik-Gtu-4r6m` z=Q*1LF642rzxl6op%6hCpHx@Au09Ni@+Ag5ZsyK#Zfw$VCKAOfq$ZQ{&NL4mC5V|D-BU zpikhVr1DhxW0mXc?oCc;YSVkIUVHcM-F>FiH}a8ld-ONp{&ZpNcYVUned7B4T&pkF zN4vfC(TT}16rZ`07oz!Gh*6epBv~8(W7!GWm$Gr$E!iE}yzHUuv8<%OKF$9qN!bm$ zTD>uQf3DF@Hy%$$Hvp!_&y0qxOjH5Sv(YTD_guLQ*g9-p(Q1~y^x9=dwoJ~6h(A^Ge{{l_$ui<;0M*UTC``M}%(9PwyR z$(-B1iGElfv3BM!BDQ!icZP<1VD1de87KW5u;srjj$!-XlF$C^SJO-^b+8WRj^XTl zcjeppe~!NO>t58-58}bR3F66rUo&T+eyit!eCOW%ZFnW%nTx6d-Kvb5(XnRdMj(GH}bAG-Rcsu_k`Mb|QAr5{?x5a&3 zk-^z8{;CM$LoGpnt-w={>90o~EyMUJ`Q(8w=J}z(7xPR<9*$voZpbGOd@;|>0?*oF z{H|u?b2iRF&Bo8lr&j8s2IJ@Cvp4&Y6Mjf7-9r;DZUGV$D+oSh&89aJ^hro7s3-Wj0-J&@7y^7|0T$0g?VHs=W;r9q0e_1oX xFZR|S$%ixit9;(fU-1mT$wvcE{6o!frvF_&`q%N>|3f|;+Q*u~?^V%N*$2zSudo0B diff --git a/data/shaders/texturecubemap/skybox.frag.spv b/data/shaders/texturecubemap/skybox.frag.spv index 054064b10546fbb776d0d8825bd20ea1d5d739be..54a894ccad057de259cab4c5e03a47bf8e3384de 100644 GIT binary patch delta 21 ccmZo*-NC}i%%sfDz`)4BK9MtfCABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>oYMgU#A8=(LI diff --git a/data/shaders/texturecubemap/skybox.vert.spv b/data/shaders/texturecubemap/skybox.vert.spv index c3af130b4c923834a99328fb0755bc10fef690a3..52290c713a5218c1495a899c879fc5e63e086dc8 100644 GIT binary patch delta 21 ccmcb^HHC|lnMs+Qfq{{MeIjS_#w{yY04`Sq(*OVf delta 93 zcmbQjb%%?SnMs+Qfq{{MaUy53I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qvd$EC6zl8@m7i diff --git a/data/shaders/texturemipmapgen/texture.frag.spv b/data/shaders/texturemipmapgen/texture.frag.spv index 6cfb6762190250d2b4d97c94f285c799d1d3a984..52db9580f46fba7901ec2b8da5a360e6b6e9add1 100644 GIT binary patch delta 21 ccmX>h)F8yk%%sfDz`)4BK9RG2CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt-Yg2LN(J8?OKW diff --git a/data/shaders/texturemipmapgen/texture.vert.spv b/data/shaders/texturemipmapgen/texture.vert.spv index 2aa296c80a0dd4eeef0144d086030ea8dec9e85a..234969ce0361e77ee4d97ce680866700066305d1 100644 GIT binary patch delta 691 zcmZ9J%}N4M6vxlZXtv0eh_;DBTJ*7K8H9nW78z+Dnq_6FsU=8c%W%=MHX=PogilZ} z(6-0u1%iJ6aR#D0{J7`*&&R#@%-8I5I_|ldn3-cSo3`#SUQbobtOgD6_+0i6$KF0~ z9j7wNxrwDJO1IN$_Y1u{OpEf>*n9W=yyQ}|?rV+lgZt_%sNo!_(UwL0RQb`sZ;W>$ zPwrrY&@z(J9azDiVm}45@AuF@^L?{bq8aRSP>yt=KHKay@c#Id_e}aG(VIbhp8PAb zQ8|`%s^gbf(i=oAL2wTWptZ|%bl5&f7h1Zg-c{r^syP7FNDpfc16?t#|1~8v)u@kO zGr%Z=0zxY+D)8ze{t@UhYOdTYuh0dLK@%KuA^9huT)pjjPTNz&Dz#x5;KoDo_J(xB0*hbGbn>ESdwfz}=kXHsj|csepX;Rah7(shD< KnzSDVunxcLi9z!K delta 915 zcmY*Y%Syvg5S=8p)rGhyf^NhjE_^IR6a=ZD8y8ls@A^z)Ow+VAscBtj;lhP(#19ea z7wA{`8UBFaIVKn44Tn2(X6DS?d)w!+ukm3+pDKuG_y#3<8FoxdMCw2jF!1TvKQ)m7 z8IsM4xxT+)cHNF0**(|nHtZWWGQ;bp>-4(+a}e?a&urU)cW-;HxwN>@v7OfY@VwYTFC-A0dSyAjKd-6=Tg7f&ka23 z@f<>VQ2PMaD*RdO7Jy@jir>H%`Tm$k_7p4^Ajdj_bz9ik#>n`|y(BuL;9F^Y68SjH z>qw!jIsNUzs1fJ?201`N6;NvrEC)OU6wkpFf0W^QR>dEuJaf4ee*&92A>L-s_7kU7LjLD{+P)9pmYWJ E1?M+jj{pDw diff --git a/data/shaders/texturesparseresidency/sparseresidency.frag.spv b/data/shaders/texturesparseresidency/sparseresidency.frag.spv index 3e8057e754918216eea32a31ad1a454226e97718..a652e319226fdc14af869827a3962c6df6db7958 100644 GIT binary patch delta 18 ZcmdlYvPFcGnMs+Qfq{{MeIutf7XTn<0>A(O delta 18 ZcmdlYvPFcGnMs+Qfq{{MaU-WT7XTnh0=fVI diff --git a/data/shaders/texturesparseresidency/sparseresidency.vert.spv b/data/shaders/texturesparseresidency/sparseresidency.vert.spv index 160b09398ef700e0b30fa89463bd58879c8ed2b2..a0fa11922c63ae10e85c2e85075e0b9df69b9591 100644 GIT binary patch delta 21 ccmZn>-Xp}x%%sfDz`)4BK9RF}CABC%KPf9U lxulqZ0a*=DDl;!VJ|{6Ry)-dBHQvO?pdc|hdt>uX4gha{8{hx{ diff --git a/data/shaders/triangle/triangle.frag.spv b/data/shaders/triangle/triangle.frag.spv index 06ab7a2fc2398c7fe17c45bb65069587bc9af78c..f67f201135c138f22f9bfb7bd9b0a8e1c9227e92 100644 GIT binary patch delta 21 ccmdnP@`ag`nMs+Qfq{{MeIjS}#yt&;05Q%4>i_@% delta 93 zcmeyuyoZI8nMs+Qfq{{MaUy57I|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qv8yMgWJM8`A&) diff --git a/data/shaders/triangle/triangle.vert.spv b/data/shaders/triangle/triangle.vert.spv index ccd02c2b9d2b300083894ef7b6bd74640055185f..552792d175683ea3e8b91a39a1daa2e90220b22d 100644 GIT binary patch delta 21 ccmZ3&eTR#anMs+Qfq{{MeIjT2#vN~1058)8FaQ7m delta 93 zcmcb^wS=3KnMs+Qfq{{MaUy5BI|~CRgS$_>V~|sPacV(gQDRAId~rr%N@`Jjeo|Iy la!D}*1F{;RRAyd!d`@CsdTC;MYP^Y&K|x}2_Qw3TEC71)92fuq diff --git a/data/shaders/vulkanscene/logo.frag.spv b/data/shaders/vulkanscene/logo.frag.spv index 5cd6d8ac15baa4b6464589428b71ee0de04146e5..94bf9b8e3cdfa1611c48d01450297bf73e4d781f 100644 GIT binary patch delta 55 zcmaFD^Mr?!nMs+Qfq{{MeIlo~A~ypAg8&c<1F;kkn*y;t5DPFcGq3<@_Kl_QSpl+N B1{(kX delta 55 zcmaFD^Mr?!nMs+Qfq{{MaU!R;qCEoxgD?bCQzsfIG`8+ezVJaupIsLwUIeq%{BvX^K`%{`o`_qB+U8>fRGzpW^!PGAI-r~yQ z-1c~5?$YIpdK^wurK3L2^5fcvY_8=)^;1X(nMKYb?;-CaSCN}Y59uRQ{7ka{L!uTL znmJl9Ph;CGHnKrK&wfE~;eUvI_4X2#wM!kCwnoKI+4?vyIK7RRKGs&ovIpl`!(z0# zHh98$lb@^fyE(06kU#u!yj5(YmggR3-}#{^^%v1KS+jS|hs&j-*n1Z{<5lnH9qd6q ze2_hwFN)Dd#n}^l?$xD~e)cFI?ouUZ&+wZs2E_;!ZeQ8Md{|K}D!vZ?aPa+dHtJ`i zarQ_*dn51CR&3{GbK1PJyuB&;d^ldof6Md>n?1rdKghT4bsA zTZjJUo5s`G($*AxjD3dPGxfPvW8X&Z7}&pfGspyTzQ)d?xs5-+7ugzb@)>KKvik#QqHx-y+KSdLD5moxAJg zaMq3@^5Js~T_0yJe2$~b|3w~SP9Vm~-=H$jx zf9LO2WERoZsd3czI@tQoA#vUt=<@gL{O8f-TuW5!%w0g_6_;~keM9f8WdBqhm%S?*j#5;(!m|I`(V11VmzXy9HzKrNAe~4JQD~S1=N$vK> zZ%{t+e1PtEqs{M09KE}RZtuEC^zJsgyx6yyM|_WXt2^lW$eYKrKSum!x`^k9^^2Sf z=*{>41l-K|DOewQ`|mgO86xirZV_G1I|ui9%}uh~Q~PocF7M5~FMIavxxuN)nM2M^=)c1*cKJH#CWW0l>MDM3G`E^_ zqj7g`{@N8hj=L%Eh|dXk((5Jt-HnnIa9(m#G9#%=YLZ#W9m%@nJ4r**k#r?f`fpPE zKT23~M_i-XUbwf|9>s%b7>(oh=yBAIhwW_V$G9^d{ohBXB<;2PQQF&!dU1RH>Xkv% z`N@@)DXgh1<^`Rxn|0%UD~W%RUe>wCv~Mr2>!ua23%bEDz@5fBZuSuI*amRDam-6QqSz8uY@$)8bEzN5Y z>)fjPz#Fs5l2!dROutznrw_)xr;+{$@4(|E5DRE&O zn7F?s76*3_m*0mu#E)Ta6thqMhVIWiUcjbhxRyhYnak+_V+%2P!IqDi1aoilF^?f; z7DNAffvKB2tY~K)&9{Ayd~odM$C+?pEIJ%_=C0(k+L$TM#)sON9dPbj^1n;O(qrsh z?cj>!l(LYgrfA~P&q%{om7JA7eFu~8ocAg-$m_J35)#TB?KqEnTaASzh=(l+X)!dVp?sWafz_ z_l|bzXLhiII|XOBTj1;ZDki0uBrI|~6I0fXFSE_RvsNeb#J_JL=Jy-CpeW|?WeGFP zoZeCnX7iK;-h56=$A?)ppEJ_o|56@e&Ps@bzpcus1J3+klMV;w{5K@b@}G(a^BaH< zJn_^Ghd=ZBmSjePtyW;G?;T<4yC|{q-jxo&sn_TI-CuKbB6d)I|-( z-;mDPoI_4{zT;0MxGSP z9Bl8mCY|?NmDu}zAsrsfe0(WkCTw1s((!>O58vorNkc*&Y5?PBIX9$-Gq@=n=Da72 z5B#QbGB;Zic$RVZrNia#llyHKT=+IEam3?~otpUFfVY~ykxos26yL$O(jQ9T@qeHl z&ie4ZbhveWb-c$95;%lKP1Jxt_O^sGe=pwek#u6rbS DNkZa4 diff --git a/data/shaders/vulkanscene/mesh.frag.spv b/data/shaders/vulkanscene/mesh.frag.spv index 601489732fed8bd4e8caffb01cf26657fbf8d4f1..7ed6d8040d854aeb8db833666412605c72c050ad 100644 GIT binary patch literal 3380 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 Cn+3Z7 delta 149 zcmdnN(!k2e%%sfDz`)4BIFZx4UXX!-ffI-Y7?>GYfHVgXGXo(LkUqr702Je7aQBIK z404JuPAy0*N-Rl@FV09zNiB-cPs&P7E-6M;1C+|lOOMY<%u6p#OiztBF)}DfOwMLt Y1)2mhKQ}Qm4@d#|Y#@6#cCTdw0JyXsg8%>k diff --git a/data/shaders/vulkanscene/skybox.vert.spv b/data/shaders/vulkanscene/skybox.vert.spv index eaec307a50145940f3b2937756055c0fdd4d41d5..901a2d511f723832d7f7bbdb2164f0b6bc4eff2f 100644 GIT binary patch delta 82 zcmbQjbApSPnMs+Qfq{{Moq>ZvYa*|yCIXEhmG!PrPH0Q+#o1L1Iy2Noss?Mq)~8QG9+lEl2^RG=us z=6ps;Mp<{DPLKwWOId*!#0R+&#An;w%GAxMs{jkYbYP24I~ERgS0Vj J=4G*F1OWU4FX8|I From 0e9ab19fad28dca772b108b15ade56218ee89060 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Sun, 13 Oct 2019 09:40:31 +0200 Subject: [PATCH 2/7] Reworked compute shader n-body synchronization --- examples/computenbody/computenbody.cpp | 59 +++++--------------------- 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/examples/computenbody/computenbody.cpp b/examples/computenbody/computenbody.cpp index 3d714a80..2da46ef4 100644 --- a/examples/computenbody/computenbody.cpp +++ b/examples/computenbody/computenbody.cpp @@ -184,7 +184,7 @@ public: drawUI(drawCmdBuffers[i]); vkCmdEndRenderPass(drawCmdBuffers[i]); - + VK_CHECK_RESULT(vkEndCommandBuffer(drawCmdBuffers[i])); } @@ -196,41 +196,20 @@ public: VK_CHECK_RESULT(vkBeginCommandBuffer(compute.commandBuffer, &cmdBufInfo)); - // Compute particle movement + // First pass: Calculate particle movement + // ------------------------------------------------------------------------------------------------------- + vkCmdBindPipeline(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineCalculate); + vkCmdBindDescriptorSets(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineLayout, 0, 1, &compute.descriptorSet, 0, 0); + vkCmdDispatch(compute.commandBuffer, numParticles / 256, 1, 1); - // Add memory barrier to ensure that the (graphics) vertex shader has fetched attributes before compute starts to write to the buffer + // Add memory barrier to ensure that the computer shader has finished writing to the buffer VkBufferMemoryBarrier bufferBarrier = vks::initializers::bufferMemoryBarrier(); bufferBarrier.buffer = compute.storageBuffer.buffer; bufferBarrier.size = compute.storageBuffer.descriptor.range; - bufferBarrier.srcAccessMask = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT; // Vertex shader invocations have finished reading from the buffer - bufferBarrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT; // Compute shader wants to write to the buffer + bufferBarrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + bufferBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; // Transfer ownership if compute and graphics queue familiy indices differ - bufferBarrier.srcQueueFamilyIndex = vulkanDevice->queueFamilyIndices.graphics; - bufferBarrier.dstQueueFamilyIndex = vulkanDevice->queueFamilyIndices.compute; - - vkCmdPipelineBarrier( - compute.commandBuffer, - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, - VK_FLAGS_NONE, - 0, nullptr, - 1, &bufferBarrier, - 0, nullptr); - - vkCmdBindPipeline(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineCalculate); - vkCmdBindDescriptorSets(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineLayout, 0, 1, &compute.descriptorSet, 0, 0); - - // First pass: Calculate particle movement - // ------------------------------------------------------------------------------------------------------- - vkCmdDispatch(compute.commandBuffer, numParticles / 256, 1, 1); - - // Add memory barrier to ensure that compute shader has finished writing to the buffer - bufferBarrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; // Compute shader has finished writes to the buffer - bufferBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - bufferBarrier.buffer = compute.storageBuffer.buffer; - bufferBarrier.size = compute.storageBuffer.descriptor.range; - // No ownership transfer necessary - bufferBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + bufferBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; bufferBarrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; vkCmdPipelineBarrier( @@ -246,24 +225,6 @@ public: // ------------------------------------------------------------------------------------------------------- vkCmdBindPipeline(compute.commandBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, compute.pipelineIntegrate); vkCmdDispatch(compute.commandBuffer, numParticles / 256, 1, 1); - // Add memory barrier to ensure that compute shader has finished writing to the buffer - // Without this the (rendering) vertex shader may display incomplete results (partial data from last frame) - bufferBarrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; // Compute shader has finished writes to the buffer - bufferBarrier.dstAccessMask = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT; // Vertex shader invocations want to read from the buffer - bufferBarrier.buffer = compute.storageBuffer.buffer; - bufferBarrier.size = compute.storageBuffer.descriptor.range; - // Transfer ownership if compute and graphics queue familiy indices differ - bufferBarrier.srcQueueFamilyIndex = vulkanDevice->queueFamilyIndices.compute; - bufferBarrier.dstQueueFamilyIndex = vulkanDevice->queueFamilyIndices.graphics; - - vkCmdPipelineBarrier( - compute.commandBuffer, - VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - VK_FLAGS_NONE, - 0, nullptr, - 1, &bufferBarrier, - 0, nullptr); vkEndCommandBuffer(compute.commandBuffer); } From 0356b62f811666a9b4917816e6b92fc01453c2bc Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 18 Oct 2019 15:58:29 +0200 Subject: [PATCH 3/7] Updated Vulkan headers to 1.1.125 --- external/vulkan/vulkan.h | 9 + external/vulkan/vulkan_android.h | 18 +- external/vulkan/vulkan_core.h | 1378 ++++++++++++++++++++------ external/vulkan/vulkan_fuchsia.h | 13 +- external/vulkan/vulkan_ggp.h | 68 ++ external/vulkan/vulkan_ios.h | 13 +- external/vulkan/vulkan_macos.h | 13 +- external/vulkan/vulkan_metal.h | 64 ++ external/vulkan/vulkan_vi.h | 13 +- external/vulkan/vulkan_wayland.h | 13 +- external/vulkan/vulkan_win32.h | 90 +- external/vulkan/vulkan_xcb.h | 13 +- external/vulkan/vulkan_xlib.h | 13 +- external/vulkan/vulkan_xlib_xrandr.h | 11 +- 14 files changed, 1337 insertions(+), 392 deletions(-) create mode 100644 external/vulkan/vulkan_ggp.h create mode 100644 external/vulkan/vulkan_metal.h diff --git a/external/vulkan/vulkan.h b/external/vulkan/vulkan.h index a3be4af6..5f853f9f 100644 --- a/external/vulkan/vulkan.h +++ b/external/vulkan/vulkan.h @@ -38,6 +38,9 @@ #include "vulkan_macos.h" #endif +#ifdef VK_USE_PLATFORM_METAL_EXT +#include "vulkan_metal.h" +#endif #ifdef VK_USE_PLATFORM_VI_NN #include "vulkan_vi.h" @@ -74,4 +77,10 @@ #include "vulkan_xlib_xrandr.h" #endif + +#ifdef VK_USE_PLATFORM_GGP +#include +#include "vulkan_ggp.h" +#endif + #endif // VULKAN_H_ diff --git a/external/vulkan/vulkan_android.h b/external/vulkan/vulkan_android.h index e70376c8..9b8d3e27 100644 --- a/external/vulkan/vulkan_android.h +++ b/external/vulkan/vulkan_android.h @@ -1,10 +1,6 @@ #ifndef VULKAN_ANDROID_H_ #define VULKAN_ANDROID_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,14 +23,17 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_android_surface 1 struct ANativeWindow; - #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" - typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; - typedef struct VkAndroidSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -42,7 +41,6 @@ typedef struct VkAndroidSurfaceCreateInfoKHR { struct ANativeWindow* window; } VkAndroidSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES @@ -53,12 +51,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( VkSurfaceKHR* pSurface); #endif + #define VK_ANDROID_external_memory_android_hardware_buffer 1 struct AHardwareBuffer; - #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" - typedef struct VkAndroidHardwareBufferUsageANDROID { VkStructureType sType; void* pNext; @@ -103,7 +100,6 @@ typedef struct VkExternalFormatANDROID { uint64_t externalFormat; } VkExternalFormatANDROID; - typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); diff --git a/external/vulkan/vulkan_core.h b/external/vulkan/vulkan_core.h index 515a73e4..9770c3b9 100644 --- a/external/vulkan/vulkan_core.h +++ b/external/vulkan/vulkan_core.h @@ -1,10 +1,6 @@ #ifndef VULKAN_CORE_H_ #define VULKAN_CORE_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,9 +23,14 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_VERSION_1_0 1 #include "vk_platform.h" - #define VK_MAKE_VERSION(major, minor, patch) \ (((major) << 22) | ((minor) << 12) | (patch)) @@ -43,7 +44,7 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 101 +#define VK_HEADER_VERSION 125 #define VK_NULL_HANDLE 0 @@ -60,12 +61,10 @@ extern "C" { #endif #endif - typedef uint32_t VkFlags; typedef uint32_t VkBool32; typedef uint64_t VkDeviceSize; typedef uint32_t VkSampleMask; - VK_DEFINE_HANDLE(VkInstance) VK_DEFINE_HANDLE(VkPhysicalDevice) VK_DEFINE_HANDLE(VkDevice) @@ -91,7 +90,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) - #define VK_LOD_CLAMP_NONE 1000.0f #define VK_REMAINING_MIP_LEVELS (~0U) #define VK_REMAINING_ARRAY_LAYERS (~0U) @@ -108,7 +106,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) #define VK_MAX_EXTENSION_NAME_SIZE 256 #define VK_MAX_DESCRIPTION_SIZE 256 - typedef enum VkPipelineCacheHeaderVersion { VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, @@ -149,6 +146,7 @@ typedef enum VkResult { VK_ERROR_FRAGMENTATION_EXT = -1000161000, VK_ERROR_NOT_PERMITTED_EXT = -1000174001, VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, + VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, @@ -243,7 +241,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, @@ -271,7 +269,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, @@ -299,7 +297,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, @@ -308,6 +308,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, @@ -328,7 +329,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = 1000082000, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, @@ -352,6 +353,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = 1000108000, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = 1000108001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = 1000108002, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = 1000108003, VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, @@ -403,6 +408,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, @@ -436,17 +443,22 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = 1000175000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, + VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, + VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, @@ -460,18 +472,40 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001, + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002, + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = 1000207003, + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = 1000207004, + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = 1000207005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000, + VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, + VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, + VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, + VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, + VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, + VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = 1000244000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, @@ -479,6 +513,32 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, + VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, + VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, @@ -512,6 +572,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, @@ -523,6 +584,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, @@ -540,6 +602,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -794,6 +857,20 @@ typedef enum VkFormat { VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, @@ -872,6 +949,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_TIMESTAMP = 2, VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, + VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), @@ -1139,6 +1217,7 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, + VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), @@ -1171,6 +1250,7 @@ typedef enum VkSamplerAddressMode { VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), @@ -1252,6 +1332,7 @@ typedef enum VkIndexType { VK_INDEX_TYPE_UINT16 = 0, VK_INDEX_TYPE_UINT32 = 1, VK_INDEX_TYPE_NONE_NV = 1000165000, + VK_INDEX_TYPE_UINT8_EXT = 1000265000, VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), @@ -1306,6 +1387,7 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, @@ -1323,7 +1405,6 @@ typedef enum VkVendorId { VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF } VkVendorId; - typedef VkFlags VkInstanceCreateFlags; typedef enum VkFormatFeatureFlagBits { @@ -1436,6 +1517,8 @@ typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; @@ -1589,6 +1672,10 @@ typedef enum VkImageViewCreateFlagBits { VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; + +typedef enum VkShaderModuleCreateFlagBits { + VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkShaderModuleCreateFlagBits; typedef VkFlags VkShaderModuleCreateFlags; typedef VkFlags VkPipelineCacheCreateFlags; @@ -1599,11 +1686,19 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, + VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, + VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineCreateFlagBits; typedef VkFlags VkPipelineCreateFlags; + +typedef enum VkPipelineShaderStageCreateFlagBits { + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, + VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineShaderStageCreateFlagBits; typedef VkFlags VkPipelineShaderStageCreateFlags; typedef enum VkShaderStageFlagBits { @@ -1676,7 +1771,16 @@ typedef enum VkDescriptorPoolCreateFlagBits { } VkDescriptorPoolCreateFlagBits; typedef VkFlags VkDescriptorPoolCreateFlags; typedef VkFlags VkDescriptorPoolResetFlags; + +typedef enum VkFramebufferCreateFlagBits { + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = 0x00000001, + VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFramebufferCreateFlagBits; typedef VkFlags VkFramebufferCreateFlags; + +typedef enum VkRenderPassCreateFlagBits { + VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderPassCreateFlagBits; typedef VkFlags VkRenderPassCreateFlags; typedef enum VkAttachmentDescriptionFlagBits { @@ -1772,11 +1876,11 @@ typedef VkFlags VkCommandBufferResetFlags; typedef enum VkStencilFaceFlagBits { VK_STENCIL_FACE_FRONT_BIT = 0x00000001, VK_STENCIL_FACE_BACK_BIT = 0x00000002, - VK_STENCIL_FRONT_AND_BACK = 0x00000003, + VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, + VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK, VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkStencilFaceFlagBits; typedef VkFlags VkStencilFaceFlags; - typedef struct VkApplicationInfo { VkStructureType sType; const void* pNext; @@ -2892,7 +2996,6 @@ typedef struct VkBaseInStructure { const struct VkBaseInStructure* pNext; } VkBaseInStructure; - typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); @@ -3830,19 +3933,17 @@ VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( const VkCommandBuffer* pCommandBuffers); #endif + #define VK_VERSION_1_1 1 // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) - #define VK_MAX_DEVICE_GROUP_SIZE 32 #define VK_LUID_SIZE 8 #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) - typedef enum VkPointClippingBehavior { VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, @@ -3914,7 +4015,6 @@ typedef enum VkDescriptorUpdateTemplateType { VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorUpdateTemplateType; - typedef enum VkSubgroupFeatureFlagBits { VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, @@ -4044,7 +4144,6 @@ typedef enum VkExternalSemaphoreFeatureFlagBits { VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkExternalSemaphoreFeatureFlagBits; typedef VkFlags VkExternalSemaphoreFeatureFlags; - typedef struct VkPhysicalDeviceSubgroupProperties { VkStructureType sType; void* pNext; @@ -4314,12 +4413,14 @@ typedef struct VkPhysicalDeviceMultiviewProperties { uint32_t maxMultiviewInstanceIndex; } VkPhysicalDeviceMultiviewProperties; -typedef struct VkPhysicalDeviceVariablePointerFeatures { +typedef struct VkPhysicalDeviceVariablePointersFeatures { VkStructureType sType; void* pNext; VkBool32 variablePointersStorageBuffer; VkBool32 variablePointers; -} VkPhysicalDeviceVariablePointerFeatures; +} VkPhysicalDeviceVariablePointersFeatures; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; typedef struct VkPhysicalDeviceProtectedMemoryFeatures { VkStructureType sType; @@ -4525,12 +4626,13 @@ typedef struct VkDescriptorSetLayoutSupport { VkBool32 supported; } VkDescriptorSetLayoutSupport; -typedef struct VkPhysicalDeviceShaderDrawParameterFeatures { +typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { VkStructureType sType; void* pNext; VkBool32 shaderDrawParameters; -} VkPhysicalDeviceShaderDrawParameterFeatures; +} VkPhysicalDeviceShaderDrawParametersFeatures; +typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); @@ -4708,18 +4810,17 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport* pSupport); #endif + #define VK_KHR_surface 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - #define VK_KHR_SURFACE_SPEC_VERSION 25 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" - typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, @@ -4731,7 +4832,9 @@ typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), @@ -4751,7 +4854,6 @@ typedef enum VkPresentModeKHR { VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF } VkPresentModeKHR; - typedef enum VkSurfaceTransformFlagBitsKHR { VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, @@ -4774,7 +4876,6 @@ typedef enum VkCompositeAlphaFlagBitsKHR { VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkCompositeAlphaFlagBitsKHR; typedef VkFlags VkCompositeAlphaFlagsKHR; - typedef struct VkSurfaceCapabilitiesKHR { uint32_t minImageCount; uint32_t maxImageCount; @@ -4793,7 +4894,6 @@ typedef struct VkSurfaceFormatKHR { VkColorSpaceKHR colorSpace; } VkSurfaceFormatKHR; - typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); @@ -4830,13 +4930,12 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( VkPresentModeKHR* pPresentModes); #endif + #define VK_KHR_swapchain 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) - #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" - typedef enum VkSwapchainCreateFlagBitsKHR { VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, @@ -4853,7 +4952,6 @@ typedef enum VkDeviceGroupPresentModeFlagBitsKHR { VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkDeviceGroupPresentModeFlagBitsKHR; typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; - typedef struct VkSwapchainCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -4930,7 +5028,6 @@ typedef struct VkDeviceGroupSwapchainCreateInfoKHR { VkDeviceGroupPresentModeFlagsKHR modes; } VkDeviceGroupSwapchainCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); @@ -4992,14 +5089,13 @@ VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( uint32_t* pImageIndex); #endif + #define VK_KHR_display 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) - -#define VK_KHR_DISPLAY_SPEC_VERSION 21 +#define VK_KHR_DISPLAY_SPEC_VERSION 23 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" - typedef enum VkDisplayPlaneAlphaFlagBitsKHR { VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, @@ -5010,7 +5106,6 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR { typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; - typedef struct VkDisplayPropertiesKHR { VkDisplayKHR display; const char* displayName; @@ -5068,7 +5163,6 @@ typedef struct VkDisplaySurfaceCreateInfoKHR { VkExtent2D imageExtent; } VkDisplaySurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); @@ -5120,10 +5214,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( VkSurfaceKHR* pSurface); #endif -#define VK_KHR_display_swapchain 1 -#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 -#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" +#define VK_KHR_display_swapchain 1 +#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 +#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" typedef struct VkDisplayPresentInfoKHR { VkStructureType sType; const void* pNext; @@ -5132,7 +5226,6 @@ typedef struct VkDisplayPresentInfoKHR { VkBool32 persistent; } VkDisplayPresentInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); #ifndef VK_NO_PROTOTYPES @@ -5144,15 +5237,15 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( VkSwapchainKHR* pSwapchains); #endif + #define VK_KHR_sampler_mirror_clamp_to_edge 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" #define VK_KHR_multiview 1 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" - typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; @@ -5162,9 +5255,8 @@ typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesK #define VK_KHR_get_physical_device_properties2 1 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" - typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; @@ -5183,7 +5275,6 @@ typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); @@ -5227,10 +5318,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkSparseImageFormatProperties2* pProperties); #endif -#define VK_KHR_device_group 1 -#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 -#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" +#define VK_KHR_device_group 1 +#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4 +#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; @@ -5239,7 +5330,6 @@ typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; - typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; @@ -5254,7 +5344,6 @@ typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; - typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); @@ -5281,6 +5370,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( uint32_t groupCountZ); #endif + #define VK_KHR_shader_draw_parameters 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" @@ -5289,10 +5379,8 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( #define VK_KHR_maintenance1 1 #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" - typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; - typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); #ifndef VK_NO_PROTOTYPES @@ -5302,16 +5390,15 @@ VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( VkCommandPoolTrimFlags flags); #endif + #define VK_KHR_device_group_creation 1 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE - typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); #ifndef VK_NO_PROTOTYPES @@ -5321,11 +5408,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); #endif + #define VK_KHR_external_memory_capabilities 1 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" #define VK_LUID_SIZE_KHR VK_LUID_SIZE - typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; @@ -5334,7 +5421,6 @@ typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; - typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; @@ -5347,7 +5433,6 @@ typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); #ifndef VK_NO_PROTOTYPES @@ -5357,11 +5442,11 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkExternalBufferProperties* pExternalBufferProperties); #endif + #define VK_KHR_external_memory 1 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL - typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; @@ -5373,7 +5458,6 @@ typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; #define VK_KHR_external_memory_fd 1 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" - typedef struct VkImportMemoryFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5394,7 +5478,6 @@ typedef struct VkMemoryGetFdInfoKHR { VkExternalMemoryHandleTypeFlagBits handleType; } VkMemoryGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); @@ -5411,10 +5494,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR* pMemoryFdProperties); #endif + #define VK_KHR_external_semaphore_capabilities 1 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" - typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; @@ -5423,12 +5506,10 @@ typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; - typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); #ifndef VK_NO_PROTOTYPES @@ -5438,15 +5519,14 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkExternalSemaphoreProperties* pExternalSemaphoreProperties); #endif + #define VK_KHR_external_semaphore 1 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" - typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; - typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; @@ -5454,7 +5534,6 @@ typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; #define VK_KHR_external_semaphore_fd 1 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" - typedef struct VkImportSemaphoreFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5471,7 +5550,6 @@ typedef struct VkSemaphoreGetFdInfoKHR { VkExternalSemaphoreHandleTypeFlagBits handleType; } VkSemaphoreGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); @@ -5486,17 +5564,16 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( int* pFd); #endif + #define VK_KHR_push_descriptor 1 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" - typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { VkStructureType sType; void* pNext; uint32_t maxPushDescriptors; } VkPhysicalDevicePushDescriptorPropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); @@ -5517,23 +5594,24 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( const void* pData); #endif + #define VK_KHR_shader_float16_int8 1 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" - -typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR { +typedef struct VkPhysicalDeviceShaderFloat16Int8FeaturesKHR { VkStructureType sType; void* pNext; VkBool32 shaderFloat16; VkBool32 shaderInt8; -} VkPhysicalDeviceFloat16Int8FeaturesKHR; +} VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; + +typedef VkPhysicalDeviceShaderFloat16Int8FeaturesKHR VkPhysicalDeviceFloat16Int8FeaturesKHR; #define VK_KHR_16bit_storage 1 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" - typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; @@ -5541,7 +5619,6 @@ typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeature #define VK_KHR_incremental_present 1 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" - typedef struct VkRectLayerKHR { VkOffset2D offset; VkExtent2D extent; @@ -5565,21 +5642,16 @@ typedef struct VkPresentRegionsKHR { #define VK_KHR_descriptor_update_template 1 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; - #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" - typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; - typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; - typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); @@ -5603,10 +5675,47 @@ VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( const void* pData); #endif + +#define VK_KHR_imageless_framebuffer 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer" +typedef struct VkPhysicalDeviceImagelessFramebufferFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 imagelessFramebuffer; +} VkPhysicalDeviceImagelessFramebufferFeaturesKHR; + +typedef struct VkFramebufferAttachmentImageInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageCreateFlags flags; + VkImageUsageFlags usage; + uint32_t width; + uint32_t height; + uint32_t layerCount; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkFramebufferAttachmentImageInfoKHR; + +typedef struct VkFramebufferAttachmentsCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t attachmentImageInfoCount; + const VkFramebufferAttachmentImageInfoKHR* pAttachmentImageInfos; +} VkFramebufferAttachmentsCreateInfoKHR; + +typedef struct VkRenderPassAttachmentBeginInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkImageView* pAttachments; +} VkRenderPassAttachmentBeginInfoKHR; + + + #define VK_KHR_create_renderpass2 1 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" - typedef struct VkAttachmentDescription2KHR { VkStructureType sType; const void* pNext; @@ -5683,7 +5792,6 @@ typedef struct VkSubpassEndInfoKHR { const void* pNext; } VkSubpassEndInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo); typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo); @@ -5711,17 +5819,16 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( const VkSubpassEndInfoKHR* pSubpassEndInfo); #endif + #define VK_KHR_shared_presentable_image 1 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" - typedef struct VkSharedPresentSurfaceCapabilitiesKHR { VkStructureType sType; void* pNext; VkImageUsageFlags sharedPresentSupportedUsageFlags; } VkSharedPresentSurfaceCapabilitiesKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); #ifndef VK_NO_PROTOTYPES @@ -5730,10 +5837,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( VkSwapchainKHR swapchain); #endif + #define VK_KHR_external_fence_capabilities 1 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" - typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; @@ -5742,12 +5849,10 @@ typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; - typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); #ifndef VK_NO_PROTOTYPES @@ -5757,15 +5862,14 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( VkExternalFenceProperties* pExternalFenceProperties); #endif + #define VK_KHR_external_fence 1 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" - typedef VkFenceImportFlags VkFenceImportFlagsKHR; typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; - typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; @@ -5773,7 +5877,6 @@ typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; #define VK_KHR_external_fence_fd 1 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" - typedef struct VkImportFenceFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5790,7 +5893,6 @@ typedef struct VkFenceGetFdInfoKHR { VkExternalFenceHandleTypeFlagBits handleType; } VkFenceGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); @@ -5805,15 +5907,14 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( int* pFd); #endif + #define VK_KHR_maintenance2 1 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" - typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; - typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; @@ -5829,7 +5930,6 @@ typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellation #define VK_KHR_get_surface_capabilities2 1 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" - typedef struct VkPhysicalDeviceSurfaceInfo2KHR { VkStructureType sType; const void* pNext; @@ -5848,7 +5948,6 @@ typedef struct VkSurfaceFormat2KHR { VkSurfaceFormatKHR surfaceFormat; } VkSurfaceFormat2KHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); @@ -5865,18 +5964,19 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( VkSurfaceFormat2KHR* pSurfaceFormats); #endif + #define VK_KHR_variable_pointers 1 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; -typedef VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; #define VK_KHR_get_display_properties2 1 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" - typedef struct VkDisplayProperties2KHR { VkStructureType sType; void* pNext; @@ -5908,7 +6008,6 @@ typedef struct VkDisplayPlaneCapabilities2KHR { VkDisplayPlaneCapabilitiesKHR capabilities; } VkDisplayPlaneCapabilities2KHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); @@ -5937,10 +6036,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR* pCapabilities); #endif + #define VK_KHR_dedicated_allocation 1 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" - typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; @@ -5960,7 +6059,6 @@ typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; #define VK_KHR_get_memory_requirements2 1 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" - typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; @@ -5969,7 +6067,6 @@ typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; - typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); @@ -5992,10 +6089,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); #endif + #define VK_KHR_image_format_list 1 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" - typedef struct VkImageFormatListCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -6008,17 +6105,14 @@ typedef struct VkImageFormatListCreateInfoKHR { #define VK_KHR_sampler_ycbcr_conversion 1 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; - -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" - typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; typedef VkChromaLocation VkChromaLocationKHR; - typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; @@ -6031,7 +6125,6 @@ typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYc typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); @@ -6048,15 +6141,14 @@ VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( const VkAllocationCallbacks* pAllocator); #endif + #define VK_KHR_bind_memory2 1 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" - typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); @@ -6072,15 +6164,14 @@ VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( const VkBindImageMemoryInfo* pBindInfos); #endif + #define VK_KHR_maintenance3 1 #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" - typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; - typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); #ifndef VK_NO_PROTOTYPES @@ -6090,10 +6181,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( VkDescriptorSetLayoutSupport* pSupport); #endif + #define VK_KHR_draw_indirect_count 1 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" - typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -6117,10 +6208,21 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( uint32_t stride); #endif + +#define VK_KHR_shader_subgroup_extended_types 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + + + #define VK_KHR_8bit_storage 1 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" - typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { VkStructureType sType; void* pNext; @@ -6134,7 +6236,6 @@ typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { #define VK_KHR_shader_atomic_int64 1 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" - typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { VkStructureType sType; void* pNext; @@ -6144,13 +6245,24 @@ typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { +#define VK_KHR_shader_clock 1 +#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 +#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" +typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupClock; + VkBool32 shaderDeviceClock; +} VkPhysicalDeviceShaderClockFeaturesKHR; + + + #define VK_KHR_driver_properties 1 #define VK_MAX_DRIVER_NAME_SIZE_KHR 256 #define VK_MAX_DRIVER_INFO_SIZE_KHR 256 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" - typedef enum VkDriverIdKHR { VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, @@ -6161,13 +6273,14 @@ typedef enum VkDriverIdKHR { VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, - VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = 10, + VK_DRIVER_ID_GGP_PROPRIETARY_KHR = 11, + VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = 12, VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, - VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_GOOGLE_PASTEL_KHR, - VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_GOOGLE_PASTEL_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), + VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR, + VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF } VkDriverIdKHR; - typedef struct VkConformanceVersionKHR { uint8_t major; uint8_t minor; @@ -6187,29 +6300,38 @@ typedef struct VkPhysicalDeviceDriverPropertiesKHR { #define VK_KHR_shader_float_controls 1 -#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" +typedef enum VkShaderFloatControlsIndependenceKHR { + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = 0, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = 1, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = 2, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE_KHR = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR + 1), + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkShaderFloatControlsIndependenceKHR; typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR { - VkStructureType sType; - void* pNext; - VkBool32 separateDenormSettings; - VkBool32 separateRoundingModeSettings; - VkBool32 shaderSignedZeroInfNanPreserveFloat16; - VkBool32 shaderSignedZeroInfNanPreserveFloat32; - VkBool32 shaderSignedZeroInfNanPreserveFloat64; - VkBool32 shaderDenormPreserveFloat16; - VkBool32 shaderDenormPreserveFloat32; - VkBool32 shaderDenormPreserveFloat64; - VkBool32 shaderDenormFlushToZeroFloat16; - VkBool32 shaderDenormFlushToZeroFloat32; - VkBool32 shaderDenormFlushToZeroFloat64; - VkBool32 shaderRoundingModeRTEFloat16; - VkBool32 shaderRoundingModeRTEFloat32; - VkBool32 shaderRoundingModeRTEFloat64; - VkBool32 shaderRoundingModeRTZFloat16; - VkBool32 shaderRoundingModeRTZFloat32; - VkBool32 shaderRoundingModeRTZFloat64; + VkStructureType sType; + void* pNext; + VkShaderFloatControlsIndependenceKHR denormBehaviorIndependence; + VkShaderFloatControlsIndependenceKHR roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; } VkPhysicalDeviceFloatControlsPropertiesKHR; @@ -6218,7 +6340,6 @@ typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR { #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" - typedef enum VkResolveModeFlagBitsKHR { VK_RESOLVE_MODE_NONE_KHR = 0, VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 0x00000001, @@ -6228,7 +6349,6 @@ typedef enum VkResolveModeFlagBitsKHR { VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkResolveModeFlagBitsKHR; typedef VkFlags VkResolveModeFlagsKHR; - typedef struct VkSubpassDescriptionDepthStencilResolveKHR { VkStructureType sType; const void* pNext; @@ -6253,10 +6373,92 @@ typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" +#define VK_KHR_timeline_semaphore 1 +#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2 +#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore" + +typedef enum VkSemaphoreTypeKHR { + VK_SEMAPHORE_TYPE_BINARY_KHR = 0, + VK_SEMAPHORE_TYPE_TIMELINE_KHR = 1, + VK_SEMAPHORE_TYPE_BEGIN_RANGE_KHR = VK_SEMAPHORE_TYPE_BINARY_KHR, + VK_SEMAPHORE_TYPE_END_RANGE_KHR = VK_SEMAPHORE_TYPE_TIMELINE_KHR, + VK_SEMAPHORE_TYPE_RANGE_SIZE_KHR = (VK_SEMAPHORE_TYPE_TIMELINE_KHR - VK_SEMAPHORE_TYPE_BINARY_KHR + 1), + VK_SEMAPHORE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSemaphoreTypeKHR; + +typedef enum VkSemaphoreWaitFlagBitsKHR { + VK_SEMAPHORE_WAIT_ANY_BIT_KHR = 0x00000001, + VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSemaphoreWaitFlagBitsKHR; +typedef VkFlags VkSemaphoreWaitFlagsKHR; +typedef struct VkPhysicalDeviceTimelineSemaphoreFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 timelineSemaphore; +} VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; + +typedef struct VkPhysicalDeviceTimelineSemaphorePropertiesKHR { + VkStructureType sType; + void* pNext; + uint64_t maxTimelineSemaphoreValueDifference; +} VkPhysicalDeviceTimelineSemaphorePropertiesKHR; + +typedef struct VkSemaphoreTypeCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphoreTypeKHR semaphoreType; + uint64_t initialValue; +} VkSemaphoreTypeCreateInfoKHR; + +typedef struct VkTimelineSemaphoreSubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreValueCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValueCount; + const uint64_t* pSignalSemaphoreValues; +} VkTimelineSemaphoreSubmitInfoKHR; + +typedef struct VkSemaphoreWaitInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphoreWaitFlagsKHR flags; + uint32_t semaphoreCount; + const VkSemaphore* pSemaphores; + const uint64_t* pValues; +} VkSemaphoreWaitInfoKHR; + +typedef struct VkSemaphoreSignalInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; +} VkSemaphoreSignalInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); +typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfoKHR* pWaitInfo, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfoKHR* pSignalInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR( + VkDevice device, + VkSemaphore semaphore, + uint64_t* pValue); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR( + VkDevice device, + const VkSemaphoreWaitInfoKHR* pWaitInfo, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR( + VkDevice device, + const VkSemaphoreSignalInfoKHR* pSignalInfo); +#endif + + #define VK_KHR_vulkan_memory_model 1 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" - typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { VkStructureType sType; void* pNext; @@ -6267,13 +6469,131 @@ typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { +#define VK_KHR_spirv_1_4 1 +#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1 +#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4" + + +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + + +#define VK_KHR_uniform_buffer_standard_layout 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" +typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 uniformBufferStandardLayout; +} VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; + + + +#define VK_KHR_pipeline_executable_properties 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties" + +typedef enum VkPipelineExecutableStatisticFormatKHR { + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1), + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPipelineExecutableStatisticFormatKHR; +typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineExecutableInfo; +} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + +typedef struct VkPipelineInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; +} VkPipelineInfoKHR; + +typedef struct VkPipelineExecutablePropertiesKHR { + VkStructureType sType; + void* pNext; + VkShaderStageFlags stages; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t subgroupSize; +} VkPipelineExecutablePropertiesKHR; + +typedef struct VkPipelineExecutableInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; + uint32_t executableIndex; +} VkPipelineExecutableInfoKHR; + +typedef union VkPipelineExecutableStatisticValueKHR { + VkBool32 b32; + int64_t i64; + uint64_t u64; + double f64; +} VkPipelineExecutableStatisticValueKHR; + +typedef struct VkPipelineExecutableStatisticKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkPipelineExecutableStatisticFormatKHR format; + VkPipelineExecutableStatisticValueKHR value; +} VkPipelineExecutableStatisticKHR; + +typedef struct VkPipelineExecutableInternalRepresentationKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkBool32 isText; + size_t dataSize; + void* pData; +} VkPipelineExecutableInternalRepresentationKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR( + VkDevice device, + const VkPipelineInfoKHR* pPipelineInfo, + uint32_t* pExecutableCount, + VkPipelineExecutablePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pStatisticCount, + VkPipelineExecutableStatisticKHR* pStatistics); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); +#endif + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) - #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" - typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, @@ -6322,7 +6642,6 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportObjectTypeEXT; - typedef enum VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, @@ -6332,7 +6651,6 @@ typedef enum VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportFlagBitsEXT; typedef VkFlags VkDebugReportFlagsEXT; - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, @@ -6351,7 +6669,6 @@ typedef struct VkDebugReportCallbackCreateInfoEXT { void* pUserData; } VkDebugReportCallbackCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); @@ -6379,6 +6696,7 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( const char* pMessage); #endif + #define VK_NV_glsl_shader 1 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1 #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" @@ -6398,7 +6716,6 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" - typedef enum VkRasterizationOrderAMD { VK_RASTERIZATION_ORDER_STRICT_AMD = 0, VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, @@ -6407,7 +6724,6 @@ typedef enum VkRasterizationOrderAMD { VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF } VkRasterizationOrderAMD; - typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { VkStructureType sType; const void* pNext; @@ -6429,7 +6745,6 @@ typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { #define VK_EXT_debug_marker 1 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" - typedef struct VkDebugMarkerObjectNameInfoEXT { VkStructureType sType; const void* pNext; @@ -6455,7 +6770,6 @@ typedef struct VkDebugMarkerMarkerInfoEXT { float color[4]; } VkDebugMarkerMarkerInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); @@ -6483,6 +6797,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #endif + #define VK_AMD_gcn_shader 1 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1 #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" @@ -6491,7 +6806,6 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( #define VK_NV_dedicated_allocation 1 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" - typedef struct VkDedicatedAllocationImageCreateInfoNV { VkStructureType sType; const void* pNext; @@ -6516,9 +6830,7 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { #define VK_EXT_transform_feedback 1 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" - typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; - typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { VkStructureType sType; void* pNext; @@ -6548,7 +6860,6 @@ typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { uint32_t rasterizationStream; } VkPipelineRasterizationStateStreamCreateInfoEXT; - typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); @@ -6602,10 +6913,30 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( uint32_t vertexStride); #endif -#define VK_AMD_draw_indirect_count 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" +#define VK_NVX_image_view_handle 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +typedef struct VkImageViewHandleInfoNVX { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkDescriptorType descriptorType; + VkSampler sampler; +} VkImageViewHandleInfoNVX; + +typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( + VkDevice device, + const VkImageViewHandleInfoNVX* pInfo); +#endif + + +#define VK_AMD_draw_indirect_count 1 +#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2 +#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -6629,13 +6960,14 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( uint32_t stride); #endif + #define VK_AMD_negative_viewport_height 1 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" #define VK_AMD_gpu_shader_half_float 1 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" @@ -6647,7 +6979,6 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( #define VK_AMD_texture_gather_bias_lod 1 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" - typedef struct VkTextureLODGatherFormatPropertiesAMD { VkStructureType sType; void* pNext; @@ -6660,7 +6991,6 @@ typedef struct VkTextureLODGatherFormatPropertiesAMD { #define VK_AMD_SHADER_INFO_SPEC_VERSION 1 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" - typedef enum VkShaderInfoTypeAMD { VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, VK_SHADER_INFO_TYPE_BINARY_AMD = 1, @@ -6670,7 +7000,6 @@ typedef enum VkShaderInfoTypeAMD { VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF } VkShaderInfoTypeAMD; - typedef struct VkShaderResourceUsageAMD { uint32_t numUsedVgprs; uint32_t numUsedSgprs; @@ -6689,7 +7018,6 @@ typedef struct VkShaderStatisticsInfoAMD { uint32_t computeWorkGroupSize[3]; } VkShaderStatisticsInfoAMD; - typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); #ifndef VK_NO_PROTOTYPES @@ -6702,6 +7030,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( void* pInfo); #endif + #define VK_AMD_shader_image_load_store_lod 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" @@ -6710,7 +7039,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( #define VK_NV_corner_sampled_image 1 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" - typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { VkStructureType sType; void* pNext; @@ -6728,7 +7056,6 @@ typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" - typedef enum VkExternalMemoryHandleTypeFlagBitsNV { VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, @@ -6745,7 +7072,6 @@ typedef enum VkExternalMemoryFeatureFlagBitsNV { VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF } VkExternalMemoryFeatureFlagBitsNV; typedef VkFlags VkExternalMemoryFeatureFlagsNV; - typedef struct VkExternalImageFormatPropertiesNV { VkImageFormatProperties imageFormatProperties; VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; @@ -6753,7 +7079,6 @@ typedef struct VkExternalImageFormatPropertiesNV { VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; } VkExternalImageFormatPropertiesNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); #ifndef VK_NO_PROTOTYPES @@ -6768,10 +7093,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesN VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); #endif + #define VK_NV_external_memory 1 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" - typedef struct VkExternalMemoryImageCreateInfoNV { VkStructureType sType; const void* pNext; @@ -6787,10 +7112,9 @@ typedef struct VkExportMemoryAllocateInfoNV { #define VK_EXT_validation_flags 1 -#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" - typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_ALL_EXT = 0, VK_VALIDATION_CHECK_SHADERS_EXT = 1, @@ -6799,7 +7123,6 @@ typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCheckEXT; - typedef struct VkValidationFlagsEXT { VkStructureType sType; const void* pNext; @@ -6819,10 +7142,20 @@ typedef struct VkValidationFlagsEXT { #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" +#define VK_EXT_texture_compression_astc_hdr 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { + VkStructureType sType; + const void* pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + + + #define VK_EXT_astc_decode_mode 1 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" - typedef struct VkImageViewASTCDecodeModeEXT { VkStructureType sType; const void* pNext; @@ -6838,16 +7171,14 @@ typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { #define VK_EXT_conditional_rendering 1 -#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" - typedef enum VkConditionalRenderingFlagBitsEXT { VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkConditionalRenderingFlagBitsEXT; typedef VkFlags VkConditionalRenderingFlagsEXT; - typedef struct VkConditionalRenderingBeginInfoEXT { VkStructureType sType; const void* pNext; @@ -6869,7 +7200,6 @@ typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { VkBool32 conditionalRenderingEnable; } VkCommandBufferInheritanceConditionalRenderingInfoEXT; - typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); @@ -6882,14 +7212,13 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer); #endif + #define VK_NVX_device_generated_commands 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) - #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" - typedef enum VkIndirectCommandsTokenTypeNVX { VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, @@ -6917,7 +7246,6 @@ typedef enum VkObjectEntryTypeNVX { VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF } VkObjectEntryTypeNVX; - typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, @@ -6933,7 +7261,6 @@ typedef enum VkObjectEntryUsageFlagBitsNVX { VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF } VkObjectEntryUsageFlagBitsNVX; typedef VkFlags VkObjectEntryUsageFlagsNVX; - typedef struct VkDeviceGeneratedCommandsFeaturesNVX { VkStructureType sType; const void* pNext; @@ -7047,7 +7374,6 @@ typedef struct VkObjectTablePushConstantEntryNVX { VkShaderStageFlags stageFlags; } VkObjectTablePushConstantEntryNVX; - typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); @@ -7109,10 +7435,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkDeviceGeneratedCommandsLimitsNVX* pLimits); #endif + #define VK_NV_clip_space_w_scaling 1 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" - typedef struct VkViewportWScalingNV { float xcoeff; float ycoeff; @@ -7126,7 +7452,6 @@ typedef struct VkPipelineViewportWScalingStateCreateInfoNV { const VkViewportWScalingNV* pViewportWScalings; } VkPipelineViewportWScalingStateCreateInfoNV; - typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); #ifndef VK_NO_PROTOTYPES @@ -7137,10 +7462,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( const VkViewportWScalingNV* pViewportWScalings); #endif + #define VK_EXT_direct_mode_display 1 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" - typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); #ifndef VK_NO_PROTOTYPES @@ -7149,17 +7474,16 @@ VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( VkDisplayKHR display); #endif + #define VK_EXT_display_surface_counter 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" - typedef enum VkSurfaceCounterFlagBitsEXT { VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkSurfaceCounterFlagBitsEXT; typedef VkFlags VkSurfaceCounterFlagsEXT; - typedef struct VkSurfaceCapabilities2EXT { VkStructureType sType; void* pNext; @@ -7176,7 +7500,6 @@ typedef struct VkSurfaceCapabilities2EXT { VkSurfaceCounterFlagsEXT supportedSurfaceCounters; } VkSurfaceCapabilities2EXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); #ifndef VK_NO_PROTOTYPES @@ -7186,11 +7509,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT* pSurfaceCapabilities); #endif + #define VK_EXT_display_control 1 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" - typedef enum VkDisplayPowerStateEXT { VK_DISPLAY_POWER_STATE_OFF_EXT = 0, VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, @@ -7216,7 +7539,6 @@ typedef enum VkDisplayEventTypeEXT { VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDisplayEventTypeEXT; - typedef struct VkDisplayPowerInfoEXT { VkStructureType sType; const void* pNext; @@ -7241,7 +7563,6 @@ typedef struct VkSwapchainCounterCreateInfoEXT { VkSurfaceCounterFlagsEXT surfaceCounters; } VkSwapchainCounterCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); @@ -7273,10 +7594,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( uint64_t* pCounterValue); #endif + #define VK_GOOGLE_display_timing 1 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" - typedef struct VkRefreshCycleDurationGOOGLE { uint64_t refreshDuration; } VkRefreshCycleDurationGOOGLE; @@ -7301,7 +7622,6 @@ typedef struct VkPresentTimesInfoGOOGLE { const VkPresentTimeGOOGLE* pTimes; } VkPresentTimesInfoGOOGLE; - typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); @@ -7318,6 +7638,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE* pPresentationTimings); #endif + #define VK_NV_sample_mask_override_coverage 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" @@ -7336,7 +7657,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( #define VK_NVX_multiview_per_view_attributes 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" - typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { VkStructureType sType; void* pNext; @@ -7349,7 +7669,6 @@ typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" - typedef enum VkViewportCoordinateSwizzleNV { VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, @@ -7364,9 +7683,7 @@ typedef enum VkViewportCoordinateSwizzleNV { VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF } VkViewportCoordinateSwizzleNV; - typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; - typedef struct VkViewportSwizzleNV { VkViewportCoordinateSwizzleNV x; VkViewportCoordinateSwizzleNV y; @@ -7388,7 +7705,6 @@ typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" - typedef enum VkDiscardRectangleModeEXT { VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, @@ -7397,9 +7713,7 @@ typedef enum VkDiscardRectangleModeEXT { VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDiscardRectangleModeEXT; - typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; - typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { VkStructureType sType; void* pNext; @@ -7415,7 +7729,6 @@ typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { const VkRect2D* pDiscardRectangles; } VkPipelineDiscardRectangleStateCreateInfoEXT; - typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); #ifndef VK_NO_PROTOTYPES @@ -7426,11 +7739,11 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( const VkRect2D* pDiscardRectangles); #endif + #define VK_EXT_conservative_rasterization 1 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" - typedef enum VkConservativeRasterizationModeEXT { VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, @@ -7440,9 +7753,7 @@ typedef enum VkConservativeRasterizationModeEXT { VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkConservativeRasterizationModeEXT; - typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; - typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { VkStructureType sType; void* pNext; @@ -7470,9 +7781,7 @@ typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { #define VK_EXT_depth_clip_enable 1 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" - typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; - typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { VkStructureType sType; void* pNext; @@ -7489,14 +7798,13 @@ typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { #define VK_EXT_swapchain_colorspace 1 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" #define VK_EXT_hdr_metadata 1 -#define VK_EXT_HDR_METADATA_SPEC_VERSION 1 +#define VK_EXT_HDR_METADATA_SPEC_VERSION 2 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" - typedef struct VkXYColorEXT { float x; float y; @@ -7515,7 +7823,6 @@ typedef struct VkHdrMetadataEXT { float maxFrameAverageLightLevel; } VkHdrMetadataEXT; - typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); #ifndef VK_NO_PROTOTYPES @@ -7526,6 +7833,7 @@ VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( const VkHdrMetadataEXT* pMetadata); #endif + #define VK_EXT_external_memory_dma_buf 1 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" @@ -7539,10 +7847,8 @@ VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( #define VK_EXT_debug_utils 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) - #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" - typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; @@ -7562,7 +7868,6 @@ typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugUtilsMessageTypeFlagBitsEXT; typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; - typedef struct VkDebugUtilsObjectNameInfoEXT { VkStructureType sType; const void* pNext; @@ -7619,7 +7924,6 @@ typedef struct VkDebugUtilsMessengerCreateInfoEXT { void* pUserData; } VkDebugUtilsMessengerCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); @@ -7681,10 +7985,10 @@ VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); #endif -#define VK_EXT_sampler_filter_minmax 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" +#define VK_EXT_sampler_filter_minmax 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2 +#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" typedef enum VkSamplerReductionModeEXT { VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, @@ -7695,7 +7999,6 @@ typedef enum VkSamplerReductionModeEXT { VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkSamplerReductionModeEXT; - typedef struct VkSamplerReductionModeCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -7712,7 +8015,7 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_AMD_gpu_shader_int16 1 -#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 +#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" @@ -7729,7 +8032,6 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_EXT_inline_uniform_block 1 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" - typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { VkStructureType sType; void* pNext; @@ -7770,7 +8072,6 @@ typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { #define VK_EXT_sample_locations 1 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" - typedef struct VkSampleLocationEXT { float x; float y; @@ -7827,7 +8128,6 @@ typedef struct VkMultisamplePropertiesEXT { VkExtent2D maxSampleLocationGridSize; } VkMultisamplePropertiesEXT; - typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); @@ -7842,11 +8142,11 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( VkMultisamplePropertiesEXT* pMultisampleProperties); #endif + #define VK_EXT_blend_operation_advanced 1 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" - typedef enum VkBlendOverlapEXT { VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, VK_BLEND_OVERLAP_DISJOINT_EXT = 1, @@ -7856,7 +8156,6 @@ typedef enum VkBlendOverlapEXT { VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF } VkBlendOverlapEXT; - typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { VkStructureType sType; void* pNext; @@ -7887,9 +8186,7 @@ typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { #define VK_NV_fragment_coverage_to_color 1 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" - typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; - typedef struct VkPipelineCoverageToColorStateCreateInfoNV { VkStructureType sType; const void* pNext; @@ -7904,7 +8201,6 @@ typedef struct VkPipelineCoverageToColorStateCreateInfoNV { #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" - typedef enum VkCoverageModulationModeNV { VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, @@ -7915,9 +8211,7 @@ typedef enum VkCoverageModulationModeNV { VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoverageModulationModeNV; - typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; - typedef struct VkPipelineCoverageModulationStateCreateInfoNV { VkStructureType sType; const void* pNext; @@ -7935,6 +8229,24 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV { #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" +#define VK_NV_shader_sm_builtins 1 +#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1 +#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" +typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; + +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; + + + #define VK_EXT_post_depth_coverage 1 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" @@ -7943,7 +8255,6 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV { #define VK_EXT_image_drm_format_modifier 1 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" - typedef struct VkDrmFormatModifierPropertiesEXT { uint64_t drmFormatModifier; uint32_t drmFormatModifierPlaneCount; @@ -7987,7 +8298,6 @@ typedef struct VkImageDrmFormatModifierPropertiesEXT { uint64_t drmFormatModifier; } VkImageDrmFormatModifierPropertiesEXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); #ifndef VK_NO_PROTOTYPES @@ -7997,13 +8307,12 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT* pProperties); #endif + #define VK_EXT_validation_cache 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) - #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" - typedef enum VkValidationCacheHeaderVersionEXT { VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, @@ -8011,9 +8320,7 @@ typedef enum VkValidationCacheHeaderVersionEXT { VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCacheHeaderVersionEXT; - typedef VkFlags VkValidationCacheCreateFlagsEXT; - typedef struct VkValidationCacheCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -8028,7 +8335,6 @@ typedef struct VkShaderModuleValidationCacheCreateInfoEXT { VkValidationCacheEXT validationCache; } VkShaderModuleValidationCacheCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); @@ -8059,11 +8365,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( void* pData); #endif + #define VK_EXT_descriptor_indexing 1 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" - typedef enum VkDescriptorBindingFlagBitsEXT { VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, @@ -8072,7 +8378,6 @@ typedef enum VkDescriptorBindingFlagBitsEXT { VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDescriptorBindingFlagBitsEXT; typedef VkFlags VkDescriptorBindingFlagsEXT; - typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -8157,7 +8462,6 @@ typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" - typedef enum VkShadingRatePaletteEntryNV { VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, @@ -8187,7 +8491,6 @@ typedef enum VkCoarseSampleOrderTypeNV { VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoarseSampleOrderTypeNV; - typedef struct VkShadingRatePaletteNV { uint32_t shadingRatePaletteEntryCount; const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; @@ -8237,7 +8540,6 @@ typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; - typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); @@ -8261,13 +8563,21 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); #endif + #define VK_NV_ray_tracing 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) - #define VK_NV_RAY_TRACING_SPEC_VERSION 3 #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" #define VK_SHADER_UNUSED_NV (~0U) +typedef enum VkAccelerationStructureTypeNV { + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, + VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, + VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, + VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureTypeNV; typedef enum VkRayTracingShaderGroupTypeNV { VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, @@ -8288,15 +8598,6 @@ typedef enum VkGeometryTypeNV { VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkGeometryTypeNV; -typedef enum VkAccelerationStructureTypeNV { - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, - VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, - VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, - VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkAccelerationStructureTypeNV; - typedef enum VkCopyAccelerationStructureModeNV { VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, @@ -8316,7 +8617,6 @@ typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkAccelerationStructureMemoryRequirementsTypeNV; - typedef enum VkGeometryFlagBitsNV { VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, @@ -8342,7 +8642,6 @@ typedef enum VkBuildAccelerationStructureFlagBitsNV { VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF } VkBuildAccelerationStructureFlagBitsNV; typedef VkFlags VkBuildAccelerationStructureFlagsNV; - typedef struct VkRayTracingShaderGroupCreateInfoNV { VkStructureType sType; const void* pNext; @@ -8459,7 +8758,6 @@ typedef struct VkPhysicalDeviceRayTracingPropertiesNV { uint32_t maxDescriptorSetAccelerationStructures; } VkPhysicalDeviceRayTracingPropertiesNV; - typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); @@ -8565,10 +8863,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( uint32_t shader); #endif -#define VK_NV_representative_fragment_test 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" +#define VK_NV_representative_fragment_test 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { VkStructureType sType; void* pNext; @@ -8584,9 +8882,8 @@ typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { #define VK_EXT_filter_cubic 1 -#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 1 +#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 2 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" - typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { VkStructureType sType; void* pNext; @@ -8606,7 +8903,6 @@ typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" - typedef enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, @@ -8617,7 +8913,6 @@ typedef enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF } VkQueueGlobalPriorityEXT; - typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -8629,7 +8924,6 @@ typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { #define VK_EXT_external_memory_host 1 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" - typedef struct VkImportMemoryHostPointerInfoEXT { VkStructureType sType; const void* pNext; @@ -8649,7 +8943,6 @@ typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { VkDeviceSize minImportedHostPointerAlignment; } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #ifndef VK_NO_PROTOTYPES @@ -8660,10 +8953,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #endif + #define VK_AMD_buffer_marker 1 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" - typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); #ifndef VK_NO_PROTOTYPES @@ -8675,11 +8968,27 @@ VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( uint32_t marker); #endif + +#define VK_AMD_pipeline_compiler_control 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control" + +typedef enum VkPipelineCompilerControlFlagBitsAMD { + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkPipelineCompilerControlFlagBitsAMD; +typedef VkFlags VkPipelineCompilerControlFlagsAMD; +typedef struct VkPipelineCompilerControlCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkPipelineCompilerControlFlagsAMD compilerControlFlags; +} VkPipelineCompilerControlCreateInfoAMD; + + + #define VK_EXT_calibrated_timestamps 1 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" - typedef enum VkTimeDomainEXT { VK_TIME_DOMAIN_DEVICE_EXT = 0, VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, @@ -8690,14 +8999,12 @@ typedef enum VkTimeDomainEXT { VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF } VkTimeDomainEXT; - typedef struct VkCalibratedTimestampInfoEXT { VkStructureType sType; const void* pNext; VkTimeDomainEXT timeDomain; } VkCalibratedTimestampInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); @@ -8715,10 +9022,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( uint64_t* pMaxDeviation); #endif -#define VK_AMD_shader_core_properties 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" +#define VK_AMD_shader_core_properties 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2 +#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { VkStructureType sType; void* pNext; @@ -8744,7 +9051,6 @@ typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" - typedef enum VkMemoryOverallocationBehaviorAMD { VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, @@ -8754,7 +9060,6 @@ typedef enum VkMemoryOverallocationBehaviorAMD { VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1), VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF } VkMemoryOverallocationBehaviorAMD; - typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { VkStructureType sType; const void* pNext; @@ -8766,7 +9071,6 @@ typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { #define VK_EXT_vertex_attribute_divisor 1 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" - typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { VkStructureType sType; void* pNext; @@ -8794,6 +9098,32 @@ typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { +#define VK_EXT_pipeline_creation_feedback 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" + +typedef enum VkPipelineCreationFeedbackFlagBitsEXT { + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004, + VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPipelineCreationFeedbackFlagBitsEXT; +typedef VkFlags VkPipelineCreationFeedbackFlagsEXT; +typedef struct VkPipelineCreationFeedbackEXT { + VkPipelineCreationFeedbackFlagsEXT flags; + uint64_t duration; +} VkPipelineCreationFeedbackEXT; + +typedef struct VkPipelineCreationFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfoEXT; + + + #define VK_NV_shader_subgroup_partitioned 1 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" @@ -8802,7 +9132,6 @@ typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { #define VK_NV_compute_shader_derivatives 1 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" - typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { VkStructureType sType; void* pNext; @@ -8815,7 +9144,6 @@ typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { #define VK_NV_mesh_shader 1 #define VK_NV_MESH_SHADER_SPEC_VERSION 1 #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" - typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { VkStructureType sType; void* pNext; @@ -8846,7 +9174,6 @@ typedef struct VkDrawMeshTasksIndirectCommandNV { uint32_t firstTask; } VkDrawMeshTasksIndirectCommandNV; - typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -8874,10 +9201,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( uint32_t stride); #endif + #define VK_NV_fragment_shader_barycentric 1 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" - typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { VkStructureType sType; void* pNext; @@ -8887,9 +9214,8 @@ typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { #define VK_NV_shader_image_footprint 1 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" - typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { VkStructureType sType; void* pNext; @@ -8901,7 +9227,6 @@ typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { #define VK_NV_scissor_exclusive 1 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" - typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { VkStructureType sType; const void* pNext; @@ -8915,7 +9240,6 @@ typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { VkBool32 exclusiveScissor; } VkPhysicalDeviceExclusiveScissorFeaturesNV; - typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); #ifndef VK_NO_PROTOTYPES @@ -8926,10 +9250,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( const VkRect2D* pExclusiveScissors); #endif + #define VK_NV_device_diagnostic_checkpoints 1 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" - typedef struct VkQueueFamilyCheckpointPropertiesNV { VkStructureType sType; void* pNext; @@ -8943,7 +9267,6 @@ typedef struct VkCheckpointDataNV { void* pCheckpointMarker; } VkCheckpointDataNV; - typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); @@ -8958,10 +9281,172 @@ VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( VkCheckpointDataNV* pCheckpointData); #endif + +#define VK_INTEL_shader_integer_functions2 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" +typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerFunctions2; +} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + + + +#define VK_INTEL_performance_query 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) +#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" + +typedef enum VkPerformanceConfigurationTypeINTEL { + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, + VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, + VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, + VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1), + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceConfigurationTypeINTEL; + +typedef enum VkQueryPoolSamplingModeINTEL { + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, + VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, + VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, + VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1), + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkQueryPoolSamplingModeINTEL; + +typedef enum VkPerformanceOverrideTypeINTEL { + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, + VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, + VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL, + VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1), + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceOverrideTypeINTEL; + +typedef enum VkPerformanceParameterTypeINTEL { + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0, + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1, + VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, + VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL, + VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1), + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceParameterTypeINTEL; + +typedef enum VkPerformanceValueTypeINTEL { + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0, + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1, + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2, + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3, + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4, + VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL, + VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, + VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1), + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceValueTypeINTEL; +typedef union VkPerformanceValueDataINTEL { + uint32_t value32; + uint64_t value64; + float valueFloat; + VkBool32 valueBool; + const char* valueString; +} VkPerformanceValueDataINTEL; + +typedef struct VkPerformanceValueINTEL { + VkPerformanceValueTypeINTEL type; + VkPerformanceValueDataINTEL data; +} VkPerformanceValueINTEL; + +typedef struct VkInitializePerformanceApiInfoINTEL { + VkStructureType sType; + const void* pNext; + void* pUserData; +} VkInitializePerformanceApiInfoINTEL; + +typedef struct VkQueryPoolCreateInfoINTEL { + VkStructureType sType; + const void* pNext; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolCreateInfoINTEL; + +typedef struct VkPerformanceMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint64_t marker; +} VkPerformanceMarkerInfoINTEL; + +typedef struct VkPerformanceStreamMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint32_t marker; +} VkPerformanceStreamMarkerInfoINTEL; + +typedef struct VkPerformanceOverrideInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceOverrideTypeINTEL type; + VkBool32 enable; + uint64_t parameter; +} VkPerformanceOverrideInfoINTEL; + +typedef struct VkPerformanceConfigurationAcquireInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceConfigurationTypeINTEL type; +} VkPerformanceConfigurationAcquireInfoINTEL; + +typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); +typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo); +typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration); +typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( + VkDevice device, + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); + +VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( + VkDevice device); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL* pOverrideInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( + VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, + VkPerformanceConfigurationINTEL* pConfiguration); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( + VkDevice device, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( + VkQueue queue, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( + VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL* pValue); +#endif + + #define VK_EXT_pci_bus_info 1 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" - typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { VkStructureType sType; void* pNext; @@ -8973,10 +9458,34 @@ typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { +#define VK_AMD_display_native_hdr 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr" +typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 localDimmingSupport; +} VkDisplayNativeHdrSurfaceCapabilitiesAMD; + +typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkBool32 localDimmingEnable; +} VkSwapchainDisplayNativeHdrCreateInfoAMD; + +typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( + VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable); +#endif + + #define VK_EXT_fragment_density_map 1 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" - typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { VkStructureType sType; void* pNext; @@ -9004,7 +9513,6 @@ typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { #define VK_EXT_scalar_block_layout 1 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" - typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { VkStructureType sType; void* pNext; @@ -9023,10 +9531,64 @@ typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" +#define VK_EXT_subgroup_size_control 1 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" +typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; +} VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; + +typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; +} VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; + +typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT { + VkStructureType sType; + void* pNext; + uint32_t requiredSubgroupSize; +} VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; + + + +#define VK_AMD_shader_core_properties2 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2" + +typedef enum VkShaderCorePropertiesFlagBitsAMD { + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkShaderCorePropertiesFlagBitsAMD; +typedef VkFlags VkShaderCorePropertiesFlagsAMD; +typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { + VkStructureType sType; + void* pNext; + VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; + uint32_t activeComputeUnitCount; +} VkPhysicalDeviceShaderCoreProperties2AMD; + + + +#define VK_AMD_device_coherent_memory 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory" +typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; + + + #define VK_EXT_memory_budget 1 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" - typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { VkStructureType sType; void* pNext; @@ -9039,7 +9601,6 @@ typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { #define VK_EXT_memory_priority 1 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" - typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { VkStructureType sType; void* pNext; @@ -9057,7 +9618,6 @@ typedef struct VkMemoryPriorityAllocateInfoEXT { #define VK_NV_dedicated_allocation_image_aliasing 1 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" - typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { VkStructureType sType; void* pNext; @@ -9068,17 +9628,17 @@ typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { #define VK_EXT_buffer_device_address 1 typedef uint64_t VkDeviceAddress; - #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" - -typedef struct VkPhysicalDeviceBufferAddressFeaturesEXT { +typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { VkStructureType sType; void* pNext; VkBool32 bufferDeviceAddress; VkBool32 bufferDeviceAddressCaptureReplay; VkBool32 bufferDeviceAddressMultiDevice; -} VkPhysicalDeviceBufferAddressFeaturesEXT; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; + +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; typedef struct VkBufferDeviceAddressInfoEXT { VkStructureType sType; @@ -9089,10 +9649,9 @@ typedef struct VkBufferDeviceAddressInfoEXT { typedef struct VkBufferDeviceAddressCreateInfoEXT { VkStructureType sType; const void* pNext; - VkDeviceSize deviceAddress; + VkDeviceAddress deviceAddress; } VkBufferDeviceAddressCreateInfoEXT; - typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo); #ifndef VK_NO_PROTOTYPES @@ -9101,10 +9660,10 @@ VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( const VkBufferDeviceAddressInfoEXT* pInfo); #endif + #define VK_EXT_separate_stencil_usage 1 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" - typedef struct VkImageStencilUsageCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -9114,16 +9673,16 @@ typedef struct VkImageStencilUsageCreateInfoEXT { #define VK_EXT_validation_features 1 -#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" - typedef enum VkValidationFeatureEnableEXT { VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, - VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, - VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), + VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, + VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationFeatureEnableEXT; @@ -9140,7 +9699,6 @@ typedef enum VkValidationFeatureDisableEXT { VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1), VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationFeatureDisableEXT; - typedef struct VkValidationFeaturesEXT { VkStructureType sType; const void* pNext; @@ -9156,7 +9714,6 @@ typedef struct VkValidationFeaturesEXT { #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" - typedef enum VkComponentTypeNV { VK_COMPONENT_TYPE_FLOAT16_NV = 0, VK_COMPONENT_TYPE_FLOAT32_NV = 1, @@ -9185,7 +9742,6 @@ typedef enum VkScopeNV { VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1), VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF } VkScopeNV; - typedef struct VkCooperativeMatrixPropertiesNV { VkStructureType sType; void* pNext; @@ -9212,7 +9768,6 @@ typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { VkShaderStageFlags cooperativeMatrixSupportedStages; } VkPhysicalDeviceCooperativeMatrixPropertiesNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); #ifndef VK_NO_PROTOTYPES @@ -9222,6 +9777,213 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV* pProperties); #endif + +#define VK_NV_coverage_reduction_mode 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode" + +typedef enum VkCoverageReductionModeNV { + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, + VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, + VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV, + VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1), + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageReductionModeNV; +typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; +typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 coverageReductionMode; +} VkPhysicalDeviceCoverageReductionModeFeaturesNV; + +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; + +typedef struct VkFramebufferMixedSamplesCombinationNV { + VkStructureType sType; + void* pNext; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t* pCombinationCount, + VkFramebufferMixedSamplesCombinationNV* pCombinations); +#endif + + +#define VK_EXT_fragment_shader_interlock 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" +typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; + + + +#define VK_EXT_ycbcr_image_arrays 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; + + + +#define VK_EXT_headless_surface 1 +#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 +#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" +typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; +typedef struct VkHeadlessSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkHeadlessSurfaceCreateFlagsEXT flags; +} VkHeadlessSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( + VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_EXT_line_rasterization 1 +#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization" + +typedef enum VkLineRasterizationModeEXT { + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1, + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3, + VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, + VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, + VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1), + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkLineRasterizationModeEXT; +typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; +} VkPhysicalDeviceLineRasterizationFeaturesEXT; + +typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t lineSubPixelPrecisionBits; +} VkPhysicalDeviceLineRasterizationPropertiesEXT; + +typedef struct VkPipelineRasterizationLineStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkLineRasterizationModeEXT lineRasterizationMode; + VkBool32 stippledLineEnable; + uint32_t lineStippleFactor; + uint16_t lineStipplePattern; +} VkPipelineRasterizationLineStateCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( + VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern); +#endif + + +#define VK_EXT_host_query_reset 1 +#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 +#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" +typedef struct VkPhysicalDeviceHostQueryResetFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hostQueryReset; +} VkPhysicalDeviceHostQueryResetFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); +#endif + + +#define VK_EXT_index_type_uint8 1 +#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1 +#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8" +typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 indexTypeUint8; +} VkPhysicalDeviceIndexTypeUint8FeaturesEXT; + + + +#define VK_EXT_shader_demote_to_helper_invocation 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + + + +#define VK_EXT_texel_buffer_alignment 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + +typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; + + + +#define VK_GOOGLE_user_type 1 +#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 +#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" + #ifdef __cplusplus } #endif diff --git a/external/vulkan/vulkan_fuchsia.h b/external/vulkan/vulkan_fuchsia.h index 1c335fd3..81ebe55d 100644 --- a/external/vulkan/vulkan_fuchsia.h +++ b/external/vulkan/vulkan_fuchsia.h @@ -1,10 +1,6 @@ #ifndef VULKAN_FUCHSIA_H_ #define VULKAN_FUCHSIA_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_FUCHSIA_imagepipe_surface 1 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" - typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; - typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { VkStructureType sType; const void* pNext; @@ -40,7 +40,6 @@ typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { zx_handle_t imagePipeHandle; } VkImagePipeSurfaceCreateInfoFUCHSIA; - typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/external/vulkan/vulkan_ggp.h b/external/vulkan/vulkan_ggp.h new file mode 100644 index 00000000..fd306131 --- /dev/null +++ b/external/vulkan/vulkan_ggp.h @@ -0,0 +1,68 @@ +#ifndef VULKAN_GGP_H_ +#define VULKAN_GGP_H_ 1 + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_GGP_stream_descriptor_surface 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface" +typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; +typedef struct VkStreamDescriptorSurfaceCreateInfoGGP { + VkStructureType sType; + const void* pNext; + VkStreamDescriptorSurfaceCreateFlagsGGP flags; + GgpStreamDescriptor streamDescriptor; +} VkStreamDescriptorSurfaceCreateInfoGGP; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateStreamDescriptorSurfaceGGP( + VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_GGP_frame_token 1 +#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1 +#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token" +typedef struct VkPresentFrameTokenGGP { + VkStructureType sType; + const void* pNext; + GgpFrameToken frameToken; +} VkPresentFrameTokenGGP; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/vulkan/vulkan_ios.h b/external/vulkan/vulkan_ios.h index d221a9ba..72ef1a8a 100644 --- a/external/vulkan/vulkan_ios.h +++ b/external/vulkan/vulkan_ios.h @@ -1,10 +1,6 @@ #ifndef VULKAN_IOS_H_ #define VULKAN_IOS_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_MVK_ios_surface 1 #define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - typedef struct VkIOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +40,6 @@ typedef struct VkIOSSurfaceCreateInfoMVK { const void* pView; } VkIOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/external/vulkan/vulkan_macos.h b/external/vulkan/vulkan_macos.h index 5d6b6aeb..e6e5deaa 100644 --- a/external/vulkan/vulkan_macos.h +++ b/external/vulkan/vulkan_macos.h @@ -1,10 +1,6 @@ #ifndef VULKAN_MACOS_H_ #define VULKAN_MACOS_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_MVK_macos_surface 1 #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - typedef struct VkMacOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +40,6 @@ typedef struct VkMacOSSurfaceCreateInfoMVK { const void* pView; } VkMacOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/external/vulkan/vulkan_metal.h b/external/vulkan/vulkan_metal.h new file mode 100644 index 00000000..3dec68c7 --- /dev/null +++ b/external/vulkan/vulkan_metal.h @@ -0,0 +1,64 @@ +#ifndef VULKAN_METAL_H_ +#define VULKAN_METAL_H_ 1 + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_EXT_metal_surface 1 + +#ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif + +#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 +#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" +typedef VkFlags VkMetalSurfaceCreateFlagsEXT; +typedef struct VkMetalSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer* pLayer; +} VkMetalSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( + VkInstance instance, + const VkMetalSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/vulkan/vulkan_vi.h b/external/vulkan/vulkan_vi.h index 3e37bab6..6fb66f9d 100644 --- a/external/vulkan/vulkan_vi.h +++ b/external/vulkan/vulkan_vi.h @@ -1,10 +1,6 @@ #ifndef VULKAN_VI_H_ #define VULKAN_VI_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_NN_vi_surface 1 #define VK_NN_VI_SURFACE_SPEC_VERSION 1 #define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" - typedef VkFlags VkViSurfaceCreateFlagsNN; - typedef struct VkViSurfaceCreateInfoNN { VkStructureType sType; const void* pNext; @@ -40,7 +40,6 @@ typedef struct VkViSurfaceCreateInfoNN { void* window; } VkViSurfaceCreateInfoNN; - typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/external/vulkan/vulkan_wayland.h b/external/vulkan/vulkan_wayland.h index 33a22de3..599d05b2 100644 --- a/external/vulkan/vulkan_wayland.h +++ b/external/vulkan/vulkan_wayland.h @@ -1,10 +1,6 @@ #ifndef VULKAN_WAYLAND_H_ #define VULKAN_WAYLAND_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_wayland_surface 1 #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - typedef struct VkWaylandSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +41,6 @@ typedef struct VkWaylandSurfaceCreateInfoKHR { struct wl_surface* surface; } VkWaylandSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); diff --git a/external/vulkan/vulkan_win32.h b/external/vulkan/vulkan_win32.h index b9d63d47..20a1dc0e 100644 --- a/external/vulkan/vulkan_win32.h +++ b/external/vulkan/vulkan_win32.h @@ -1,10 +1,6 @@ #ifndef VULKAN_WIN32_H_ #define VULKAN_WIN32_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_win32_surface 1 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - typedef struct VkWin32SurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +41,6 @@ typedef struct VkWin32SurfaceCreateInfoKHR { HWND hwnd; } VkWin32SurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); @@ -57,10 +56,10 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( uint32_t queueFamilyIndex); #endif + #define VK_KHR_external_memory_win32 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -90,7 +89,6 @@ typedef struct VkMemoryGetWin32HandleInfoKHR { VkExternalMemoryHandleTypeFlagBits handleType; } VkMemoryGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); @@ -107,10 +105,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); #endif + #define VK_KHR_win32_keyed_mutex 1 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" - typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { VkStructureType sType; const void* pNext; @@ -128,7 +126,6 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { #define VK_KHR_external_semaphore_win32 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" - typedef struct VkImportSemaphoreWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -163,7 +160,6 @@ typedef struct VkSemaphoreGetWin32HandleInfoKHR { VkExternalSemaphoreHandleTypeFlagBits handleType; } VkSemaphoreGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -178,10 +174,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_KHR_external_fence_win32 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" - typedef struct VkImportFenceWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -207,7 +203,6 @@ typedef struct VkFenceGetWin32HandleInfoKHR { VkExternalFenceHandleTypeFlagBits handleType; } VkFenceGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -222,10 +217,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_NV_external_memory_win32 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoNV { VkStructureType sType; const void* pNext; @@ -240,7 +235,6 @@ typedef struct VkExportMemoryWin32HandleInfoNV { DWORD dwAccess; } VkExportMemoryWin32HandleInfoNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); #ifndef VK_NO_PROTOTYPES @@ -251,10 +245,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( HANDLE* pHandle); #endif -#define VK_NV_win32_keyed_mutex 1 -#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 -#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" +#define VK_NV_win32_keyed_mutex 1 +#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 +#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { VkStructureType sType; const void* pNext; @@ -269,6 +263,64 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { +#define VK_EXT_full_screen_exclusive 1 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" + +typedef enum VkFullScreenExclusiveEXT { + VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, + VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, + VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, + VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, + VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, + VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, + VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1), + VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFullScreenExclusiveEXT; +typedef struct VkSurfaceFullScreenExclusiveInfoEXT { + VkStructureType sType; + void* pNext; + VkFullScreenExclusiveEXT fullScreenExclusive; +} VkSurfaceFullScreenExclusiveInfoEXT; + +typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { + VkStructureType sType; + void* pNext; + VkBool32 fullScreenExclusiveSupported; +} VkSurfaceCapabilitiesFullScreenExclusiveEXT; + +typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { + VkStructureType sType; + const void* pNext; + HMONITOR hmonitor; +} VkSurfaceFullScreenExclusiveWin32InfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( + VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR* pModes); +#endif + #ifdef __cplusplus } #endif diff --git a/external/vulkan/vulkan_xcb.h b/external/vulkan/vulkan_xcb.h index f2129097..4cc0bc0c 100644 --- a/external/vulkan/vulkan_xcb.h +++ b/external/vulkan/vulkan_xcb.h @@ -1,10 +1,6 @@ #ifndef VULKAN_XCB_H_ #define VULKAN_XCB_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_xcb_surface 1 #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - typedef struct VkXcbSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +41,6 @@ typedef struct VkXcbSurfaceCreateInfoKHR { xcb_window_t window; } VkXcbSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); diff --git a/external/vulkan/vulkan_xlib.h b/external/vulkan/vulkan_xlib.h index ce3d36dd..ee2b48ac 100644 --- a/external/vulkan/vulkan_xlib.h +++ b/external/vulkan/vulkan_xlib.h @@ -1,10 +1,6 @@ #ifndef VULKAN_XLIB_H_ #define VULKAN_XLIB_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,12 +23,16 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_KHR_xlib_surface 1 #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - typedef struct VkXlibSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +41,6 @@ typedef struct VkXlibSurfaceCreateInfoKHR { Window window; } VkXlibSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); diff --git a/external/vulkan/vulkan_xlib_xrandr.h b/external/vulkan/vulkan_xlib_xrandr.h index 25efb077..08c4fd72 100644 --- a/external/vulkan/vulkan_xlib_xrandr.h +++ b/external/vulkan/vulkan_xlib_xrandr.h @@ -1,10 +1,6 @@ #ifndef VULKAN_XLIB_XRANDR_H_ #define VULKAN_XLIB_XRANDR_H_ 1 -#ifdef __cplusplus -extern "C" { -#endif - /* ** Copyright (c) 2015-2019 The Khronos Group Inc. ** @@ -27,10 +23,15 @@ extern "C" { */ +#ifdef __cplusplus +extern "C" { +#endif + + + #define VK_EXT_acquire_xlib_display 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" - typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); From 01bf10f9a80a0cdfe5cb41d2b99617e3a93b0c65 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 18 Oct 2019 20:28:54 +0200 Subject: [PATCH 4/7] Uee new VK_LAYER_KHRONOS_validation layer on all platforms Check if validation layer is actually present --- base/VulkanDebug.cpp | 23 +---------------------- base/vulkanexamplebase.cpp | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/base/VulkanDebug.cpp b/base/VulkanDebug.cpp index 8f642bfa..c18f1364 100644 --- a/base/VulkanDebug.cpp +++ b/base/VulkanDebug.cpp @@ -1,9 +1,7 @@ /* * Vulkan examples debug wrapper * -* Appendix for VK_EXT_Debug_Report can be found at https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0-VK_EXT_debug_report/doc/specs/vulkan/appendices/debug_report.txt -* -* Copyright (C) 2016 by Sascha Willems - www.saschawillems.de +* Copyright (C) by Sascha Willems - www.saschawillems.de * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ @@ -15,25 +13,6 @@ namespace vks { namespace debug { -#if !defined(__ANDROID__) - // On desktop the LunarG loaders exposes a meta layer that contains all layers - int32_t validationLayerCount = 1; - const char *validationLayerNames[] = { - "VK_LAYER_LUNARG_standard_validation" - }; -#else - // On Android we need to explicitly select all layers - int32_t validationLayerCount = 6; - const char *validationLayerNames[] = { - "VK_LAYER_GOOGLE_threading", - "VK_LAYER_LUNARG_parameter_validation", - "VK_LAYER_LUNARG_object_tracker", - "VK_LAYER_LUNARG_core_validation", - "VK_LAYER_LUNARG_swapchain", - "VK_LAYER_GOOGLE_unique_objects" - }; -#endif - PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback = VK_NULL_HANDLE; PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallback = VK_NULL_HANDLE; PFN_vkDebugReportMessageEXT dbgBreakCallback = VK_NULL_HANDLE; diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index e695a910..a197c39f 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -1,7 +1,7 @@ /* * Vulkan Example base class * -* Copyright (C) 2016-2017 by Sascha Willems - www.saschawillems.de +* Copyright (C) by Sascha Willems - www.saschawillems.de * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ @@ -65,8 +65,27 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation) } if (settings.validation) { - instanceCreateInfo.enabledLayerCount = vks::debug::validationLayerCount; - instanceCreateInfo.ppEnabledLayerNames = vks::debug::validationLayerNames; + // The VK_LAYER_KHRONOS_validation contains all current validation functionality. + // Note that on Android this layer requires at least NDK r20 + const char* validationLayerName = "VK_LAYER_KHRONOS_validation"; + // Check if this layer is available at instance level + uint32_t instanceLayerCount; + vkEnumerateInstanceLayerProperties(&instanceLayerCount, nullptr); + std::vector instanceLayerProperties(instanceLayerCount); + vkEnumerateInstanceLayerProperties(&instanceLayerCount, instanceLayerProperties.data()); + bool validationLayerPresent = false; + for each (VkLayerProperties layer in instanceLayerProperties) { + if (strcmp(layer.layerName, validationLayerName) == 0) { + validationLayerPresent = true; + break; + } + } + if (validationLayerPresent) { + instanceCreateInfo.ppEnabledLayerNames = &validationLayerName; + instanceCreateInfo.enabledLayerCount = 1; + } else { + std::cerr << "Validation layer VK_LAYER_KHRONOS_validation not present, validation is disabled"; + } } return vkCreateInstance(&instanceCreateInfo, nullptr, &instance); } From 10129ee606139b8230765eeaeb299642491194f0 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 18 Oct 2019 20:48:50 +0200 Subject: [PATCH 5/7] Uee new VK_LAYER_KHRONOS_validation layer on all platforms Check if validation layer is actually present --- base/vulkanexamplebase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index a197c39f..98744215 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -74,7 +74,7 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation) std::vector instanceLayerProperties(instanceLayerCount); vkEnumerateInstanceLayerProperties(&instanceLayerCount, instanceLayerProperties.data()); bool validationLayerPresent = false; - for each (VkLayerProperties layer in instanceLayerProperties) { + for (VkLayerProperties layer : instanceLayerProperties) { if (strcmp(layer.layerName, validationLayerName) == 0) { validationLayerPresent = true; break; From b3214c521b1a529efb380eb29eeab0b15f4fae92 Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Fri, 18 Oct 2019 20:51:46 +0200 Subject: [PATCH 6/7] Use VK_EXT_debug_utils instead of deprecated VK_EXT_debug_report for debugging --- base/VulkanDebug.cpp | 105 ++++++++++++++----------------------- base/vulkanexamplebase.cpp | 2 +- 2 files changed, 39 insertions(+), 68 deletions(-) diff --git a/base/VulkanDebug.cpp b/base/VulkanDebug.cpp index c18f1364..f2eded93 100644 --- a/base/VulkanDebug.cpp +++ b/base/VulkanDebug.cpp @@ -13,108 +13,79 @@ namespace vks { namespace debug { - PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback = VK_NULL_HANDLE; - PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallback = VK_NULL_HANDLE; - PFN_vkDebugReportMessageEXT dbgBreakCallback = VK_NULL_HANDLE; + PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; + PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; + VkDebugUtilsMessengerEXT debugUtilsMessenger; - VkDebugReportCallbackEXT msgCallback; - - VKAPI_ATTR VkBool32 VKAPI_CALL messageCallback( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objType, - uint64_t srcObject, - size_t location, - int32_t msgCode, - const char* pLayerPrefix, - const char* pMsg, + VKAPI_ATTR VkBool32 VKAPI_CALL debugUtilsMessengerCallback( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageType, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData) { // Select prefix depending on flags passed to the callback - // Note that multiple flags may be set for a single validation message std::string prefix(""); - // Error that may result in undefined behaviour - if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) - { - prefix += "ERROR:"; - }; - // Warnings may hint at unexpected / non-spec API usage - if (flags & VK_DEBUG_REPORT_WARNING_BIT_EXT) - { - prefix += "WARNING:"; - }; - // May indicate sub-optimal usage of the API - if (flags & VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT) - { - prefix += "PERFORMANCE:"; - }; - // Informal messages that may become handy during debugging - if (flags & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) - { - prefix += "INFO:"; + if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) { + prefix = "VERBOSE: "; } - // Diagnostic info from the Vulkan loader and layers - // Usually not helpful in terms of API usage, but may help to debug layer and loader problems - if (flags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) - { - prefix += "DEBUG:"; + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) { + prefix = "INFO: "; } + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) { + prefix = "WARNING: "; + } + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { + prefix = "ERROR: "; + } + // Display message to default output (console/logcat) std::stringstream debugMessage; - debugMessage << prefix << " [" << pLayerPrefix << "] Code " << msgCode << " : " << pMsg; + debugMessage << prefix << "[" << pCallbackData->messageIdNumber << "][" << pCallbackData->pMessageIdName << "] : " << pCallbackData->pMessage; #if defined(__ANDROID__) - if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) { + if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { LOGE("%s", debugMessage.str().c_str()); - } - else { + } else { LOGD("%s", debugMessage.str().c_str()); } #else - if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) { + if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) { std::cerr << debugMessage.str() << "\n"; - } - else { + } else { std::cout << debugMessage.str() << "\n"; } + fflush(stdout); #endif - fflush(stdout); - // The return value of this callback controls wether the Vulkan call that caused - // the validation message will be aborted or not - // We return VK_FALSE as we DON'T want Vulkan calls that cause a validation message - // (and return a VkResult) to abort - // If you instead want to have calls abort, pass in VK_TRUE and the function will - // return VK_ERROR_VALIDATION_FAILED_EXT + // The return value of this callback controls wether the Vulkan call that caused the validation message will be aborted or not + // We return VK_FALSE as we DON'T want Vulkan calls that cause a validation message to abort + // If you instead want to have calls abort, pass in VK_TRUE and the function will return VK_ERROR_VALIDATION_FAILED_EXT return VK_FALSE; } void setupDebugging(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportCallbackEXT callBack) { - CreateDebugReportCallback = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT")); - DestroyDebugReportCallback = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")); - dbgBreakCallback = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT")); - VkDebugReportCallbackCreateInfoEXT dbgCreateInfo = {}; - dbgCreateInfo.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT; - dbgCreateInfo.pfnCallback = (PFN_vkDebugReportCallbackEXT)messageCallback; - dbgCreateInfo.flags = flags; + vkCreateDebugUtilsMessengerEXT = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT")); + vkDestroyDebugUtilsMessengerEXT = reinterpret_cast(vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")); - VkResult err = CreateDebugReportCallback( - instance, - &dbgCreateInfo, - nullptr, - (callBack != VK_NULL_HANDLE) ? &callBack : &msgCallback); - assert(!err); + VkDebugUtilsMessengerCreateInfoEXT debugUtilsMessengerCI{}; + debugUtilsMessengerCI.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT; + debugUtilsMessengerCI.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT; + debugUtilsMessengerCI.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT; + debugUtilsMessengerCI.pfnUserCallback = debugUtilsMessengerCallback; + VkResult result = vkCreateDebugUtilsMessengerEXT(instance, &debugUtilsMessengerCI, nullptr, &debugUtilsMessenger); + assert(result == VK_SUCCESS); } void freeDebugCallback(VkInstance instance) { - if (msgCallback != VK_NULL_HANDLE) + if (debugUtilsMessenger != VK_NULL_HANDLE) { - DestroyDebugReportCallback(instance, msgCallback, nullptr); + vkDestroyDebugUtilsMessengerEXT(instance, debugUtilsMessenger, nullptr); } } } diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index 98744215..1ec8d6a1 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -58,7 +58,7 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation) { if (settings.validation) { - instanceExtensions.push_back(VK_EXT_DEBUG_REPORT_EXTENSION_NAME); + instanceExtensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME); } instanceCreateInfo.enabledExtensionCount = (uint32_t)instanceExtensions.size(); instanceCreateInfo.ppEnabledExtensionNames = instanceExtensions.data(); From eddd724e7c72d21f7ff974ed66ea32e36366e61a Mon Sep 17 00:00:00 2001 From: Sascha Willems Date: Wed, 23 Oct 2019 20:45:54 +0200 Subject: [PATCH 7/7] Removed unused compute shader ubo members --- .../computenbody/particle_calculate.comp | 2 -- .../computenbody/particle_calculate.comp.spv | Bin 4640 -> 4536 bytes .../computenbody/particle_integrate.comp | 2 -- .../computenbody/particle_integrate.comp.spv | Bin 1624 -> 1536 bytes examples/computenbody/computenbody.cpp | 6 +----- 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/data/shaders/computenbody/particle_calculate.comp b/data/shaders/computenbody/particle_calculate.comp index 9ae3d5b2..7d46a339 100644 --- a/data/shaders/computenbody/particle_calculate.comp +++ b/data/shaders/computenbody/particle_calculate.comp @@ -18,8 +18,6 @@ layout (local_size_x = 256) in; layout (binding = 1) uniform UBO { float deltaT; - float destX; - float destY; int particleCount; } ubo; diff --git a/data/shaders/computenbody/particle_calculate.comp.spv b/data/shaders/computenbody/particle_calculate.comp.spv index 37ba965fda824ef3040e32ad70295bda15af60c1..63d6804506e0b683182b5339f8f7da3983d9ea2f 100644 GIT binary patch literal 4536 zcmaKuX>(Ln5QZ-qhD1>@2)I)NsGuSW3NDB+niwKzB8e!dgdrIvFlICvaM!4~FDUN& zzOT4^@gtw{Kj@Eet+LAJx%V~>DfFb?>h8Du^y$;*oSP}M%xg`ONl9zcmi&-pqdjSX zNs_6_lvH-D?OVHOtTD9cyrt(Daa2-B1C5!+%p!6!xTP{YqGKv3gQJ-*-wsSx09MJEeF<>wG>y!uRXME#ga37ZF;LjG9n!;tFE(SJD7HRPA)wrj|piEZo=z+wE6NPY6N z$m07g0oR_M>-uM7dq(;*esVGc-8$u6OWU)Pb1ma$0q48cu}FRLGtlg#dnh5z>s>Hz z4$^&=fa}i7b?uX>(Q}oXjqdqrJMT24`Q@xf+cRvgX92du_%o3DO2B%pVF_?7q=FLi zTp-sB=bi^=jqWA-Tt=S+mf)B7ez?F%*lSTsK+gGBBHgdN^R<1a(Sz#_=>MMECOGrQ zIS!z=L4>^-JND{%`t5LnJ+7m=zqlv2qFcYb_3HEf)~6SiN4~qTBmQo5xv!YxoAKLf9{Jx{V>Z(9 z7xDT|26FaF{ckRTx?I$8I(k+|Yx)k(#GVfp0DVehOUQ*lzx%Pj+L31wdUKw$u_KSZ z*jEYt9H8Gko{P4+XW~0k_dHztPwHKUv~J~Z)N%pxLg3JU5mLW0dbb?i9MRv4(I@tI z1)Tieyq}k#J5SyoYM&2W&;062@ zkX7I??@dVk%INRS=;nyC-HI+3XS)quZWwr;+JnH{=2DMbHFR@D-)=#7kMhym5p;QL z_nW32zEO0!9$s=CIR@l}V-jcq5#Kk;{|+Gc zOdfw{&fSi5Pj@5l0oHgIa9%s|ULYUy?n8I3eB{0#-P~c1=k^QaHOB+MnDJE4xQ9|b zNq@f`!M!!^Vc@<_0Qz@yU~||SnFAIxi!GG^vOAY8PfTFhn?@9o&#;bd$9-kJeUa< z0At#bF93P%67ofm^((vIFXf!PBYGb9=w&!#%oE?OSJ3AJ*RckB6Zv07*B@v48oHct zME*F_*WrwDoyh+N`hVqr6QBMbekGNVZvi>;9O}G{H70uYHhOc<-o>8Sv-jZSAEvMN z@O|(OkS{aaUVi|hMswPO=J)tv9^*dE@ezdw~xv}vxs ziR*s`XUvbRe3uUjjMrn0l=HHG1>9-(W}0`X;Ws7tR>JckcUJ bAm_TV@9)qLmBW4ObB=dD>QVZ;?E>%**pqc_ literal 4640 zcmaKuX>(Ln5QZ-dL!zQA3Me8qfC?%CqM(9^iHRW^O(anP7nmd?M28F}1B#%65ycHu z-1mLow-0{gGyVtt5w2BM`8;=S>(mr_Q*XNa?LOUo`kZ@{-1zxTNir^JN}7}JliD*i z84r^rCnOV7+0oV8wRp5TxcH*wON}@w$)$nDOlD;sIRR`d4h`!#0kncCte2k(Ok}*s z@iQKI1S3yG{aWp2d_%*7rF)QhEc0zCZ|W#l`itex;hmL%Vs)r8+}W1;bIHlb8(O=m zmQQueWUy4O7W^%KWNABpa zpy!i$##Ba!Yyvgq<|BKub#m@p&WG54Z2Q<*DyKQmLhng^6BBixs6C2q-32LIt8qR$ zYbygo)m_qgvMxgw2L?*z(nva#8lOv6pbVuk&FNV%zb@w1I6iVTC0)ezu5DS@-nOZ& zrLSdEZ|BDLTAqB;jWW8mI8qvHD^`oOp8DbL0G?GDS*dOebKzN)YNy4u?P*gf4hwXZXdT%NO-4c4;4bM=Wi2Imaryf?vlmU7;m;Bpx^ z3E9Cc&1amoJWtQjC+xZC=5~G53>jS1o|3IQ6FCtSfH857vCg`3_F^5+v%apjb$#@= zBAvnMneEwF(?`EE)fU=gnI8F_slM3fcj)Fj4V(-sKbLNdSD#Lf=pQpFVDmvpAwLuQ zIHbC3^dFD3hWx6`wuan!*v2|@ALCC%>XV;A7QY7tVC`v{u73^@o{|1Q%|9VI1GxN!xLX`7#F9oEzy*u_c7wLWrU=H^DOxHexY@V;&9CXi7+jVCn ztu1Fi+MZ>7KMS#aj6WBtuK=RoCFtWa+nz22K8xt6fV>FE)x%uN;q2MH#r#{*&9w}_ zy!Xa}v$3y5EdV*!^ZM~SNqN_6`<};4{2tcyf6sFhocZH?H={R0gk8jry?f4nA6($f zx1+khIGelB?O)!0^?9!=({igK-)`)P--B+vaS=a;e(1@@!HivWYv6tUr@pnK8s8zm&E}E+jT&>1K7SIg?+hU4tknPF5~#~XALpRg z`e;hui}SD-fQ3Mx(%1rW5zy~`oUeA|S&UwvXDN2%(dYXWc`iWLZywJ@TirA9JyZ8Q zto;Z5UW~MF<*)Q|DRL$7(Z33*Uug|zcNs88%y%_<<9siNlm9B4=Nfd^$vZ>sOMvyv zuO9iYKsSG!O$)kQ+=naCTS5JOXv3D@OFi#LJ8+$R^m!F}W1k&x@=|EqcAnu2L&pPhM`pj<)zkeHn-$Z-!ZfG0h*}GTw<^H0lThJSOx)n}7a^8k+PI+@` zd-v*dn)_#beuFlHpO|M6DYRYJkBoadfNn2J?`a8nJMb~@7NmY<%y%ogIpS=G(BHH+eg<3gm>(I4~YW z{0{VaAmVqT%L$)|ALAU&cQ-Jnan>KnIP>Y>1>_E9@%LujJxKSo2YDZ`$KAknQ<3)r z`B?V=x@+Yl_g-{!hrKVepCzw39t3-V{JxBP2wi>*Oyb@e_b_l@vw;5npoh2F{vQGQ z0|&Bw9DuVY{njra9|g-m%h;oc`y;= zfb%xi81LfkNbir*eAAEzK|k=l)jpJQOOSEbF?&hqyq8{ zAZMOqowu>Z#LV7Aub+k DdDMN* diff --git a/data/shaders/computenbody/particle_integrate.comp b/data/shaders/computenbody/particle_integrate.comp index 85ad6e37..4ac2e07a 100644 --- a/data/shaders/computenbody/particle_integrate.comp +++ b/data/shaders/computenbody/particle_integrate.comp @@ -17,8 +17,6 @@ layout (local_size_x = 256) in; layout (binding = 1) uniform UBO { float deltaT; - float destX; - float destY; int particleCount; } ubo; diff --git a/data/shaders/computenbody/particle_integrate.comp.spv b/data/shaders/computenbody/particle_integrate.comp.spv index 4c55a1cf6d4303b77452dd0be6536d9e4135e066..477a12a924a7e06ec529d14109858220e967eefd 100644 GIT binary patch delta 33 pcmcb?)4;PKi;VfpPLo#`BveFr_gvvoNS^W@HIx0sxL!2crN0 delta 119 zcmZqRxxup`i&3AIL4|>Vff0yPQj1F>fHWHeM2rb476}$(2diVAT*!D{)dNX|GEkNS fh+$&PKsHE>XR|F+CL=c+SeqbFKydR)=5QtevA+%g diff --git a/examples/computenbody/computenbody.cpp b/examples/computenbody/computenbody.cpp index 2da46ef4..af51be87 100644 --- a/examples/computenbody/computenbody.cpp +++ b/examples/computenbody/computenbody.cpp @@ -1,7 +1,7 @@ /* * Vulkan Example - Compute shader N-body simulation using two passes and shared compute shader memory * -* Copyright (C) 2016 by Sascha Willems - www.saschawillems.de +* Copyright (C) by Sascha Willems - www.saschawillems.de * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ @@ -81,8 +81,6 @@ public: VkDescriptorSet descriptorSetBlur; struct computeUBO { // Compute shader uniform block object float deltaT; // Frame delta time - float destX; // x position of the attractor - float destY; // y position of the attractor int32_t particleCount; } ubo; } compute; @@ -682,8 +680,6 @@ public: void updateComputeUniformBuffers() { compute.ubo.deltaT = paused ? 0.0f : frameTimer * 0.05f; - compute.ubo.destX = sin(glm::radians(timer * 360.0f)) * 0.75f; - compute.ubo.destY = 0.0f; memcpy(compute.uniformBuffer.mapped, &compute.ubo, sizeof(compute.ubo)); }