From 0e673379d606460b689417dde1db964eb00a51d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=80=D0=B0=D0=BD=D0=B8=D0=BC=D0=B8=D1=80=20=D0=9A?= =?UTF-8?q?=D0=B0=D1=80=D0=B0=D1=9F=D0=B8=D1=9B?= Date: Wed, 7 Aug 2019 21:53:56 -0700 Subject: [PATCH] Added SPIRV shaders. --- .../runtime/shaders/spirv/fs_albedo_output.bin | Bin 0 -> 1072 bytes .../runtime/shaders/spirv/fs_bloom_combine.bin | Bin 0 -> 1339 bytes examples/runtime/shaders/spirv/fs_callback.bin | Bin 0 -> 926 bytes .../shaders/spirv/fs_deferred_combine.bin | Bin 0 -> 1663 bytes .../runtime/shaders/spirv/fs_deferred_geom.bin | Bin 0 -> 2553 bytes .../shaders/spirv/fs_deferred_light_ta.bin | Bin 0 -> 2942 bytes .../runtime/shaders/spirv/fs_downsample.bin | Bin 0 -> 3248 bytes examples/runtime/shaders/spirv/fs_ibl_mesh.bin | Bin 0 -> 5932 bytes .../runtime/shaders/spirv/fs_ibl_skybox.bin | Bin 0 -> 3436 bytes examples/runtime/shaders/spirv/fs_oit.bin | Bin 0 -> 640 bytes examples/runtime/shaders/spirv/fs_oit_wb.bin | Bin 0 -> 1236 bytes .../runtime/shaders/spirv/fs_oit_wb_blit.bin | Bin 0 -> 1278 bytes .../shaders/spirv/fs_oit_wb_separate.bin | Bin 0 -> 1092 bytes .../shaders/spirv/fs_oit_wb_separate_blit.bin | Bin 0 -> 1278 bytes examples/runtime/shaders/spirv/fs_particle.bin | Bin 0 -> 1353 bytes .../runtime/shaders/spirv/fs_picking_id.bin | Bin 0 -> 921 bytes .../runtime/shaders/spirv/fs_picking_shaded.bin | Bin 0 -> 1526 bytes examples/runtime/shaders/spirv/fs_pom.bin | Bin 0 -> 4611 bytes .../runtime/shaders/spirv/fs_rsm_combine.bin | Bin 0 -> 9114 bytes .../runtime/shaders/spirv/fs_rsm_gbuffer.bin | Bin 0 -> 835 bytes .../runtime/shaders/spirv/fs_rsm_lbuffer.bin | Bin 0 -> 2628 bytes .../runtime/shaders/spirv/fs_rsm_shadow.bin | Bin 0 -> 925 bytes .../shaders/spirv/fs_shadowmaps_color_black.bin | Bin 0 -> 362 bytes .../spirv/fs_shadowmaps_color_lighting_esm.bin | Bin 0 -> 6564 bytes .../fs_shadowmaps_color_lighting_esm_csm.bin | Bin 0 -> 11417 bytes .../fs_shadowmaps_color_lighting_esm_linear.bin | Bin 0 -> 6620 bytes ...shadowmaps_color_lighting_esm_linear_csm.bin | Bin 0 -> 11641 bytes ...hadowmaps_color_lighting_esm_linear_omni.bin | Bin 0 -> 9074 bytes .../fs_shadowmaps_color_lighting_esm_omni.bin | Bin 0 -> 9018 bytes .../spirv/fs_shadowmaps_color_lighting_hard.bin | Bin 0 -> 6380 bytes .../fs_shadowmaps_color_lighting_hard_csm.bin | Bin 0 -> 10729 bytes ...fs_shadowmaps_color_lighting_hard_linear.bin | Bin 0 -> 6436 bytes ...hadowmaps_color_lighting_hard_linear_csm.bin | Bin 0 -> 10953 bytes ...adowmaps_color_lighting_hard_linear_omni.bin | Bin 0 -> 8890 bytes .../fs_shadowmaps_color_lighting_hard_omni.bin | Bin 0 -> 8834 bytes .../spirv/fs_shadowmaps_color_lighting_pcf.bin | Bin 0 -> 16664 bytes .../fs_shadowmaps_color_lighting_pcf_csm.bin | Bin 0 -> 50521 bytes .../fs_shadowmaps_color_lighting_pcf_linear.bin | Bin 0 -> 16820 bytes ...shadowmaps_color_lighting_pcf_linear_csm.bin | Bin 0 -> 51145 bytes ...hadowmaps_color_lighting_pcf_linear_omni.bin | Bin 0 -> 19310 bytes .../fs_shadowmaps_color_lighting_pcf_omni.bin | Bin 0 -> 19154 bytes .../spirv/fs_shadowmaps_color_lighting_vsm.bin | Bin 0 -> 6872 bytes .../fs_shadowmaps_color_lighting_vsm_csm.bin | Bin 0 -> 12769 bytes .../fs_shadowmaps_color_lighting_vsm_linear.bin | Bin 0 -> 6928 bytes ...shadowmaps_color_lighting_vsm_linear_csm.bin | Bin 0 -> 12993 bytes ...hadowmaps_color_lighting_vsm_linear_omni.bin | Bin 0 -> 9382 bytes .../fs_shadowmaps_color_lighting_vsm_omni.bin | Bin 0 -> 9326 bytes .../spirv/fs_shadowmaps_color_texture.bin | Bin 0 -> 1597 bytes .../shaders/spirv/fs_shadowmaps_hblur.bin | Bin 0 -> 2533 bytes .../shaders/spirv/fs_shadowmaps_hblur_vsm.bin | Bin 0 -> 3561 bytes .../shaders/spirv/fs_shadowmaps_packdepth.bin | Bin 0 -> 794 bytes .../spirv/fs_shadowmaps_packdepth_linear.bin | Bin 0 -> 674 bytes .../spirv/fs_shadowmaps_packdepth_vsm.bin | Bin 0 -> 994 bytes .../fs_shadowmaps_packdepth_vsm_linear.bin | Bin 0 -> 874 bytes .../shaders/spirv/fs_shadowmaps_texture.bin | Bin 0 -> 751 bytes .../shaders/spirv/fs_shadowmaps_unpackdepth.bin | Bin 0 -> 1341 bytes .../spirv/fs_shadowmaps_unpackdepth_vsm.bin | Bin 0 -> 1329 bytes .../shaders/spirv/fs_shadowmaps_vblur.bin | Bin 0 -> 2533 bytes .../shaders/spirv/fs_shadowmaps_vblur_vsm.bin | Bin 0 -> 3561 bytes .../spirv/fs_shadowvolume_color_lighting.bin | Bin 0 -> 4823 bytes .../spirv/fs_shadowvolume_color_texture.bin | Bin 0 -> 1597 bytes .../spirv/fs_shadowvolume_svbackblank.bin | Bin 0 -> 362 bytes .../spirv/fs_shadowvolume_svbackcolor.bin | Bin 0 -> 660 bytes .../spirv/fs_shadowvolume_svbacktex1.bin | Bin 0 -> 1082 bytes .../spirv/fs_shadowvolume_svbacktex2.bin | Bin 0 -> 1082 bytes .../spirv/fs_shadowvolume_svfrontblank.bin | Bin 0 -> 462 bytes .../spirv/fs_shadowvolume_svfrontcolor.bin | Bin 0 -> 660 bytes .../spirv/fs_shadowvolume_svfronttex1.bin | Bin 0 -> 1066 bytes .../spirv/fs_shadowvolume_svfronttex2.bin | Bin 0 -> 1066 bytes .../shaders/spirv/fs_shadowvolume_svside.bin | Bin 0 -> 1162 bytes .../spirv/fs_shadowvolume_svsideblank.bin | Bin 0 -> 426 bytes .../spirv/fs_shadowvolume_svsidecolor.bin | Bin 0 -> 724 bytes .../shaders/spirv/fs_shadowvolume_svsidetex.bin | Bin 0 -> 1575 bytes .../shaders/spirv/fs_shadowvolume_texture.bin | Bin 0 -> 751 bytes .../spirv/fs_shadowvolume_texture_lighting.bin | Bin 0 -> 5266 bytes examples/runtime/shaders/spirv/fs_sky.bin | Bin 0 -> 1734 bytes .../shaders/spirv/fs_sky_color_banding_fix.bin | Bin 0 -> 2682 bytes .../runtime/shaders/spirv/fs_sky_landscape.bin | Bin 0 -> 3372 bytes examples/runtime/shaders/spirv/fs_sms_mesh.bin | Bin 0 -> 9009 bytes .../runtime/shaders/spirv/fs_sms_mesh_pd.bin | Bin 0 -> 9037 bytes .../runtime/shaders/spirv/fs_sms_shadow.bin | Bin 0 -> 362 bytes .../runtime/shaders/spirv/fs_sms_shadow_pd.bin | Bin 0 -> 1147 bytes .../shaders/spirv/fs_stencil_color_black.bin | Bin 0 -> 362 bytes .../shaders/spirv/fs_stencil_color_lighting.bin | Bin 0 -> 3913 bytes .../shaders/spirv/fs_stencil_color_texture.bin | Bin 0 -> 1597 bytes .../shaders/spirv/fs_stencil_texture.bin | Bin 0 -> 751 bytes .../spirv/fs_stencil_texture_lighting.bin | Bin 0 -> 4534 bytes examples/runtime/shaders/spirv/fs_terrain.bin | Bin 0 -> 666 bytes examples/runtime/shaders/spirv/fs_tree.bin | Bin 0 -> 2971 bytes examples/runtime/shaders/spirv/fs_update.bin | Bin 0 -> 750 bytes examples/runtime/shaders/spirv/fs_update_3d.bin | Bin 0 -> 1336 bytes .../runtime/shaders/spirv/fs_update_cmp.bin | Bin 0 -> 871 bytes examples/runtime/shaders/spirv/fs_upsample.bin | Bin 0 -> 2570 bytes .../shaders/spirv/fs_vectordisplay_blit.bin | Bin 0 -> 1362 bytes .../shaders/spirv/fs_vectordisplay_blur.bin | Bin 0 -> 3862 bytes .../shaders/spirv/fs_vectordisplay_fb.bin | Bin 0 -> 1218 bytes examples/runtime/shaders/spirv/fs_vt_mip.bin | Bin 0 -> 1690 bytes examples/runtime/shaders/spirv/fs_vt_unlit.bin | Bin 0 -> 2653 bytes examples/runtime/shaders/spirv/fs_wf_mesh.bin | Bin 0 -> 3801 bytes .../runtime/shaders/spirv/fs_wf_wireframe.bin | Bin 0 -> 1645 bytes .../runtime/shaders/spirv/vs_albedo_output.bin | Bin 0 -> 2141 bytes examples/runtime/shaders/spirv/vs_callback.bin | Bin 0 -> 1562 bytes .../shaders/spirv/vs_deferred_combine.bin | Bin 0 -> 1144 bytes .../runtime/shaders/spirv/vs_deferred_debug.bin | Bin 0 -> 1144 bytes .../shaders/spirv/vs_deferred_debug_line.bin | Bin 0 -> 1108 bytes .../runtime/shaders/spirv/vs_deferred_geom.bin | Bin 0 -> 3342 bytes .../runtime/shaders/spirv/vs_deferred_light.bin | Bin 0 -> 1144 bytes .../runtime/shaders/spirv/vs_fullscreen.bin | Bin 0 -> 1144 bytes examples/runtime/shaders/spirv/vs_ibl_mesh.bin | Bin 0 -> 2073 bytes .../runtime/shaders/spirv/vs_ibl_skybox.bin | Bin 0 -> 2120 bytes examples/runtime/shaders/spirv/vs_oit.bin | Bin 0 -> 1624 bytes examples/runtime/shaders/spirv/vs_oit_blit.bin | Bin 0 -> 1144 bytes examples/runtime/shaders/spirv/vs_particle.bin | Bin 0 -> 2031 bytes .../runtime/shaders/spirv/vs_picking_shaded.bin | Bin 0 -> 2143 bytes examples/runtime/shaders/spirv/vs_pom.bin | Bin 0 -> 3092 bytes .../runtime/shaders/spirv/vs_rsm_combine.bin | Bin 0 -> 1144 bytes .../runtime/shaders/spirv/vs_rsm_gbuffer.bin | Bin 0 -> 1678 bytes .../runtime/shaders/spirv/vs_rsm_lbuffer.bin | Bin 0 -> 2759 bytes .../runtime/shaders/spirv/vs_rsm_shadow.bin | Bin 0 -> 1538 bytes .../shaders/spirv/vs_shadowmaps_color.bin | Bin 0 -> 934 bytes .../spirv/vs_shadowmaps_color_lighting.bin | Bin 0 -> 2391 bytes .../spirv/vs_shadowmaps_color_lighting_csm.bin | Bin 0 -> 3660 bytes .../vs_shadowmaps_color_lighting_linear.bin | Bin 0 -> 2471 bytes .../vs_shadowmaps_color_lighting_linear_csm.bin | Bin 0 -> 3932 bytes ...vs_shadowmaps_color_lighting_linear_omni.bin | Bin 0 -> 3743 bytes .../spirv/vs_shadowmaps_color_lighting_omni.bin | Bin 0 -> 3471 bytes .../spirv/vs_shadowmaps_color_texture.bin | Bin 0 -> 1144 bytes .../shaders/spirv/vs_shadowmaps_depth.bin | Bin 0 -> 934 bytes .../shaders/spirv/vs_shadowmaps_hblur.bin | Bin 0 -> 2599 bytes .../shaders/spirv/vs_shadowmaps_packdepth.bin | Bin 0 -> 1022 bytes .../spirv/vs_shadowmaps_packdepth_linear.bin | Bin 0 -> 1110 bytes .../shaders/spirv/vs_shadowmaps_texture.bin | Bin 0 -> 1144 bytes .../spirv/vs_shadowmaps_texture_lighting.bin | Bin 0 -> 1988 bytes .../shaders/spirv/vs_shadowmaps_unpackdepth.bin | Bin 0 -> 1144 bytes .../shaders/spirv/vs_shadowmaps_vblur.bin | Bin 0 -> 2599 bytes .../spirv/vs_shadowvolume_color_lighting.bin | Bin 0 -> 1926 bytes .../spirv/vs_shadowvolume_color_texture.bin | Bin 0 -> 1144 bytes .../shaders/spirv/vs_shadowvolume_svback.bin | Bin 0 -> 1312 bytes .../shaders/spirv/vs_shadowvolume_svfront.bin | Bin 0 -> 934 bytes .../shaders/spirv/vs_shadowvolume_svside.bin | Bin 0 -> 1662 bytes .../shaders/spirv/vs_shadowvolume_texture.bin | Bin 0 -> 1144 bytes .../spirv/vs_shadowvolume_texture_lighting.bin | Bin 0 -> 1988 bytes examples/runtime/shaders/spirv/vs_sky.bin | Bin 0 -> 4707 bytes .../runtime/shaders/spirv/vs_sky_landscape.bin | Bin 0 -> 1816 bytes examples/runtime/shaders/spirv/vs_sms_mesh.bin | Bin 0 -> 2239 bytes .../runtime/shaders/spirv/vs_sms_shadow.bin | Bin 0 -> 934 bytes .../runtime/shaders/spirv/vs_sms_shadow_pd.bin | Bin 0 -> 1022 bytes .../runtime/shaders/spirv/vs_stencil_color.bin | Bin 0 -> 934 bytes .../shaders/spirv/vs_stencil_color_lighting.bin | Bin 0 -> 1868 bytes .../shaders/spirv/vs_stencil_color_texture.bin | Bin 0 -> 1144 bytes .../shaders/spirv/vs_stencil_texture.bin | Bin 0 -> 1144 bytes .../spirv/vs_stencil_texture_lighting.bin | Bin 0 -> 1988 bytes examples/runtime/shaders/spirv/vs_terrain.bin | Bin 0 -> 1248 bytes .../shaders/spirv/vs_terrain_height_texture.bin | Bin 0 -> 1674 bytes examples/runtime/shaders/spirv/vs_tree.bin | Bin 0 -> 2144 bytes examples/runtime/shaders/spirv/vs_update.bin | Bin 0 -> 1112 bytes .../shaders/spirv/vs_vectordisplay_fb.bin | Bin 0 -> 1318 bytes .../runtime/shaders/spirv/vs_vt_generic.bin | Bin 0 -> 1457 bytes examples/runtime/shaders/spirv/vs_wf_mesh.bin | Bin 0 -> 2211 bytes .../runtime/shaders/spirv/vs_wf_wireframe.bin | Bin 0 -> 1777 bytes 160 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/runtime/shaders/spirv/fs_albedo_output.bin create mode 100644 examples/runtime/shaders/spirv/fs_bloom_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_callback.bin create mode 100644 examples/runtime/shaders/spirv/fs_deferred_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_deferred_geom.bin create mode 100644 examples/runtime/shaders/spirv/fs_deferred_light_ta.bin create mode 100644 examples/runtime/shaders/spirv/fs_downsample.bin create mode 100644 examples/runtime/shaders/spirv/fs_ibl_mesh.bin create mode 100644 examples/runtime/shaders/spirv/fs_ibl_skybox.bin create mode 100644 examples/runtime/shaders/spirv/fs_oit.bin create mode 100644 examples/runtime/shaders/spirv/fs_oit_wb.bin create mode 100644 examples/runtime/shaders/spirv/fs_oit_wb_blit.bin create mode 100644 examples/runtime/shaders/spirv/fs_oit_wb_separate.bin create mode 100644 examples/runtime/shaders/spirv/fs_oit_wb_separate_blit.bin create mode 100644 examples/runtime/shaders/spirv/fs_particle.bin create mode 100644 examples/runtime/shaders/spirv/fs_picking_id.bin create mode 100644 examples/runtime/shaders/spirv/fs_picking_shaded.bin create mode 100644 examples/runtime/shaders/spirv/fs_pom.bin create mode 100644 examples/runtime/shaders/spirv/fs_rsm_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_rsm_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/fs_rsm_lbuffer.bin create mode 100644 examples/runtime/shaders/spirv/fs_rsm_shadow.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_black.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_linear_csm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_linear_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_omni.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_hblur.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_hblur_vsm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_packdepth.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_vsm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_vsm_linear.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth_vsm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_vblur.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowmaps_vblur_vsm.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_color_lighting.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svbackblank.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svbackcolor.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex1.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex2.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svfrontblank.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svfrontcolor.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex1.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex2.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svside.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svsideblank.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svsidecolor.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_svsidetex.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_shadowvolume_texture_lighting.bin create mode 100644 examples/runtime/shaders/spirv/fs_sky.bin create mode 100644 examples/runtime/shaders/spirv/fs_sky_color_banding_fix.bin create mode 100644 examples/runtime/shaders/spirv/fs_sky_landscape.bin create mode 100644 examples/runtime/shaders/spirv/fs_sms_mesh.bin create mode 100644 examples/runtime/shaders/spirv/fs_sms_mesh_pd.bin create mode 100644 examples/runtime/shaders/spirv/fs_sms_shadow.bin create mode 100644 examples/runtime/shaders/spirv/fs_sms_shadow_pd.bin create mode 100644 examples/runtime/shaders/spirv/fs_stencil_color_black.bin create mode 100644 examples/runtime/shaders/spirv/fs_stencil_color_lighting.bin create mode 100644 examples/runtime/shaders/spirv/fs_stencil_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_stencil_texture.bin create mode 100644 examples/runtime/shaders/spirv/fs_stencil_texture_lighting.bin create mode 100644 examples/runtime/shaders/spirv/fs_terrain.bin create mode 100644 examples/runtime/shaders/spirv/fs_tree.bin create mode 100644 examples/runtime/shaders/spirv/fs_update.bin create mode 100644 examples/runtime/shaders/spirv/fs_update_3d.bin create mode 100644 examples/runtime/shaders/spirv/fs_update_cmp.bin create mode 100644 examples/runtime/shaders/spirv/fs_upsample.bin create mode 100644 examples/runtime/shaders/spirv/fs_vectordisplay_blit.bin create mode 100644 examples/runtime/shaders/spirv/fs_vectordisplay_blur.bin create mode 100644 examples/runtime/shaders/spirv/fs_vectordisplay_fb.bin create mode 100644 examples/runtime/shaders/spirv/fs_vt_mip.bin create mode 100644 examples/runtime/shaders/spirv/fs_vt_unlit.bin create mode 100644 examples/runtime/shaders/spirv/fs_wf_mesh.bin create mode 100644 examples/runtime/shaders/spirv/fs_wf_wireframe.bin create mode 100644 examples/runtime/shaders/spirv/vs_albedo_output.bin create mode 100644 examples/runtime/shaders/spirv/vs_callback.bin create mode 100644 examples/runtime/shaders/spirv/vs_deferred_combine.bin create mode 100644 examples/runtime/shaders/spirv/vs_deferred_debug.bin create mode 100644 examples/runtime/shaders/spirv/vs_deferred_debug_line.bin create mode 100644 examples/runtime/shaders/spirv/vs_deferred_geom.bin create mode 100644 examples/runtime/shaders/spirv/vs_deferred_light.bin create mode 100644 examples/runtime/shaders/spirv/vs_fullscreen.bin create mode 100644 examples/runtime/shaders/spirv/vs_ibl_mesh.bin create mode 100644 examples/runtime/shaders/spirv/vs_ibl_skybox.bin create mode 100644 examples/runtime/shaders/spirv/vs_oit.bin create mode 100644 examples/runtime/shaders/spirv/vs_oit_blit.bin create mode 100644 examples/runtime/shaders/spirv/vs_particle.bin create mode 100644 examples/runtime/shaders/spirv/vs_picking_shaded.bin create mode 100644 examples/runtime/shaders/spirv/vs_pom.bin create mode 100644 examples/runtime/shaders/spirv/vs_rsm_combine.bin create mode 100644 examples/runtime/shaders/spirv/vs_rsm_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/vs_rsm_lbuffer.bin create mode 100644 examples/runtime/shaders/spirv/vs_rsm_shadow.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_csm.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_csm.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_omni.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_omni.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_depth.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_hblur.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_packdepth.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_packdepth_linear.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_texture_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_unpackdepth.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowmaps_vblur.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_color_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_svback.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_svfront.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_svside.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_shadowvolume_texture_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_sky.bin create mode 100644 examples/runtime/shaders/spirv/vs_sky_landscape.bin create mode 100644 examples/runtime/shaders/spirv/vs_sms_mesh.bin create mode 100644 examples/runtime/shaders/spirv/vs_sms_shadow.bin create mode 100644 examples/runtime/shaders/spirv/vs_sms_shadow_pd.bin create mode 100644 examples/runtime/shaders/spirv/vs_stencil_color.bin create mode 100644 examples/runtime/shaders/spirv/vs_stencil_color_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_stencil_color_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_stencil_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_stencil_texture_lighting.bin create mode 100644 examples/runtime/shaders/spirv/vs_terrain.bin create mode 100644 examples/runtime/shaders/spirv/vs_terrain_height_texture.bin create mode 100644 examples/runtime/shaders/spirv/vs_tree.bin create mode 100644 examples/runtime/shaders/spirv/vs_update.bin create mode 100644 examples/runtime/shaders/spirv/vs_vectordisplay_fb.bin create mode 100644 examples/runtime/shaders/spirv/vs_vt_generic.bin create mode 100644 examples/runtime/shaders/spirv/vs_wf_mesh.bin create mode 100644 examples/runtime/shaders/spirv/vs_wf_wireframe.bin diff --git a/examples/runtime/shaders/spirv/fs_albedo_output.bin b/examples/runtime/shaders/spirv/fs_albedo_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0832cf1803fa03b723d3477637fd40cb1649712 GIT binary patch literal 1072 zcmZ9K$w~u35QfXdM8REAZxWY-Yfy|k1_EL{c=MzP!$e~U#EisolBe-`d=8(%gBQX7 z>r9K0yCmPI+=gpHZXIC%`4ZTOPpKyoZ8ODd8x$&KVzGO2uWbg`_g z<)lA!VNNW(uLE8cUa7XCTG&!IIfq4AI*6F8twZSK^yBU%s5RrT-Ke)?$I(j?w4=_W zillM$mIOYkpG&Xe>b<)t>fCQDchL2o1WB{r?f1tVNzi?Yp22xHQ?2pP3(h-X<1CCr zZ3vz@|L{9z7xFLK(_@XOC^VBQNqbAf$5W&-nK z_<0L3dj>NPm^T3PMqmz@Il$DPQB~?Lsv7mM=Vaxj3zB)o4@-lo4<1V~@!*LRle?f? zW+$g0-V|l+7W3OPW|;Z&x<4^gul@`-AhC{r$%54@|w& z)TU?R!R3_m`IUc|efs=s+00Ep#Dm!{oX6}JyssCaclO4C`xL{wRP@hmv4njv^Qj`K h`yzq&F^TN|G5T~3zO1U;PYyPBQX!i+xEKG!|;^0+4yMn2l{Z`_l*lc`Jb?VZ**G{yzKkSbbSF*(nf4e_P zo{su~KOgvT84nNqh5x*Vi!X+ro^_M{!=b$s-8s?%du$46gJb>=rGVC17u_fP6=^789pqCBzLtbR*c zPl;pJHQ|gM(Tg6=KBqNn?w?lfX$hPm5B|~A=Y4AOYg#e#UrqgbU=H<#bWbgGeCC09 zJom?3=f2ok^}DK-v&%Y59~%NjFDA#`FV5`64Uc;u56;0|_&B*c zccvG7W(|k_Tr0Jh0Xjajhx0n$wQqd-)$}?)3DFNf`A2EFU*Tpi&d4UHJb+Oy2sO zm^|cFb6dqivE=#?L!D}_RxA~^6%lteH+OfAa+y+ocRpXqD{@hB;7R$+KIZ~YiM>20W&@uQAAR~r z_bGo~HnY)Z%5!$WhrZ-(`l7?xDd<_*%o6h9?1*pJy{6fnY-XrO(C+1Do_eHo!`ury z^HJ+t9^PzPUV3E&=7clbiojg2o|nDv%=1If-#o91<4b5p@@oP+aUbNOCv>}LM*VtM6pp&!a huO8<<{#t%=hza#?WQY3b+6W z@4#!&r8i()kodPy6E`Nl&*_=?F=03}@BEy3=X|i$xR>e8RW_U?=_UrvsJqv0^$M=) zc3gJQ?Cy7-4hxA*S9i6HbE)J)*13esx(QcKP~_aS3NdpoY8_~h@Zo99%j9ZK0 z58I>RVZZHh_ysbS?(xch+|q@o{Y)>K!}jQLuh(xa`CMk)>pU4XxB5}%ZZwR$uBPL-{w~9ap&Pm29}cf!_G+ z4vhF4oy-j<;`raPBf))fdB#*b73BKSKDX%R<@5s+3*e!{N3R z?iMf0hP%b@$c8&U99~PAe^*`E!zU>{==(?*JU&ao$$g+(;BYJjM-lilYd&!N88Bui zH?Pf7_dDRTI>})db=||>zewo^Ps6^-rUo(Wn{4Z2*!O@jgZ}6Exqrx}o_yl;H=Yd4 zF4&LpOhQ5$=b4cY?qlQd37*r6>BqkjxyExQ;P50T&T~>e{o*`N%cll0PPu>q8d7Zg|CizIKB|^IkYjImSvEL|$UVX7ssJ$Fj$Gq(E#Pn>hws(qx+0r?aZW{H j)F75u3K+0q^8t%bcRfap_dx( zjY06zdo`LGB_{p??`--L{0X8#q7a|w%--eH-LCHSzH9A|_3m|geqpY1>esJ+4~+gW zc(b|R}|-+G}G!a#Uxt=6fpf6!{Q+QVTwRKrkCTx_*hv&L{~Cd`M8K^FEM-4#M9 z>v0t!FYzrG^z4;uB*B{Evf3jH_wzyB3jJJtBsbnErz0s(*;f#5iC$TH__0G+9 zJ;siwSg+vig|0iXGq%0Z^S>bW>TIL6lr^Znl4Gc_tuB6cwc6K@v34NWt6S^xl;#ZN+I4HUZnW0Km0ZWA z<&V~D=iAxxxvY~RguL4B;NJ~lmi21*3g$@o2!1tUbu7lk#-}m!)v_2D8=sGH^(@B4 z#%HiO)~l(*x1Hmr2_Mbbot!-}jLo94d40J*kn3GML;XF&yLw08U=(wR)n8nScq8Jp zpSl~jlg+nB#okeDzl!Zm@n*zKIacem|MT3^eUGr4`{^I#Z-se3j5Up62f`pzBjK9-!^RtbM)yN5!U-{Tc5RwZ!=rJ zwU5Hu6LQvdhgpr}ytmlCkTd>e^i%%VU~6!H^Tqa!T*CHE5!*Ln_xmyWzK{80`>2?2 z9~H5El-B=-Z(Y{oda->am+)4^<8+?qR9UP(+60;2eI9O{*Vey`uinW@F=qk(1be83 z+BrPuZy0;}G_3tHf!Ql!-;jS9d2ginB-q|a@ss%WhS>AJ#ndq2@A1_z;UDnTP;5Q- zFg3f%E$o{~?&+SMvk0d)C*kDHy+lX3?vKbDb2xoQzOnn5@eKPka(_i${Vq|NcYT1V zi!rrO7xhVJJj6Gqz7D4p`v?F3u{)e)zyFK5)*R25dxZIB#-2uLxyP7$9>$Dcj&FDo z(wO)2KIVJh61@2zV(OUq{sOQ5i7yv;-=WGrZRY3XG1r;%Id^pbefXYjJngX`pWpmU zQM)k+Ikhu4_1kHDd)&TH{Wb+Be-F-{Qk%12_wc*=By#7#@_uuv v-q-Nu9f^BAa?*)=BXUJu-h^|#`Nr*+Gj!%Avv<DDa6vgMQy=$WwFmW)6i7Y#zAlNtt1%w2cH6mUkMakL=2_MD!ZM@zXcK4b6 z2&Mvwh9*FPr~pAjfe;9xQ1BOo03kFKG!zIaN`)c{B#7Yr=FJTcj~LHA=ia$@=DfQT zmMY7IWOCsVr%`bEezn!x-V?34L09Nk&u-RV-V-^2(SEhL**McHC*9R}eY4-)9Ti=4 zgI;aao@}@4oz>k@S@dwX+DPt%;Ues4X}9Mt=c&#o7svt+wdFOlxU7B4qgRh z4Y<74Kg8$7X5;g!b4ortYb9=NHR~P472If5K2 zq_aLRrr>p|H8!@ZOP#p!MBIy|a7pT*#{m*+7@n404j5gselY%`Ch_Q#^@H)R1b=OZ zAB=x7_-7*S%r{K)&1Uej@|%8q$K{Nk2Zb3~j_*$%ab%0o$IPD|^O64CmP^T+&J&a!l#(Nv#ad_;A4V z5d;6Tsp)Is2h%qUi>FT*#K)=W?}r~;3*7C(bsv|$12X|{h>J80zYyZ@lx92*XodZX zR_;t3TAtI?C>nmt!`B`&{I2lfudgf^{=)m6;~YQBo(dR0_!mt(2l#JIblWdKy^U_f zfaz_+lTwc!LR;eSVWY>KY`!0U^Z?UiaMVSQd12}he}C}#T*1E-IQ++hO>J-`VDtdj zh4r8B9qNJUSvdS{8PsAwelR@@H>-QlFD)GoEp5)~w@NRzGrYwn;?UV%#ciW4iq# z8=lEvK{q>BB!G`zv2T?V2XFHYRS=nJiGT}yXfUF?bFOjOqTJ(}_|XY|uWWprdqn*Uw@;YZ`!vbTcO#Dc_$Oq;5l4RX z-XHcHl}-M4LhKRQSCs?*h<3C8Xo$UAHt#MmR{K!!&4f7o)Uw~sJ@TU!amLNchUZ*% zo{DVl!25!q+MM(0z)#2~hBxYj{=K9Re$ocsCSusfTf{p=zpct5=0*8953%qI`kTmx Nzpjc8`Klkfe*w~#32p!Y literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_downsample.bin b/examples/runtime/shaders/spirv/fs_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a56369ab7ddbcf436041f7bf5e178d6a48a8b37 GIT binary patch literal 3248 zcmZvfeQ1_d7>CdH`p#lm)>=`vu{otbED_2GY}5SM1{%y>KPr{+PG8q*YvXms3aO+I zh`^{If(lxY1rbybK_3wP7er845JB_-5fpuZME?X`*YiI2dXnep@!a=y-{;)FbDxK) z!?n?l+1{a>5~DqJ9v`2ZT4+qyrtWWC(w0(NsvaAkZ!D}#ThdrMaY0Iz_JQT{<>|b1 zwB21PUCd6BQ)lYP){$McUF(m{A6b9>#tp_VOcj?bb`d+5VLNB)Q}@U(WpfX6C3$iR zU{z9;^(?#!E#_CL(@!juR;$m*WK{X3u6w=y;n~^dkqz1T>YSK7x-dT6tWR#Q&)2!(2^=g>3m+b)ql4CZ-jq2XLsf~o}<4a_kE*2{61EP=WojW{*1KZaYt(z*S8;z zZv3lR`%-kw69{fNB1aARYr@cez)?v)Z1>8e?jdZs@3jvtep3}1Xix0Zewcl(!sPbGy|M{xxo^80W=|$z-o^1?-lse9 z<&kq&o?}|%+>Ij-t<%`+DuA6n8x=Lzv!{p{ijT7!Yr^W*?>llmspTv$H1$#JWEK5Ck1V1CLDjD?n0utQ7q?lepu+Fr$$6}7#FuQp?$?Ya_e8)0(uL)+`v^2LI- zH(=^B7TVs#RvW*Uw7i9*4r9@$x3Se?EVOJY(J}~=n;%-Uz|?Fkw0w&ldV_tJGnS=0e2*g!y+2^PR~~wQ#8$7d(0ian?;)7n z{LuRow!EnKXPBCeg|=VJV>+V0zv9ay=eIn^w8;4#M;`kBz;>TJ^#6&ieq*8kaEbl~ iOm2SYKZ`9d>i-Mo9gGd}FPI)y**~c*-N^KR2>$}9Iu6kQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_ibl_mesh.bin b/examples/runtime/shaders/spirv/fs_ibl_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..141386a90591586524c921943b9b2a73fda3d728 GIT binary patch literal 5932 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_oit.bin b/examples/runtime/shaders/spirv/fs_oit.bin new file mode 100644 index 0000000000000000000000000000000000000000..875db2c9995e88288c8d3743e9803fec3753bd83 GIT binary patch literal 640 zcmYk3QA+|*5QRtA-4%keqI$D6gM>f|Dgr48LaltW$6#5DB(OHrqPKoo|Eh;xg3fol z3l5BP&zYGsGj4a-kG^g{J0>ex{FdJ5lYF{X0^OC(f^su<8LQe2MY2^ZD{Ho7k&C^- zaL}I3AKFL92jrJ6Ah_I$#a7W9f6ks>;9K%Tc};cj8lYETq2jlML$QnX;JR|Vy-7aG zCYl;LEXw@CVggGbWYja`J$=n*4o7a@X#Dt*cBk3+GMi`Gw7;O!q*2zB4zqN+-W8|0 zLqb;IhTa?sW)Afjn7azRE){ed?z(@?O}!&=iF`}-RYfrO*8Oa_M9j7#{pfW(PCU0E z%pTy9eBa|@SNge${z7lh*MiXlw>(EZH}U0)JeYgnPV`@)#hw`4j~Kq$g?^cJB~Rq+ XaHdLhuI2FO>Oc$ptBp_H);0SBnd2%y literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_oit_wb.bin b/examples/runtime/shaders/spirv/fs_oit_wb.bin new file mode 100644 index 0000000000000000000000000000000000000000..3f330eaaeda3a3af90aac45861849cef0758773f GIT binary patch literal 1236 zcmY+D%W6|m6oz-2Catw-Ra9_LQd4nI2#QxoD+Wx`K_QkpQw*tM5u%Z{N=4MD6z>)B z0gO0x;0rhre1^V=f)l~-J2_k8hM&Fue_i*=No{F9|LxM_a^Pgb$ld0(PP?z9MZ+DhkZ93-?jug_NQL^E%0>^m!+-u(HtR+03 z^ju!KvC*upwpK2*)>}-Qqmpy{rymbtexQC4zo$<90{2j24=251zdHT2r+`b4+kX;x z1N&sbmZN9tW`VXa#VP{84VXdznmUQ7fR>*Zcw~r`&ne_QQQc0c5~T z%BQhC<{#lU)_V3j!EG;pN#nI=!MpFjW+R`2fBA9rOym`K2)*->S7Bq@#eeZN-Q9B4 zeho}#v7htG-ItpF%iQ*ke!2ToGhXig2Iu<-AKU(1E}@#&1E={NeV04)82=l^?`#g$ zxJ6*^3aWe90PfEH#F+c3zDSI_cmT|^cGMoGnmt~magVT#?fd$1Ccf(pw%>!kai+1xTVRbDpuY-gAoktDb{^w=m%D!te22dHt`FGG+ym}t W5a(ci2j*$}4H*B2&S#VE6X7rUabl+c literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_oit_wb_blit.bin b/examples/runtime/shaders/spirv/fs_oit_wb_blit.bin new file mode 100644 index 0000000000000000000000000000000000000000..93c7fe9a459c8b3bf26fa3573d3c6acb524ee42d GIT binary patch literal 1278 zcmY+C-%1-%5XL8oNi1n?q+n?UNz_7BkO-{^wW3%|FNAJLu{SNUYK(%qc8!up=mQk# zA6k6?=~byO&==^t^rAO~e!tB*Wi#;YoSAQC&di)$Yd$YTV@r!B$y(`Tv(xIXMh8(` zE8DUKY0q3avtkYVIbfE{P87{DR1)fNzYsD-R|aE9JZf@olw)()hWG=3y8Pz z1;9xED%qRX&xKC;duH?^Vsk!j%S}^0zy4@>+L&wtE}v5vSD7{?7qGQ=@I$Z zeMPuuH}t~2x5!AR#oKpPyCi}f>R{h;Ht$uDU6Dqp|HRqV#M9#^+?l)JvDpXW>UUn6T<+eG?)^JvGqO3qhP(c?;O#fEEm*D7TU$qFVFqer?>Qg*vCjOt%mk0k zF7eIl4`62IMDYEQhky2|yv#c;Fe^4aJ`kAA^HVxAo9AbAW;Sek+85|&LsgmcN}vXH zU&%*b-vs=``nc~pQ;YgO?uX9!iEAjA-Mkm@BQMk;`#Tq?2@v+foIdA+&T!0oQ#sW6 zC=kb;@a&vD2igKPKMBNmywm;oKMULk@9TeYeyRVyug=FEKJLQ#=q*qe?BY@&pLlrY STT-XI*`@GTT`nY@n*9Sg{dXY% literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_oit_wb_separate.bin b/examples/runtime/shaders/spirv/fs_oit_wb_separate.bin new file mode 100644 index 0000000000000000000000000000000000000000..400871cdaa59e6d740760acab168d67ac879c3aa GIT binary patch literal 1092 zcmY+CPfL_h6vpq&IHQ=96(zKg*T!feNP+f;Q7K4g3KxZj%i*<1f~kp7OQLdwf>s4> zY8klgE3^sv41SS(VjT}A*zHb`wyB|QPtBKc?O?scDn0%2j^3(C;{w+ei?eG2M z&PUDsD!YG8%FCUXn)Pz$B~N}IiH8sN8<+T2-rc#ltoeoFzci0(&s#vh>!`l92b_;H zNHzW^>UXH|{oBBE_D@fw*`yHHp^4%l$K7H_x-p=DS@P6iQa~HJ_1y@U0 V;01mM>y6jgt^1ARmFPMe{s8w+SOfq7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_oit_wb_separate_blit.bin b/examples/runtime/shaders/spirv/fs_oit_wb_separate_blit.bin new file mode 100644 index 0000000000000000000000000000000000000000..0532325d066ba4541fabf5852bc8cba2dd636ab9 GIT binary patch literal 1278 zcmY+C-)d7q5XL8oNm}Bch)}6QNm>Q9P*P}1p;}rhjTZ$^h$whrIJL1<+n#a~C6C|> z^g=|%KMzoPqv)+K;JbL?jo|m&?8?c&oZavHc4lX0&u05xDVbWmZL+*odYyiEu#xO1 zX`^au7G;_FYHr<6K;i;B-_tysye&8_yGbOj>)HW^0 z0)~q`roOBWMqiV2o*J_{7`^3n>dfk3^mVT@&nY=ZK4u&6CB0Q%xb7y*%bQ)%x1@DK z9J8;0~ zf=<8KRn@zsm00e6tabSBn9T~ae}eY)*K)ueVT(4J)V8NBz0d=>!ORX0UB8oVFxL}0 zm|4Ot=?|c1`o!S=h~b~TBbI)r<@5@s#_Mu=3;Ip%=`HB9+S41DnqJ7M=b^IF=ZTyg zb0F&}zAE1mn^ zd5-+VGjrw~X$r)@mvbigYt;$=K~8S;Q2R&EYx&Q8@*MYubDup&9g(VF7GLDVa~_>J RtZE9p8QNb}zU--^cijL0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_particle.bin b/examples/runtime/shaders/spirv/fs_particle.bin new file mode 100644 index 0000000000000000000000000000000000000000..a1ff8584e4b95ddbec33543f0d405834fc47c43a GIT binary patch literal 1353 zcmYk5TT7Ht6o$8sGYUyrkx_(<=|xf5Nh2uFIwLet;l1N0mKNH?XyIiLMp4-TI@opn zi24ooZ@TCv=y|r^7Pq{v^{%z{I_+;NvoocK-M@YYPD|)`Qh%H^v(>dDts%6A{$dD) z*1mRK?V%(5Fp6^+Ukma;C`DPV&DI9i))xl`hc4+q7z&E$JH*X4bg`N}c%;1!mO&SB z+9`lm2$TzdNL<9aKVCkLufMv|SjbkWT8bP~NFA#e$uX(IDe`BXr}g!F8vlXCl#yO(qPS3e6piC;kfy|Xi%_(0^f(ZnzA z@{#l0Hov`k$2ff{?lStf?Gq!3Ux9P>_*DpXZl*kgaPJtW?->0JATBK zq%&#j!Ro%pKpEcz(w%6#k#qO0&D>MSGH3zjmQMpu;uZAdw{}%0$NV!$bGgGb<1O?M zo{hTe8k#<1jGsfA%bnSe-1pU{e+lVa&ZA%MduzMKw`3mQ&7VIZ}kFQdqO9_NAG?I_Td})p1y^#<9MC(C71-$paQDEy3Y3s=)X;@GrtD& zIS?^#Cy~a!$@v7*xaWDVZ_(YI{!a23y9Mm&4AAd)n)-Q%zP}&eKlSq-U4P2+0o^<& zfjRYW=5;@!+rKee*xbb@;6C)FU4G8(h&|hv+-B|+_cgce?z}y|$*qmi$(ShF^%2-u;B0ZI!OK+u%>Y+x5$;+4{`=tSnqW^or zMdeDhe$ev!V&FtrA%i*AQU5lM#L>ffq4yB3saOv?jiA*^(j&-joj+F#I;82pDc) z_6KH9;A9@Wz!@od_6J5*R7KsUvgGmCALD?WWnqeoR2Z}8>)pnH3j8LvdkcM z8e{H5Y*lziwjhP;UW|9;BlMSLsbwB{&aFtz-Y>`>$fK7$^TF(c82RJaha-6~`yroT z_VXXJpQOJbpL-?q!R(7zN^jzP?<0Ljc(N0O{I??fhnISnW%;?dJNG+NCA}Rf@jIK1 k@RNMz5oZ?t+?jdz^5}VyvIA;~pX&`L;=f{b60u*jKMGquT>t<8 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_picking_shaded.bin b/examples/runtime/shaders/spirv/fs_picking_shaded.bin new file mode 100644 index 0000000000000000000000000000000000000000..905852720c3641995f9bd836fbb428101a63c83d GIT binary patch literal 1526 zcmZXTyHC?m6vt0nTM(;4j9`c{7#E*F;v*)cMNvSLCSY0BT2KiIP*b2fYK*H4;;2F# zU0lTo!RV%o4z7;=0S+cU;`ej82OGS(r@!<4p69*ybYSE{=JAvMpBC2Fv{@>7pusF* z4c2I5iFLlkl48uZStfi33nPWjnc3@|Cr)}_`>q6OvGuWOF~rwOW0lEDHPnM6U#&DW+@zyi*#emdDSRXUobqsA}ZjCt-of4dy&x@`95QlNZdXv2z|UYnQz6 z+aFG~9@8p4Bd$ZzCjUl#!Nh~NN6fj82xIG$Xq|Cf4DfER<0}FG^PgL{uO3x2`D+q< z5NsazNczVQg}mbhVY9`JI!}cTU7pXm{h9Fm+qn(ADBSerdCu!B2@`|gqQv7~NY^^& z_@zMC^0$14&i6_>cgwkZBIXU?u)m2q=fDnLiJarLO_(?F_)pTgTh9;Xjo`eWYjV~- z^!hoz8;!kOMcvIeoMV=pGnAx0I{9a2q1DL*7CG_n0y>xoa#`pOpoqqcz z_&Wcmjwfb8RhWmvawdj%eGs{0;+PX`55-ZpEBax(AGvPn#9{M%$ECwlFROncHF|`# z?VyCYA+OtV(Wbx5f3~xm;>hhi_DLreANrxrMd{3Qef}YF+SVTJ%%$fTmVx)e=U&Wl zNjkHP&3i0L*AD$-=L|!-749V~%o`yr{CHEpw`LLea0k>NrbYUazQGpnXty}+&?jeO z&b`l8VS2!4IKFe6ba)rfy+<7RvC}{G+NEoU+}N4PA=?_}Yp-->5g+D|+2bym#iBH3 X@TzRwE57h~{WACPzm@rP$Zqx*su6@7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_pom.bin b/examples/runtime/shaders/spirv/fs_pom.bin new file mode 100644 index 0000000000000000000000000000000000000000..86058a0986b775e550e8cc7a29c9e9c6257f1ed1 GIT binary patch literal 4611 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 D#aUGL literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_rsm_gbuffer.bin b/examples/runtime/shaders/spirv/fs_rsm_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..b0a3867c3ff93de96ee093868d389ff1977006e0 GIT binary patch literal 835 zcmY+C+e!j)5XMKhU5%)$sP1IVZpxAl7C~ePppo1pKv zu3@tb^Z&j%4_j|Hz0Z%%qe)Wcy#`T#6s@NKzGLR3iy7V-%i1$Bk~K?FT##&H{fC#jrv=^ARF6fPM-L`9~dD?BZ+Xdrm zVoba;nwa=4`~ZFfB`DtOckn{vOJd^hclJ5*q?4VV`Tu9moHH|Lw^!>6l{-Iub1NW2 zVPv<_+i2ao-n!k&9x8=U3f0}l##Zmu-u76jMnH9^vDNNuHnUoo4NGBor?J-B?%u4G z=E8FLZC?n31Czt<8xGa*F&UHtVE`tCkx+^2{I&YE>7DM{^vs!4`X3B~F44C??Bf{k z62fM4V@v)A^e%c2{S~bdub+dk21A+kcMd4S7Wb7o&jZq(>&?yWtkof|5>6L*%I)rU zT9H2+`B+p6kNo-jdNT9XYG|{M%GFYD}_e>&)b94PGid4y{mzEC+l3#8dp2b z^(*amXRXhdW9_}hYCCIpV!z5%ZZCR`Y-9aq_eyK4+v?O;n^~)$#~!V$zjHfgdb!zc zvTL5sxcNzwA_-4mFXh;t6#ZiTv#9a*rsx;zU(WsZsOT5#pFkX z@ul_8d<>=n_XwPK8b=@H-Bww}<|#_ThsffDJ3pP{i+k`KSb3aVy~1kU#(K{> zip(Z_Bf?KEC!9rWfBUnyR%`a|JFND_*?Kpzvy{`no7?UYf0bkRj}i54&VSEZLX9(z z*f$`T@ZCMwH=y6Vzp&cxv|sF-kelKiJHz)0wl;N&X*j133Y>h29p?BD{(1IUhjUfT z^%so4T^C`U=d-A@6x-7o)Y&EfIc#T_{4ZcTJF(~7L9H|4AF-`7;h(XsbCF3|!w~m! zkE#Iqu9jn;%K&>nho=1%IQg`H7+X$NTt3VDQw5mcnAhQaCyUtL**e~U^Ulj~^2RU2 z`G!WdQN?_6*TM3>uTOLC23X!+e*tGrHL$r-oSgs3nfN!-DlleQ1OuR{R) z;CH}2_|^`?$@Bj&*6=2_`P}cFyw8{Hx4yT)`rWh0RDCCJW6P_Gi*F;{VHGPIC*=M?r{WLUR7MYhrKlSQ3zvFFXbk{^1k(y zXA;}Dr7FOf$2qy@ID|3Y^=mlic>-Hr9i>LOr?B~iqq#rzV+zvT_TxMD`#paK&Uk%) z;+bYu{$WP?PNJt!zhl~evl=6oPq|NHr`-0`d(6O@TVHx>XRw{CzG5zO{=qKyeT41r zo97wtIo4(m&SLY4-vet-JwA`E&%LRi7qI>AstPdnGxhEggmZB3Xnyu(Y(C)x>K%+p zXUt-o)0jp6Px&ri!uEGbpT9}|4*45ok6*(w<~@AYY^?kx{`xy8|1YPVizhCH{{V3& B+wuSa literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_rsm_shadow.bin b/examples/runtime/shaders/spirv/fs_rsm_shadow.bin new file mode 100644 index 0000000000000000000000000000000000000000..39a59970409b32f4f54058559b567a6d3c61c83a GIT binary patch literal 925 zcmYk4$w~uJ5Jjug=~fA7RMefs0S5$ep(2Qi1IC2|4oe}l7-KM|F(%Q4=)d_Z{(=iP zg7>_<1`DdI?ydPHhnGk3*XMQBBsnW|D&2bZ<*NExZHxqFfyJFlyWVV%1Vw@S&@9Z& z^bzQ@e*2(GGOSW%Tft&y%g2|;%g^oG<<+$n;)A9_2{}Wm%gdsVNxdm!JJNmWskEqE zVj3bZv`F?_g^}3*HQ+hLX3LHACTVDL?64^NcZJx<@yzbsLa)#kNR&j%V1BJpIcz1h z{WNXe_V~!{)U7nr)}sdaTz0&v-MzZ(gQT74!XrO}oEbinjAJfbQCikqcFs9J?{=7$ zkCb%}J55P>G%$M=q(dI_Mw3#6IJ;zcR9)#i`T8?*SH_t}d$n47cs ziF|g=>cPALT%a%fyL4T@2YYZQLi|Sz|D`Rl^goc&dsi%bKS&p(>`M;4_|f6dY{21E uKKP6-w&f?y?yMLO*zA_faBG=(2-VIw$mh-6`I_vYqi zZ!g+y%lOCM0vtQ=01F;`jD9B#*kphT$|lFjE(ss`DV)uxl2qXsr8G5aO3cDFz1(yV z5Or$A(VUe7m-)pDF4>~i<$dXo+4*^h?rFA3^ORj;s>JsQMU!u`nFq!Vrf#v;IDMi` zz0a(@{Ks5XcL>GAObB#Yiz}i}?U0<|SATH}zFNKIs}T1lqnXy+NhjYAe`{%e G4EO>PvK4m# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm.bin new file mode 100644 index 0000000000000000000000000000000000000000..fdc240446577a776974ac1833ae468d74d596edc GIT binary patch literal 6564 zcmb7|dyG|A6~^~vIt;WU;Du5FTZgtpDg&JvDm0~qndw+C(98%#O^seI%w@PbGk3gm zXTWEvQ%a4oAx)zJ8byn(tuI; zo3qxpzPjx{_i-U@KdO+uLbF@n~j>&jOhBsz>g(^HNl(bPk5J{=Uu4VCu3^PcvBA<^=$~x#5y!eqc6q_!5gpP63NUXh8E5HjP6{-u_o#h8B(|Ji!w1`N53m#mr6e@xkZE6mPP&kDf$uV zT#K~oQQh$cmpFc=aqX$s)>?mFdI)=0T7RLgueSbTU0-AUrMkYZRo=+K%NqD#9$f6i z`Ks79Fgxo__VoV_>iTqChyJE+==8JKCYEQVQv>*CqK&oCe-w4> zj{V2N94qsGD&4h2|Fv}b&-_=Ub5^bYR(fO9@jG9^96ER~t3C5OrPGJzcS+}5Tkn=m zUeTFflfLGWlk150m}I#R^f&uO=e&YpKOSZFhaH{si`{(AuldhPX0PU>bDqIm-)poP z`itS1-XTnTdcyiLHXOp*R_%<~TBW-u+!yR+x$xWe-MZSm71B8y9yzT{EY}KOr7S8G z?V^4W)8B>26mAkq4)4^Mh&naeufe&+zC`!OUL*g*!E0UQ9{;)DYTn|VFr#|F*pSa*}6NZicGj?UfsGqT`6Ra=RZ;3GG!^hqw zoU^i2GUw}v{PSEPkF0f#aBSu+Pk5Yt^HvDQW?p;3JD2$D5RT0;J}H^G;Qvq${9Jc> zf%{(-!!LCIr3M%FUqw52*Y z>EN#I?8u@1=A0D={J~h;*Q7HK{BJr3ztf%Tb@{~hdkrx5jm$pTH#)fc^qge&NefTJ zUigDBaOz~Rn;Q8ntP{>U_(;!8r*LfMbwwWUiImq3C*#%QzB%DJrXFG7j%lfC z!(JF%j>$P{l^u*6!F7(7OUCA2YL|=;+?-I}cvf`?qh8qP=ass1(a+ef(*UD?ksZ@2 z$rp-=o+6Le%MOQ{InEoUJ5KD5vr{rQ^STor^>FXrEF3QO=GZ$uk-JoDvJW`;p|5U> zHr@f`-S`J0J}Yv34n8Ct9>1;ZzYw|Xi5kPPpKZ~Ge|W}=5yw9q`|p=bysU3*Kr(zV zo?pbhOEO$+K4WFc3j-Dk{eZjAPB*~zVIJ|vlb;xbl=82)_TKPn6yKX=49s*;(H z&2wv#@u#v*&K(y9&RqN3BN;sP_c7`C#OA$zTry`Ln{(bPnb`Q&;Wuc#cJ*h??a{VE zHgdvT_+EFjWPHNodE?&Y&hv&kb~Nh!CY@&xeMevWS=25YKC$5oo6qz{VVr$_JEmuP zlW=VA)BT#mZyMHdT%Q%jZ*pw+#53}_$iwDy^LfeO%(cG*(!qJ=IY;+Om%A)S^a6fu zyD!>&CYW#A7ou&U=E5U($M{9*_=V#hI4GI8Q{EwAaItyrVaee9#`N#5FG(jZY^={Y z`Lblq+z5XMT!5Ca#pByfc{te;yhG)Ou zl8j%zZ|wKm!ocnKJCeZ|T=wgI9TRRJ>AoHnj?MdeOftT}z5aJ4GnelvuYX(^xYvJN zG8iLW-}^ct9N+M~)=A0W)YogBlFnMMBx`+N7`WH^fn+d7x|a9)L*e$3?)3@b*u4Ie zlJN!Z^-oJ?F6Y~OeM%U(*MC|v7$aTZdwoVYzTtVTGm^pSTR*SgFIme3p4Yr1eU3gT zobNB}#tM?bQ>-W*obOKi+%6rTmuq16Gj@k$o@vV-_Xvl&vyS@_zy||>ze=o literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb7df22d0f358ac15cee7d35121ca230dace29ba GIT binary patch literal 11417 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 F0ja{9+ z#NY1HzEMjn4K?#Ja!c2iEkgsHiM(?Zd2>Te6VTL=vJFeI}%C^39$KX(ZXX)oj{Jo*IySlN`P1a)zbw@PEeB{721-_uf>qn|sV`1G#N%Y5T92u?|;(xc5fp)%3D^R@ZMnLVpdh-J2YJs=q4f z)_*GKl!Q;^sT{nS$gVSoM%LZQ(_tQqlD@k{hV6TjY);zM_a^Ms==+fyndUYt>7N>< zA3%3ZBkDn(`jTrN&ok#9`}N|`e}Y~VJFgG@r^EWf(0?|pFADwV!}^lhc(Vq-VCutl zavD7Z=FQLaiv|nIaw}|x$a+QVzum98_f<^$@g%!H?dslN?ZNl{2LBAQdkwz2_gO5? zcL|%Zznqa%6Bv6s9(uDIE{eso*_pX5MUS3{zHl$^0Ka9=nuWn@LHBONtRb?wECYWV zRU{R5F+9xauOOI;n?SAMUCiA{_l)jldT+JQ5u%AM<9&4#|`5q;R z9H+xNy^DzEJ~P?Oqa95C8&Sla`x5phD+`dlUkBj$Ua^kGx*l9x@D^q~?|$%Z0M{10MH%lx=I=&uZE-HoApfs(Ih|}g zM$Y9~6me&q%eRsBqb<(#Ib{8M+<~0|lj{iVY{J+IF^1p4=fLD@(~tF!nx02@ukPb- zc>gU=d)Mb*sM+s${+{X3ej(X?#-9IxYz(Kv*wIhZxD?v$m4{M4y^Jm%{WK$S?786l z1CIEi)KC9Jcb)jl+`WJEbo?Ek+FoIbnY*&Nn!CFA?$m3w__PN0!3MB{__z-2Zk~5B zZwB-J%>olQ_fMv^bI`^8ObdS#(Z%%}HJyZPUA5KIkM`YUWa~1GslA>zwfL0@pOrY? z3(qId-}>ig#8?u#hW_-F2Ir_1$dXvr14(lFxHQ^HzC+%EA_Z?*4+1K$dYQ?5c zZTiv{clteG-hIDw=68AnxVGri{jBl3kZ~ffPlNegUfccYj(jHZw8g#oEV8(3!{0%4 zao>4SqeJMpD{Evg=r?SiPqw%dt`FPcWV?p7^2|MQd>CE7a-s(wK{oH4_eC(d+G6dO zkj0zHJHD@d8Qr|J8Q**I6=d@^H|>62S`Tfvkc)QDAo}fnVB(Iz-k&i2#C!Az>pUBO zf5dzAYhdE>&N_-L=5)B;K92MKI(YcV&-WO(wm7%Pko6@V@gGNat-og?{x`tHBmQw@ zF{dNqTf>>?Pk`%NUif_yS-<`+3cn}8#KZ3?WHF~B{KmeX0uLYgzMclx7W?|9Jf?WW ze?|<4{tk=y-vSel_@|M@oO%4%*R$aImKU+UgDmd(MyxaF#(E)(brwuKVx2=4bLO#P zuipg^ANgLt2d*vRpGVf0c*K7m*|py9*z5Pf#3TL>kj0#N{MhRc!SyXKV*LnN+`f(X z^+sgE6uz(hjEsA<72Mx#+5_uC7SFK{qKo@`HGFoX>+^L??eUK7LH3=dJw8u*6W7lZ z?eTdMwWxww3;(tdwdeyAk6L^PS zi~HR$*6u>rr#AQOow*a)xVS5{2mT^J;BtKb$p2NsegDa6!GHA59(eBAzcszYbl-j+ z?*-Qux!sLCmnj~(?L*eLw)kCl53+TRY3IYa050CmzUABm=$XnDU(EmhEkXQW?EHpu_vecL06CBYjsO4v literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..d8589cf8e37c6decd91f469cd2df2c09b68e0e1b GIT binary patch literal 11641 zcmb7~dyv-Ub;n;ozzZU-L`NMBM9Gj~l#51%M9^?C6D=47Y%-H|l|{BJyX#)ijE%u7 zC>1fIY1P<}4qiY>)Tlv|IJPs1O)FMy(>QG>673i|_7W2lP1@LgKJPwXc-VnI`sm?z z&i8ws^W4sJe(&zP^B12#YW{WGzt*4~**IjNwWqDOZFS%DmSN)>!}i+KT81^STLxPD zRxfT_-P768b;Y8lXUnkXAdVPl?d-T>W&fh?zK;Hm?yi<$mx3N!(8WF7{c}5d+b@^; zbXQk+vWaV+LARw_$a(b$+I=W!NI1(F3iQcXxK< zFahhRgjju9M|&6JUuD;xAzj;AhE1)U=XR`EG0@juoYxL)Eh{oZK zgV2@LZ5>_W+n~RRJcc}hdy;FyKhgI?hNu*1^?FZe~Dx zFTSH2w+`VhZoj&JptrrrZQPfeR`=U9gsc1Axi2@p?)TLpT;1=UeYqKRKQp{q!;HQC z4r=^>b)USTv-`5PPIh}#)5g7#+b|71xMvc4dJ`Yn^dH{Do0*C4=qAQCbh}hrQU0Cg%Ovi=7U3Q1ia5Xa@4cycZTb0y_wLlZw*0cfdw*(PTYdp@K0D(bvYj;e*nu|*Z;oe;aU!n_M&Jr!pDi><9Nb6#vyg_+}Gn=8zG7JIb9%w4hP zkOkzcd*IqUe{;9qFYSqNQwwiCpNMYL-(1$lt!bOb+KFclYx8LG=C8JUWPfv4+x^kD z&TG3j+SYt++fhU{?nI&iH}&KASKp&S+`9?LvD5|kOxtLH%aRbSWnDstL0yU&UJ8g`?xc1G-7 zgZ7!Re>P~(iv9YaJ^K`*xyNrH#@L1EEAKpi&T|4{v#<8j%eN;*Yy7t z^X7+T9Pgj!rtN*p*v{pzu}AaN|3`&$EbX1eme1T@2FqOS{}b$-rS?y;&F}cXiES;3 z{U6xg#jN!#CbOmIOS5Co!9MgSCw(IJI_#YeZ^Y!c7v1&CYg>QhV_Sb}+xk=6)}Pw8{={}X>yNhMy^PNP z&9gPWw)IFX`P0SbxkpN{ZZP*r3DyJlI{lQa{Yo(Q?%CMaVAIYyg&lMc{un#Cnf&yu zzXbldn=U*ve%E4qMTvaZyx(p9fQjC(%8}*gMcY z$JpOR_Z+p2_bj^SxR9G;uB~M8##C&c??vo@d-+F&lUf9(|0*zXWqrXq(TyXQxLxSZ zO|jK+dkR;_y%J1ZN!(s^_5XtJhAV_wx9UB+>tFjZNFnLT+{u?1Bmy-r#?U6 z86W5NL*#ixAD{aCoM(I-V>j||h(11Zu7@!fb5*g``Eq#S>T?|nCa&aMk3ct$T-JU! zi7f8BEN6Brn0WT^8^y;u6rYV?;@O|u(d{R`mCC@QaR>j1Teqx1H<1J4M>3wA^*`A7 zf?3ys9bI9IN?kh!%>Mezp9}80>;!b*e_M#Z8}U9n)`{S9@taur`EHKihrs3HH>vXT zb3*(+3@(>**~TCTI+sTZSD(vvFmWa4@=bK($fdSCif&x%Z?MO}^tADyrX${EM~&z?So?OI*OZ;8GW+g$Vc8}{r)o_~kf+_QjgNS0#{Xd3Pdqi_ zeROfxSl5hSGM?PJ;d}S}or2Xh<2MzSn(-c(zH-LN9e*Eve>LNO!R6vNoZN|DT{A|2 z%f)Y06hY;(=0HDeafParn=PZr*1);t^CF%+9)C!bb< z$=5Yw0k(MZsjv9dHRCg2;;9)IpxaN}n(+rbZPpCAg@~AQS9h+?U0XbNd@;IvU>>Aq zd=cBvrhZ;c&A0|k+_|S_T#GLL27Zb61#EHSW=~tu-B-EPj7!l|Gvre<+6r#X(5J2$ znZNsApN)8G#&xA;xMpLyR((@5eCj)i_;=vzeX+mq+822y&Mk1plCuuU8OP5#?xCM= za^8P~exT2{FBGoM@tt7eN^<-~bmPb+SNf;{;&ts=4kn&lxu*EkwPz)mcxq1vy8Xmc zdsd-~53M~fF`isqd;Xzd)}GXvAA{+u$fqv+GkWUBZuU5zCH@6mE`G07es!JM1uhrA zH!8on&ipI5T+ZM|=6s+txVdok8LR^nS8@jH(TyXQ`f)3|aqBv>0Zd<8{Qjh1b)C5l zOkX+U)OBVPwrh1A=GBAP=9N$D%tJi4A~yMLh4+~?KZ5QUimk3QuY$?fb><0d@#M~~ z;#1d|9bn?AGf$)2Pux25U7j}UjNJDSG3T!CT%EhNc-+U1`|)6`A2m7iKouIiY`91&U}mU zr4=I{R3XCt24a|3n4^K{L|a;^HN zX826)*?_P2#s1cz)Fo@rI&5RfS%>7D`y{xJvKHq)5ApYeUuMt6r+~|y%g>Gep8ZsG z@0`ES_FeDKm#2Y=$7gEs@ps(unFc1lke?MN(Puikm|}Bm^FDWR2DsxGqrS7JgUiM5 zjN&(Ih~LM-4W_2>sl0B=9E1;30`a-qHp%-WOTXQ&&lYJBQua9SzdCtJjJmoXbGtuSZ zcXs9HdE^ev1lL!744<9Noms_qGP>)~$2f8q749%}_dWP$3qH2^noSLdMUbl=UtW0UCo&1 z75+SU_cmv~9Nm1f1zS-tAiYA|v82J1!_ujBP# z8&fW8y%OCTB9}d%kM7+34%_eU2G4HrcR6bccPgBFVqg6;?x)d>sh_ndx$85v=q75+ z$=KE>^Ul0ZO}i1!m~zIF%blLhy1n~;=T_hSIpA{1(`)JDcO;IJd94NWyG*%_<&Iom z{N!?PZbTQiZ{n@P7PsbQk8Z&xTyu}i1>=U>P`JtPa`q2*Tj7p_)6cnQjvKL!t50%Z z6T0)R{q6wMS1x_Of-dfNV)8<>F!7B42)dY3kDqmI2RF8U8S7i<;+}8DdJNmK{Ej|y&-hQHiz)T^S?e?4 z#?~)meGgsSyiL8n0G(kP=OMl$bB`_p_xob`V2jbkYitR&xZlSo=2C29o`A@w#x6s* zrpf1ha!K*^eIlRtN%rCo!Q2b~wjz7+IWY0;#plt*6q{pvpRyON;O4Y`*OeS!j_%pJ zC-GYWCaz!hY$dw5pAFM@6}BO^;3%5_6N`18aMu8;Lc{~s0H`lpZI#V2>V z@pH|a;od@Ax9{T~aJkIwN_0QZif3-U=*E`I&xif!?sLSwpG3UBFLUr6=HCq1SKo#F xWrv?zzliSN0_f+uFj?*3=eEzH>C*}Cnd(alG|u7QS5U-%&&tnguKuOQ{{br(Z+8Fy literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_omni.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab075bbb4ea85bf944d28ab8541b68945c9077eb GIT binary patch literal 9074 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 by7l=LoO`OT_!9nq1&a6qqR%f!sH^!O=Wh;1 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_omni.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_esm_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..67925dfe44c25ddd11c7871ebca054dce183d61e GIT binary patch literal 9018 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 Q)&~E#R=zb|{cFj80M%N-LjV8( literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..e1e9e6afdf2f12f739d7e7c9753b539112cb63b0 GIT binary patch literal 10729 zcmb7}d2p816~^C$EGz+H#060dU^K0WArWn*Wity_lqjp~=O+YAC)*@n0#>O~2SgoQ z(7K?b;zrf!RI6jHohl+ubw;b>XsuJL#!jnKJN>7M6w&GPdvhOhlS%&QtCxGu^PGF` zJ?GwYzc24szhq%i{l;J3o9H(FKcdU z)BNig+A(Nowk)qIGOlf2v!=VNDHvZf$ar;G-aJ7Q4lcfFRd-9aGg#k(byueA^6cvN zb!TTgs!9uLlcfWonWcqw$+7`Zb!kz3vU~tkQ(D}RtVk}cOp+1#(~1-MElx%zCy!z) z*o=H3NirrWO8bUIOBT)O%B`Mp%B(8*amfg}lpCLnO$sE_TC>e<;CG6?N9{hf9cmA& z?NobQ?M1axjmKUSOB#_Bs{cY077C616v|?=xH#nW1T=NZwm7+d5Vy2xeXhH+Ddn~f zZXU$N<8B+sRmbCgK8TCQ-93=2iO1bDi0dC$knB?2$2GLHUzTlAwu@3-=83Ce zrex#niSg_p-0GNPFCwlh=895oK(Wc^$aFsT za)^33$dByj;}Q@*DjmEkeIL|$qw)W0eZBoEE-#wX*aOd>dao&3}xu*52+S@x<&rHX1{`;}&6r&#cv6>X4 zKKij!gcYRq(v#_FZd!-`qO^7{Tf1g`roJ<~wlv z!`B9$T8Vjd_+^2oUSb{{zAo_8Ow6OhFAqF*6Z7cs^?|2$VjdlSMc}EQm`8_iP+O?X zP(wV^`nrP{Fj%RY?eYUw9$`v-YRBbfJ8Fcn^CFDe0BejeY69%i2%{FjIwFko4|Yw2 zapu8pi7?JM*aH#9c?Nqj!Z^ENyVM$VUdaKmvHzUiIA7>f#8m~J^E_EH5B8j8beW|( z=NR4ob_88r%5#3<$r0l@yXfQxoqHag+@N#kqw^dpulSv!H49GVqx3JfhYKNh#|E9XO%Qr$z$d6jwq1o}#<7NSjoYN2hjq*j`sNhr_bAYQ%nG(C;6lKO~)JlA_wF zp0#32obRcf{QPHgtbZsyNv^4}{!yQPn)Q$S^x4*X`}Dcf<&7MFqJ|H~eXIu0I{%@* zT#bjZ=%1!qzy43@j)S%3OKC5=_H@rR9#W6>iGBLK={jNT_bJk`pE1i^_oZ{5ZQm=MyTkft(y2YiTA{@}+_7P<^^>HJes9_jtmmY^@%roOS-}7C znw)cQeNWk)i|1CA16$? zd%^mV()G-lt_+fciPC*GeLmUiql90u>Fm>NH%U4*>6WJzlB1)ApQ_!|GPL@>hqdn$ z!XE!nD0_9C+UB5hR&G$cKIrf_scj89JfAV#M;?E>WbPw$_&e0NkIZkE%zb2@ztXsm z(24UdEsA|cXWjQpW*@CTD4Bh<{)lAu(fThWvybTbdqOh%xLB3LSzD&y@k!%hf6rA0 z$mNQ_K{X1)ex)#Q+LnNwFBv~@_IsgZ)<)xr{azfn*zYC6z-jiIk&GWW`^`!wM%rM% zs{$AMT`dfpX1`66@dNjqV&F6DC)#x4;LP5mT=5y!E*<>&VDqzJ!x^?smu$dy%7!sH z>5K!n?;FGuOYD2Sba4CL7HneQSIGw4zBfo`9JqaN7f(E~?~T&I?fb!C6Z_sI8*uyH zES+)SU#UiJRnN0uxge%(YPYFTAN1J#TD@&p+tX^#s9{5o%{%IC!yNCb{YecQdhhE# z$(&UhPkdhX2QJ>%uZ4lrysrl&;|I>MH|ijR^I7ISn=cI9Ib0cRxQA?0Ck)*Ash7++ z@W*sBs7n^=AMjqu+(Dak2Ef17d~n?V#`2VFFzz*DBO_;teBpeSjh4*k z-$U~MsT%dnTw{d8{a5+y5kOw)_ljSqemzEd;I9Zgz4Lyh9@o?^Vc_1|_kvAaQ+tGgyQW@|%s6n@ z)E^{+6JuOcA89_gxTbmo7T46@BFr`QcVXDV;m0-gx#Xd0>R-a)$m^Gylf2SXQ+w5a zrN#rlFYxrv`+mv8<^4e5;=F$&44me?e=8Y3aL)Tw?KOB@Q~AQco%inso4BTmgn_%J ziX}4+oSGV?o`;%(8?6RL+{na9-00x0l@iIs8Q0V}Vc_J@cBR2CuBk(WVGHM)s*=q2 zBfc}armBU36Sr$>mUQsArjC^En!-0W@w(Zwct459H8nZZ6tUum7_oIt(PLYobY!NGdh!I=Y554Q~MA>ql7*9>QMpbf2g>-zuQIl}^;X5t4+os-U|a^9%J~s`0?@4LrT` zzEARSdEXznIPYHz1E)Ff2PESM&Ur7_o`c7=nFs@S-YbJmT$=^Lz+Ib#k{Jh1Z5E^J zp*G=0s(}$VGI0_&I=E|Yv}EFpYqLZcI61W4xL_C8=6GS)!nrnQNah{Hb!x87Dq-Nn z?b@u74j$L$;nH23_{Jt)H+vTEXS$E!duO@oi1S9Q_#sAYT~qX~%}UvFo)}M^x^Ah> z!F~Np+ zY_^#!41BTP#8k-dv68`PJj~5L`RtbqXC8d;p3{GGO%V=fyQ#sha**9L;c#Blagm+Z zR3Qx9YuckE5etpSYjTcW6%SUYhOKk-nq)Yir#B?yLrY4YRo-|v@ke2Nr-tK9zp0*w zGY$8a8W?97*=u@R@=$By@2Come@8qv?3vg3XX#!iyw~}GWH{S>7}>EOKEEFc#}?jy zH+>vzD>Wx^V1plZ$=<;6j*7e+|0>|)f{p+7+b5PZ-*iy;(qb5AIOc*$0jZKga9{W2?IzHhX>*11# z1I{`BJjB9pX8d;0w|9Mcm?S&aJwuJ0Fcy2y`)|qk#E!ejXP4f0(Nx_r)CTtx=ZC(Zu^PHm@(&a9FU%*+wueqwgRf>mWyt(SY9mQD5tlev@k&a(%d@^VriQgY!<_?}bm7&br{3pE{W>nRQpH!Si`bKHz3*E%5At&s&W!a2{i`0)`*o zqjNNlz2WyC-=lMdf&0#yCmD>!!}$1apD)}#;{9D99M1c8hGcxDxYoW$j%uYdmfw>+ zf1NOJ&tESYjK<^n$zg@`2I2U|&T*Y78Nd84WxqcX25!G+Nd}|w*sss+BH{KC$91-F zILCF4WPE{p{>73R%kN;Gzfl;t=Ra367%iUPah)d|-`IJsrINwfU(dB%I&<+Go99{~ z4BT_Alnh3T=W?v)3%8Fr)(eEgdHxF};|tvLUnH5a)VJrqSQxnHzeF+^EuP=8W`yG# zJI|Gs49>aref@pOnkK!k`HXZO%@NM;Rq)2 zoUt+nMM;=PTSLRX4_NG2e7y~ zD6%ZZEF@|S%;`RKbJH320b?l8IUxJXn9Tj7vYE{+#y>O~ogazD>-V1LY9AZ?!#6y< z_kG>hbKm!KKlk&TbGoBv=ge7SckWE|%u8lhd&hF6+(>y{HnSkfOzCU0nM8WF+FKs! z$&HK+7esG|(QIa)&>I5UGghp07E1YkOdlT|&6l#7 zhh@Jp*tb+F`O#_)E7U#J3XD@?G*){@a?%R9;ZKyanQlQ1)!zQ%a8ZONX$$RQq_2=4 zRs4fY9h){am(8?9Xu&=& zspFN}<|nh0>m)Nqa)nXwXJ;hI8I2b;u4pU}AG-ocs!Is-7X_#n8qcd2V_dd4({$tV zC2<>)W7BMV^M@+cQa<(b6Z!i<*Kn~fH>|8@Cg?nFjHOJK_MWk* z2?UEXC*{nEIn%p5;?14nU8~zCb81X^(+?T@TbEo2`%o{9zBtf3S}cudll0Wf1ATHJ zbY_3CSfYsZ1-)~i_dp?ku*Rd0`i2G%_3kL;hB|YVoI0^fym9g0k25{imrLFobb2PX zqhs&X*r`bFlNHi=jFC3jf(TOzDb^HW^anf+hUd~3U>y-gKY(>d7<~Y?FT&V=u(1eZ z&%q8y82b!%Ji^#lu!kdzJp?-yVeA*!ghrS4h#Igq>c@V?^+I1RTT8IBhsz}Mz-Rx^ zMN4(|4PCEPXWz_UC=`6TV%7!D5+T&#JwjM}lg16|W!8+2-}te(|%xj#WBK>_>}qI1D({rd=|% zcgzmy)ZRV@r6d4b;3V;Y2l-wee8Xnac4?25vpT@DEH|zbJ98e$l_mF>%40gkhuqjI9V5`)8~0N+glpckysxVj?HyEFZqAf@nW#)HCe|ADc}s(@g>Rl!R9@9Su%dv9%Gk;!R0Y_ zIbcdvF=}_@6=86(;fH$tL!PcmrmuLvqxHP5_Zu2K*nbo3yuH3RCF765Lmcn*95pO< z_VHxc>)%TU_g-fMhkh{U58{A79`^c=(wPVTx1=ullioc4luvAb)&L`SWO5~Ubnv60 z58jc?dfB5-342UF-m5sAm7^M;7RK3FA`G0|zaHi;l@8A5OQY(@UMqaMUcMjT8%`XX z+QoGxr@w}|8&nhOPQLgd&&JSmt&*wZb`8$uy&^PA-Xt8`7UeV{LYriIkbBhU`eVYt z&ABCTxLeI>7Y4pZw>f?{O9o@`5SzYouXhM14n8{ccCT*{j?KKSfycca^R@}c=A1es zo^#qR4BR=bR83e5gU30!Mr%UtsS#Y)s6{e1_y2my_`uB>)s4GjgD~y~Z1mGcy?N*- zY^@q#^bfLg`iSIf4+aO|f)*zga}_&~t%56Aw8 zB$F@kjom33J{Wf#d4FCqTx^Z%OR!(9iP~|)_Wwg4s5RZZIa22 zyM*tAwY{s=VLaGY%SKI@3*T{XmyAz%+&AuB-rP6rV{5&9OXm)v@91maMH^+qCpLUx z^O@cyjI+;oxeg7V{oTT`xlg~MIef<;j`RAeFuo&Wdmx;V2Lcb9&&_e{8qBr7uSo~z z&U1~vAzkj$8qo{*we6e1<}<;3+fD@A63vB2?#}U~bo|0`4}429dB?nmgu%t;x!;xy z&UZe44|+s8d0`_y=j2hzX~|#= z9>=GK&C-7)9N+Nl_mpJ(@_WO6pAiObzt2hrWANCo*Y%um`-s=|yl`w@*J;W40(bl~ zl9|iz8^?b^7`Wq~l?=v+<9l5%3dc7*$NI5kaQ4@+&Pyj2znvWGf-rE$x(FwXIF{Es zfi3um*ZPuhY>xj^$@l_y{Ffy&m-FrTmxO^k{$GenpGu(^WD&M z4@t)-HrC9Uxl1x}E5|pJl4$LY~I$O2l(v0M>sa; z_9e+TX@EPodnMx=n}07IkxZREs69En5pv)&jNin}g}X<8G2lD*eUkaD3s3)4x!T_b g1Shv?-EdY3WKZFOx9fj?ql5oTE8mo^{^!Ym0R8CP8~^|S literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..ef2ffe66579f84d74c4f1c799e1ce50eb6f0fe8a GIT binary patch literal 10953 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 bE527xY?T7Z+4}co3E*F7=ig3u|EJ`C)b{3; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_omni.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_hard_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..651c6811cba2e2c5ec2dde6aa0055370d9207142 GIT binary patch literal 8890 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 KTsgz|%KrdkGXKf| literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7e75ab01443e23587a82bbf575a254364fa5785 GIT binary patch literal 16664 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 Ae*gdg literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..6e92491fa992ca801dfde1d4179037019d70d094 GIT binary patch literal 51145 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_omni.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_pcf_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..0be802a8ee20b067c18eff7e99f1311e6b0c280e GIT binary patch literal 19310 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 RfBxPAeoo%6PFMJK@*jAh90~vc literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_csm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fb0984c17940f7e881bce919cce486029a532ac GIT binary patch literal 12769 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 S{(TEY{8y~}l-BCM*Z6<8WZ+H! literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_linear_omni.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_lighting_vsm_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..428518c6513743e42729dbe642d86a317cfc178e GIT binary patch literal 9382 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 A{r~^~ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_color_texture.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..188715425868dba157b9083466a561cea71c3460 GIT binary patch literal 1597 zcmZ9L%}!HM6opTF`zKVbia*q(DdG%+3;;1mQzM}aNUW)mIBG6Xh)MC9QcS15fsPbs z)|tG3@fko9^#zOrjei3}qA`-VzT0!+)lD{M@3r^Ycb&Cit~Q?v3Z+X%7B}h5`f|_= zT1R8X#7y5tz1`?s0mzxMshUj67%x7YrkFMvlUEydL{|y>O)5Mq3$=yOjrPju_{13X zL&oC>Yln3+p%`EHZ`}s(%D3e?^?~aHiae9lxu?NNq0#=NIwn;6%dh6I-)S~l!l+IC zQ@h^iv^QIgu$C|nb)Ky>gC)Nyw#hITWbDg@cxDSgmedd2?xMqT5VTgtgrq{QOKYp0 z`drIjoAukiURe=CIGy35%;iIht2T#Mv`$XFET7k8xM9P+Lo>V(iz{ayyrTEXxsS-y zyE+SUj2ul}eoQ-J&QPc<%Qhyj-&(0TAq>rn@>_TF_6Ooc(~ElPc(SN(12S+~I@5;qQD>e=G1nYm6B`h4B9}BNUA%<>*U}E*ItK zNe;)Sa`@fQEwpe?O@ZSFIXI4qTF519-|*dHaHBV?ZE$bT;(49) z@YZYk4!im!XPzf_*k{Gu!5sEQv76(tuNFg(s;0sFo1FXfQ)m8jeTzNs%BivcANt}; zo!BqwLhY3t3_Xc|>xIN%mo!0Qz6To F`2&nam5l%Z literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_hblur.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_hblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..c9f4bc9b41035fd6f375ce970b0251a8e7f7f7c8 GIT binary patch literal 2533 zcmZ9NPl#1z7{)*6&fJ@6X#_?IqD8AjrW{AZv_*pxWXUHa#j#8{D5&ri=EZq3Y{e7JRdcGo3ctP~rXTbho|m)ZAQWX1L(& zWtqFX;OuRgyQkpnb(z~*aQ42;jlk85wLCd{XkmI!r!_m)>bBUGaaLf@w-b)Qo5&|i zY~Q&qRv#;M_iY2=u-?AKY*B&jS?n>X+ppNu5ZkNRy%f9WV#m!?S+}X!`QAHjgQ>%< zgY!%_61S$6+=Sj4>6?$hxA5*&2-f&c@eL)`dn0&+r^EN}EV29JP~YB53omuC`{7tm zKkkWr+=Zr3lSt|GLxJ5>@Oa=yd-#FC`+E5P%~adl6yZCpbFO;KJwWaVe6T>LcSh|K zVCTq3#N0!@xmyFz_VD(oJq&h^ytTP+2mImd?cGs(3S4{pkv@J6y#M^ayFz~tJUVe_ zA1{I*`{3ez?&pu>o{#6^eu}+Ma_asHn7bG1V(*t+VDDFsyP_6_MjI2)8ygrUc1M!){oGt{vX51TNnNkR_|G&ZVx&H;Q zJ*Y+PHS#Izc&_Fb&EJ#%$oWgx6Y3NEFO~PlP|b*8YTswe-<=f#!v8fdlw7T>Q`^lK P-k?bC8ZJ8urfDxV{-~)znj2g8!)n~}wghdm%^X4C5FrSJ zD5Cy~C=$sQ5@m@|5kwRbK|~-CR0L6hgiv8cpU=DJY|p)idw9^L?IocXxCD z?agO?JpWsPT~N#&9UOhMvTOLjw#vTN`LlY8f#So9i=we%S&MW_abfX(gQZ1rY0&^u z6myE^a^14Ef9s0Tv0W?L*0jpcD;ix&?h>kI5$k&^yB`x@&E^h#E#8f9!29s|?6Zys z5;Yc0tmnX+K=b`gRJ6n86Zcp4?%Puxp|+*CxsDsCj*smhslqjt&whMxtUCVi@bJj4 z))I4;8Ej>VIok}js>Gai23uWX&OU>+fi;&}9vXUNd~owfWvHhzR^e2(pum~0#yh>#cpS^^94XbAVu9SN|ntbO}SUyYM z-1E?`WS&i|&T#{rvw4O^aqzat@0!Zj-^h(P%MRQc@u=BJtVMo*nH}tkJr9suBOX{a z<$0fBu*nyy>!QyDdE+a0PUo+Y-*@Dn?%+QsZ{NOrIzLN(&l@LiQTHkikxx0Zy3M_J zG5Pisd!F*kDiGh5E&%GPWo-4t` zeb$kL9VHg`ZnpD=ILk3Gab0tHj(XppHfrU)->5&HYORMZ^+$aNfV}m+^sxUVxqalK z#|bbs>zYew>87q;%X%XS+&*%l?=vtp%EcUC5c`hmnoH=rm%a7+c7ln!FZ6v$EbjL}^!*A< zT-RJe--Fc3=lZ@*wbnz|=&Jz8=lZ@Ow~t)t`xZ=%axupl;?Ng;L*EcUy}sRG;_eH5 z-w})F`o0Gf*EN^Ww})E!T;C6=)_Uj~eZv6qxxSys?IRcZeg;#cT z*;}vg0GPP@Lf@~%;(l*O-`~N+b zF6Q`?IP^u|(02%+Uf*FbarcG3zlp_jedoc%bg2uJ6B8Ydv(0zNZ1?bA1-s zM=ta=5UWux^feK01k*K_(Dw{ny}oC`#N8MAT8PE{KO22#lZ)$`eM8^#VDh=XxvAEA zJ~jGY1dz}5%_FyuT8L@b-Zy~w3uI2h( z1(VP9ElRc4^QqBy6hJ=LcNMvP0&#$C`EAS|3Gn M|Dv|DR9qDQ1Ig4sVE_OC literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..707b1ce85d9262de1d5772e1cbb1dd626d95884b GIT binary patch literal 794 zcmYk3%S(bm6veM^d(eZRcBQ%Lg|w&$#9U+=WJUM~h!L5UDJoG>WJJ)aRex#=H$mq& zegh4hZ|*tw+`04JDOC^So$v0@+=@obBH>KJEMy5w+F&Hxtc9hRO<3IR5Ke>{`OwusQN&`}e^eBc`rjXuLd|`x)9y9<&9+X7 zsW)ewH!dG)rEa}ZtoQ5cUREXEMS%s!=lPuO9u`l#j^^Td#c^pVVL|?+b~txf*Oz!n zFdH0so*MD8=jjpO_k4N83ma~7W*KqLNC|k!d+&;3mglRE4RXGAO&kxphxg{4*9s}! zv#2;EaQ|GunFSj8W9__*&%>Dw+Kwj5T=-`e+E5B_l9x(NN#MLQH+{3KK%>rU*MUa; zXW+Y0jF;R;pxr7)=l*Yj)>4d)_9cy;k3vQuH>sCEdlLAkae@4)jXC{UF*)EDKJG_f dYF`9=%=A6bUKLYAZcl&COwfMSW!H5w`vWp_I066w literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_linear.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..121dfc82ab2f653240cb5ed40c3b8f3a6c3ad715 GIT binary patch literal 674 zcmYk3OG^Vm5QIC4*~AAv5cDAE#$0?6Jg7v2iVqUSfQS5muo4p^Mno48PXX~J{tADh z2QPy4&F+8$wbNByJw4M~Z=D5S3+J!q)<@PXmn|2}GFGsn4HDUAEGxxq+yb{ZnyqH# zDehFZwl}d%TFyD~OsR52I~YX$dlI|Cu`n$kx*90TSzi0Mit#Gl@s09< ztH0`XU)uG@sCOF0kvcb0-=e%MIDI^y)xGs3E4gmw;yJ~Ev{0Crzo;Ef|8;$dmjtun zh38?y8=jXEe&YFZ!Vfpx)Xd7_oDm9m$$RgLVwUHtjty(Rc1;`)x<{ycRmC#`_p7Cx z8KIFs(#~JtJ>=oc0&PbVWDdNMh4v$b`R_~R%sqkgKBaO-SKuA!6LO&S1p18$3zlIfM59N`JSG4s~8{edrP%D#ng~H(5<*H+ON7)T_>|YqO&Y` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_vsm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_packdepth_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..0ccd06269d69f423f327452ff818fe956e812500 GIT binary patch literal 994 zcmYk5&r8%{5XPrncU?65K~Oib?2?9fs0gI>P-q9CY;Sdt6-o9`iZ1;WG|KAKAuYNT zM*TVcIUT$NeLk<>0S6x5nP;APXWsel&UNlK*Y`ILqu8H%M7=gX7;z#7qZPl8=r|iS zn26zMmUDigvoN*UUzxggeOk$>pb%4Yn#uuA@ub^($`KF1BX98PZBsO;mMC{zoc>E}yy~==C)@!hHO%~Y{(l{5d4)6Hkz*tg5wU@qtPO`6;xj61&tYfT4u-(uNr#Pf=? zF1eQ#XZ^=Y_X=OFx!sC;jW6%~Zz^sJUtTVC+xYV06FPVI8Mr^WlWbdV5BSa@VE!Jz z8u>54oJjL-b6l@i!W!-clUr7gsuLPktbukPcoA6h$qj^G8K7vHf~5HOP*tv0IaTnKe@(qdrxcs!-KBf|5po4I&eaUd=!pOHSH6HI^bXo#uH z2$Nfoo3(d5PWABivL-{HmZO39nnlH!$4d^ibG{}cj0QfbJ_Vh;AN_J6<_+M;mv!>W z%u623u5jy`gL&BjgZmZ3`)-Qm&Z34w%J9a|uRWVv}zF${yTFxxK-02Q^0*gzlXHLQ2RW--$3By0sbo2Wn6X9spiZ%FNik+w zbE31^?zSuAuwOYitfH@4iX+n2^yPx?Yd2@ZtyVaH3D~V;fAidZpsml zl9HHVxK51mnb*PSbtU!8l~)pAW}M*-?M&-bJ(F5=-_ft5`=%InP*85$k~TfvNkZp* z%5;w&xNkB1*JonsucR!-7|(qry`bZHsl@L_U(wf_k{Z6d6^HM; S5}w+cT=0kcQJ2S2r)IyJvph)v literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..a44ae4e8d81ae29ff8ebaaed4a1cbc3b4b09c857 GIT binary patch literal 1341 zcmZ9LOKVe66oq%*mR3#c3oC@wI?=WvsP#d$B7~-cR#Osm7;a6PY7-NZ)W%u!AN&i7 z`1k=LIB}x?$AJ^U^__c<1UD?sS!+M<#u;BXlvTE!Lff|uX{?p_npc;<>q@;A2vtNy4`-GC?)OY-EHlS>Kpx_ zRSJfIzO<|-mCsO@K4oq#usIBy6g(pJ!1VD{B_CxVtCaT$B0CNj{6FKD*2b z7<{bL^E0YKodvhuu;#p!w6ycm*n3{MXj6LK@Eu}0C(ZKZUSg4yv6&mV>S zw&#ySzUFx)_dFc1t}tZ;FQhSSS0WKYsXFK)a>i54G4ohW1+u|D*d-+53{f&f)B;Agn~3 zp05S^Jy90>{2~xT-cxDx{VJdn`$ihGe-qHzSw)?A`|kp}$3y9S?^}T#@pcCSvryxm zfY0auh%|ICqbTaW7ud(VKo8<}qB%b3jvw>dN8Npn*FHrW`>Loe-}PA_pLqPd_qw*o Oe)0WL*E_Cr*8T!3QgtT) literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth_vsm.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_unpackdepth_vsm.bin new file mode 100644 index 0000000000000000000000000000000000000000..8772f8e0435bf61e98402cbf1afc674afa3e9354 GIT binary patch literal 1329 zcmZ9L%W6|m6oywWC$Y3@ykmusS|{2z1hJx2D?(^G=uHypFr1p0784VaRHGx!Gx!P) z6!G!^A~?=2GOaH}c z&C&3%-*kOiie0I+yL(|&nE#j%RC;7huD+Uc6CMec z;Cw55%zLeqJu#m+eC&NUrI%jp6(jFR9{!KJ^0LnbfnCDcK~Y%poS82L=IyGAJ$)6( zq3)r4%>5?dCwE)Qse3En2N-(aD4%zI7l^aR9jV}Z{}AxUxGz7ucqgzwz88B!Cq3Q^ z#Nzs&-iIH|D2u)y1ZK|)%pmW9*YQzz;#lnaq4 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowmaps_vblur.bin b/examples/runtime/shaders/spirv/fs_shadowmaps_vblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..c9f4bc9b41035fd6f375ce970b0251a8e7f7f7c8 GIT binary patch literal 2533 zcmZ9NPl#1z7{)*6&fJ@6X#_?IqD8AjrW{AZv_*pxWXUHa#j#8{D5&ri=EZq3Y{e7JRdcGo3ctP~rXTbho|m)ZAQWX1L(& zWtqFX;OuRgyQkpnb(z~*aQ42;jlk85wLCd{XkmI!r!_m)>bBUGaaLf@w-b)Qo5&|i zY~Q&qRv#;M_iY2=u-?AKY*B&jS?n>X+ppNu5ZkNRy%f9WV#m!?S+}X!`QAHjgQ>%< zgY!%_61S$6+=Sj4>6?$hxA5*&2-f&c@eL)`dn0&+r^EN}EV29JP~YB53omuC`{7tm zKkkWr+=Zr3lSt|GLxJ5>@Oa=yd-#FC`+E5P%~adl6yZCpbFO;KJwWaVe6T>LcSh|K zVCTq3#N0!@xmyFz_VD(oJq&h^ytTP+2mImd?cGs(3S4{pkv@J6y#M^ayFz~tJUVe_ zA1{I*`{3ez?&pu>o{#6^eu}+Ma_asHn7bG1V(*t+VDDFsyP_6_MjI2)8ygrUc1M!){oGt{vX51TNnNkR_|G&ZVx&H;Q zJ*Y+PHS#Izc&_Fb&EJ#%$oWgx6Y3NEFO~PlP|b*8YTswe-<=f#!v8fdlw7T>Q`^lK P-k?bC8ZJ8urfDxV{-~)znj2g8!)n~}wghdm%^X4C5FrSJ zD5Cy~C=$sQ5@m@|5kwRbK|~-CR0L6hgiv8cpU=DJY|p)idw9^L?IocXxCD z?agO?JpWsPT~N#&9UOhMvTOLjw#vTN`LlY8f#So9i=we%S&MW_abfX(gQZ1rY0&^u z6myE^a^14Ef9s0Tv0W?L*0jpcD;ix&?h>kI5$k&^yB`x@&E^h#E#8f9!29s|?6Zys z5;Yc0tmnX+K=b`gRJ6n86Zcp4?%Puxp|+*CxsDsCj*smhslqjt&whMxtUCVi@bJj4 z))I4;8Ej>VIok}js>Gai23uWX&OU>+fi;&}9vXUNd~owfWvHhzR^e2(pum~0#yh>#cpS^^94XbAVu9SN|ntbO}SUyYM z-1E?`WS&i|&T#{rvw4O^aqzat@0!Zj-^h(P%MRQc@u=BJtVMo*nH}tkJr9suBOX{a z<$0fBu*nyy>!QyDdE+a0PUo+Y-*@Dn?%+QsZ{NOrIzLN(&l@LiQTHkikxx0Zy3M_J zG5Pisd!F*kDiGh5E&%GPWo-4t` zeb$kL9VHg`ZnpD=ILk3Gab0tHj(XppHfrU)->5&HYORMZ^+$aNfV}m+^sxUVxqalK z#|bbs>zYew>87q;%X%XS+&*%l?=vtp%EcUC5c`hmnoH=rm%a7+c7ln!FZ6v$EbjL}^!*A< zT-RJe--Fc3=lZ@*wbnz|=&Jz8=lZ@Ow~t)t`xZ=%axupl;?Ng;L*EcUy}sRG;_eH5 z-w})F`o0Gf*EN^Ww})E!T;C6=)_Uj~eZv6qxxSys?IRcZeg;#cT z*;}vg0GPP@Lf@~%;(l*O-`~N+b zF6Q`?IP^u|(02%+Uf*FbarcG3zlp_jedoc%bg2uJ6B8Ydv(0zNZ1?bA1-s zM=ta=5UWux^feK01k*K_(Dw{ny}oC`#N8MAT8PE{KO22#lZ)$`eM8^#VDh=XxvAEA zJ~jGY1dz}5%_FyuT8L@b-Zy~w3uI2h( z1(VP9ElRc4^QqBy6hJ=LcNMvP0&#$C`EAS|3Gn M|Dv|DR9qDQ1Ig4sVE_OC literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_color_lighting.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_color_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..5cf2c5dd8daaa43d12b63c60a22e4c8774826d51 GIT binary patch literal 4823 zcmaKvZH$~%702(i%(mMucDs}oFpwgCFws;Jd8xJ(m*Q@fHr?(j#+PI|yF0r~GW+7p zPN||{k!p|++89iTQE6lRfM4W;iNp`MMb;M*6;#C6M9~J~Q5I%q|R6=2InY?AGS%?fOh-pfZBE zxm!EdY~23-#_>jLppsxVb!(ktVR96r+O18^O%GHa0&nQnCgxgm?SaZkr2cNL)ttU< zVPvi|TAyro@wo)uv*L4Gr9WMew&8BRG0|<++qKSZ&DrK`ql4Wk>_~00IW^VoGzKb* zC3mCKtI@`GLmFPAqudMKcBAm~RdjD2Zq1F?TV&mn zlpUqUz*Y;M(3wxGwr)Lo>bmgZPS3aUJa68sXQE{9-c}n@@GCKU3clz%zI%&2tjFv1 z6?!$-jfD*-r{Fdg>v{|Bf6ojQYgY7|&g)kXf%+=7e?Y*fVr`$MTeYEfeR}`gTzhhb zuNJ*KR-2t`&rr<5_JX39$BIL~vev$iPfr~$R^MD-sB8AaAlZzN3UkN^vWqVlG zE2|%59?1OxrmOtJIDk)kNx0&ygpIN`{me3FP0O5p)o!F@XHVshmN@$t)0Cp*Gk!1U7hvzZ!>sHmc4UV zfE}*){web)WP29+i-=;JD~Y+Dr}#4dy1(r(?rA6UQqHP-QPxj+guH`T=An&#lrPM( zbydD7%f{M?yq~ATczd$!*>R{JT7gAu^~%GUyBPU>h22U{Z_V;8aOM>9;cWj#_A>@{ zAL`807uDOp`|Q4uKaR|JcgXjy$gB2WD&)l*FJb*x!0ykzT>-LZ%E62O-*kUp!^T>< z*8M5lU%ANt6xcJP{b`=+^sD?}mW>(qkAU5q^;zP%lj%^u#Pf^-Bjjapr6m6t9Q}D5 zY&`vG@AD}px9z5opDyIIq-;O_!1T_9|7XDE{hUSKl=a%5V_L&l|0=j_{|=HfpV03` zF86QWz07*qlQ?0XFAByq-q?2-ve`{k74@_u%9Y6G0zKU^%D5hj|W? z(c?VNKm}!__MH&dg~#!b)rLE(F(Wuim?FZ13D2WMliTF}C+_ zFP!{IY+Qc>SRe9H&wXHdr^6hCceBQt3?gXbzM~%dk+rk`>hH^Y`xw|7s{c&pI$+;n z>Z11DY^N^b+zys^ZTR~HSl&8Ee-9$NPv0rN7oxw1;MMg}E9?AeusObkc`wuWp*xXv zeqXKCeRj<{bBJ~KWZh+~)6ST&&(DGNtBrLshY_$j+{Cm_v4J&za*{^!x_iX0;uJXO&+P}eRt1j-xS+MUUb?!sEzk`jVF6#0e*t+{r09l@IP5 zSl%3h`xjWg%>5f#eux=)zY6A)E@!I0C)ejSu-`Z8`}i)lX8!^6;df9<>V22SchYIF z&2bNh(8XD=*f3_?*L7gIf=8u4P0ZW-T1D`?TD$oExnFy9{x(tXJ5k#&XWnHPyzed|{4xC( DVb%TQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_color_texture.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..188715425868dba157b9083466a561cea71c3460 GIT binary patch literal 1597 zcmZ9L%}!HM6opTF`zKVbia*q(DdG%+3;;1mQzM}aNUW)mIBG6Xh)MC9QcS15fsPbs z)|tG3@fko9^#zOrjei3}qA`-VzT0!+)lD{M@3r^Ycb&Cit~Q?v3Z+X%7B}h5`f|_= zT1R8X#7y5tz1`?s0mzxMshUj67%x7YrkFMvlUEydL{|y>O)5Mq3$=yOjrPju_{13X zL&oC>Yln3+p%`EHZ`}s(%D3e?^?~aHiae9lxu?NNq0#=NIwn;6%dh6I-)S~l!l+IC zQ@h^iv^QIgu$C|nb)Ky>gC)Nyw#hITWbDg@cxDSgmedd2?xMqT5VTgtgrq{QOKYp0 z`drIjoAukiURe=CIGy35%;iIht2T#Mv`$XFET7k8xM9P+Lo>V(iz{ayyrTEXxsS-y zyE+SUj2ul}eoQ-J&QPc<%Qhyj-&(0TAq>rn@>_TF_6Ooc(~ElPc(SN(12S+~I@5;qQD>e=G1nYm6B`h4B9}BNUA%<>*U}E*ItK zNe;)Sa`@fQEwpe?O@ZSFIXI4qTF519-|*dHaHBV?ZE$bT;(49) z@YZYk4!im!XPzf_*k{Gu!5sEQv76(tuNFg(s;0sFo1FXfQ)m8jeTzNs%BivcANt}; zo!BqwLhY3t3_Xc|>xIN%mo!0Qz6To F`2&nam5l%Z literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svbackblank.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svbackblank.bin new file mode 100644 index 0000000000000000000000000000000000000000..af6b55c40725d74d4d65268a6d30d13bf20f179a GIT binary patch literal 362 zcmYjNO$z~06g@LzP|8P&6^*c>$pR_GMp%s1*lQ${1q)_j=|@}GDCfK;&8_q9x%Zv> z@!mSz=JB_^1vqxM09YuXh+TS9gUt+3Lf-gI5C;AuIr-zsNRl!fqm-sXO^#l;Mwgo| z`b3o)<=C9eflL2pfy-=G>#|<@V|;!d*7qo0MM=ad8>*CV6S6vYvgtdf8w_ud>p33L zq`pY6Sp5e)#ajgMT6&CoWZGQ1c^Yemazpb2KtQgVET-IAv(;B7{f8O7X~9T6RQKg? I&CHJhKe$yE+5i9m literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svbackcolor.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svbackcolor.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5d6286eaa54e65ac1a8d39055c7e312ba339290 GIT binary patch literal 660 zcmYk3QA+|*5QS%VT{VKTqI$|Sdx=0QDuSp8!rj6M5~7}DEs|i%FoWpd_8)raCFp$D zOL$@K%$zxM?#ynhlNQaNz)J7k`$0Y!&Ie|Jy@qB{*eDT~tZa9lH)o*`vuP_jpR_ye z=G*9@xx2RoWyT`MgflBnK^}X~o?a;I$SUH1NnBB6vHZ6hVxf~<@)gzAlYG$2a;e2G z7i4}|A(5>D=)_{6-|IhqbX&u$f0m6hO_fgcH5}6{Q6Jh`Q*ps*to_%kI0lukNNFYb+_|W7cHL;+N&g*{AB?0;>r@hko8a^f^0#Eh?|cV}Web=XJ##`q=?4 zdenJmLzaGho>1Rb%wM36J~{J)1-ij+W&8Rr=rALP`i~I)$Ej}KIhQdT?;nXt?}ZHf m%BEa?sTe(QwCHCh^sW`rb0cF$xZuaSnF;(?QysW%EA|IG*eTZl literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex1.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex1.bin new file mode 100644 index 0000000000000000000000000000000000000000..020b8f9ebd0606e3b4782638ae6dadd16509734e GIT binary patch literal 1082 zcmZ9LOKVg?5QWPbXA+1+gTd_N%IHc6E>r@+m_?Xz5g!oHrCb$8_k<$NzPBcSN(%8H?BzV=*2dDrG7f zFcA~cPJ3^8WqEdecy0FhiDQ;bMl)4fvzL=xlj3H%I#4)ATq5>Sr-lJpGg|E5In;uc z&-E>QJk!5%xx032Fzl9BR|kFT+UcGv{p+_;%KlP0Ea{-fUDi($J#I3eAf_s;_d&w7 zpSLvF52X$wzjNO0m6`jXBq9F9K7i%}tm!ePdtnZ=P`n!bhwNLdg z)Y{tyq1GWjRkimjzF>E*o7KIWoIxuQqNvb$kpmzPr>p9QTKWVR;$13Ie4en3%Km1p1od@tJS?;f#nOL j?)4h1rq_k^Z;yCG?reRty;!rrZ^Pf9+FxAfl5@mAds<$u literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex2.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svbacktex2.bin new file mode 100644 index 0000000000000000000000000000000000000000..a7e24384f634f2d76839ea31e3d290be7137e4cf GIT binary patch literal 1082 zcmZ9LOKVg?5QWPbXA+1+gTd_N%IHc6E>r@+=t5>(#0La)DL0BkKu1Vs;c_$vU-%;N zfseiZ0$utS{4a_R5b}M^ZMmeO=sM?A_o=SA(_K2(j{ocM?ucfiGZwKc#$r4^R?1W~ zU?L`>o%Y`1(&Fse@cQiW6UQu>jAp8|W-lkXCdI9CWuS0@xI*lsP7MRHX0+IUaHs_< zpX*!rc&2~zYIpVaVAw6Mtql6swbMPz{Tp{s%Kq7MSkgg{yR4ridfa3_K}=Ox?}LPE zKW}NUA4(lW$`6n`hJu*k{5ZSVo~Ehro}-{#6EQlSaR+VY%lEmAkAPhnrvXKrDL8)~ z-Whq{e1+{*PW>{wlhj{bZ0~aUzIWtzN2B?SKY&@^PBIqd3&2Dw_AMa4Y;@AP^Im%Y@p*CTSZy4Pc{d_mN`o`BW# z%I|tgp5L9{^$ae1sb{a}(Z%6hqY`WfaOfP+R1!o6xZFe(&VKAda z;wt)J-1>Fw$bA@n-_G#%nGU0F<{0h5Ku4|I`Oy)xo(%Rv%Zz)U>_Ps=KQf5FBK-pC C6&t(& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svfrontcolor.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svfrontcolor.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5d6286eaa54e65ac1a8d39055c7e312ba339290 GIT binary patch literal 660 zcmYk3QA+|*5QS%VT{VKTqI$|Sdx=0QDuSp8!rj6M5~7}DEs|i%FoWpd_8)raCFp$D zOL$@K%$zxM?#ynhlNQaNz)J7k`$0Y!&Ie|Jy@qB{*eDT~tZa9lH)o*`vuP_jpR_ye z=G*9@xx2RoWyT`MgflBnK^}X~o?a;I$SUH1NnBB6vHZ6hVxf~<@)gzAlYG$2a;e2G z7i4}|A(5>D=)_{6-|IhqbX&u$f0m6hO_fgcH5}6{Q6Jh`Q*ps*to_%kI0lukNNFYb+_|W7cHL;+N&g*{AB?0;>r@hko8a^f^0#Eh?|cV}Web=XJ##`q=?4 zdenJmLzaGho>1Rb%wM36J~{J)1-ij+W&8Rr=rALP`i~I)$Ej}KIhQdT?;nXt?}ZHf m%BEa?sTe(QwCHCh^sW`rb0cF$xZuaSnF;(?QysW%EA|IG*eTZl literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex1.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex1.bin new file mode 100644 index 0000000000000000000000000000000000000000..6e05462b96026278f3c9ca7cfb4fe72dad8e593a GIT binary patch literal 1066 zcmZ9L%W70X6h%+E?M@&P4F)rlD~%%|I8X@$ji7Wphz|(pP_BwiKwC(9;PA#6U--f& z>KFJ0I`bR+7sUq%u2tNUOA0o1_SvV-u2Z+Wzk0SC|JU5Eh<2+t88H!)F%=(cWj0!5 zBBrC8_QA^P%EHF@`ohs;M=Y6%cB-^y4<~7paI0J!DVztF!CvarFd%A2hy6Q;I%Lh~ z`VKyx8Q#3oU%x#X_seT*qoH-()aUB(#vPP$c%~ee++aX2>u11#PR7$t0Iq$^ z(qccDZV)NnPwX=kV4m|+>~ilkM}>V3!*WeTwVZhmZT|DO#mo=EU74o`ia3?|>7-U) z3;LZS_RZ|SRCDicPW=+QFYA5O<<4R*_j^ygSyfBNc^&8S&Ms?yk@1aBkk#V?u>Vig zb#~VuH1iw4oM()GvuE!9gRkcNAAmF1w*b~|r7sgv5vvzqH`Uf}f(hWgD)5C`?{XKY z^}wgPcB{@8?7ri6-S-}`TAH=a-G}e=dO$9Fsb{Z;#A;2iM{x56XnH+{tLc^JdP1z1 z-!jkjlsJ2-XRl|(YE7@_aPtLddcA-|6*=T=r7WUayJOnqF_<<_pmDdJ9+6 e>tgzMN4z8UZJpV>SaXu!hQBejzql?Y=ZJre=3EW{ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex2.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svfronttex2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3fad986e4a2e351fbe73049cb7731b8963d9d9f GIT binary patch literal 1066 zcmZ9L%W4!+5QfVcXA+1+gTd^iWpE_~7b=0E5tJDh@d5!|N~<^obcAFUE<46}!y8^v zpTH;3rLW+-C|*GD`;L92$$_HkufI*plgJr%G#fbCWj7ZkDSfiF4Q`Y!7vE2oSZSga5{*4q5ZL zzJrc;hBq$v*KUo*{qpMSXlPwG^|>;P_BunmNM?a&3*d1knusVC*$-$5hpV~^^g8i z(C;j(0(%%?Z8@zcIN#s4gVsh`&}yTb}>` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svside.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svside.bin new file mode 100644 index 0000000000000000000000000000000000000000..5742d08b3ae580f2b854ee48f897fad916f84eab GIT binary patch literal 1162 zcmZ9M+iH_h5QWF2Neh)~QS6;myi+V*s8ouF3rQ+Q5DNCPM8#055!z7d0h_8-@p!4e zfj&XK@gaN{iw6+=zU|%+^26}2S!-t2p8bb37Ut{Uc6L`HJ-v~LYUSu?#GV+9vH0|# zj>)LNM2ts0y_>Ct*34S(*37BXCoP$XYO1tmAAO8TakstPRhTDQ#3HeuT6Ii7)u{3Q zL1PV8zVy`4>|0-2L93_!&Yh*k>b-8S(Z0Fd?buUKGjDWmZ=ke0m)gBHCu%au-ou1X zlUe#tBs`MvICwJWo~zUzVAl%yk#xF9_z<`bH%&}2dyKca=RHV;bB~kBl{qCp1{cx4 zQ1TOGQ#;>hOMW)#adDddCfGZ4&RovjLr(ol#`>w7yI0Y#gZ&boPu<+zA8uIE)kzt1^e&D>AA*T6o1(BylBoHNCndFDFUxxe9y z?t7PCgq|O>?m4Wr_i6gl5gTB2?{qKK*54=G-#yg7QtMeC5Nh7{mt6ZW^Y;6lw)5Oa zV6}8NnR`q=?6nD3ywrlOL1*K4@qrCz+=fYk=Q-jd4?d%c5G)9YIL_lS58_HNzTvsiPU-^wCy LwZFK|Cg+HM?1p4m literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svsideblank.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svsideblank.bin new file mode 100644 index 0000000000000000000000000000000000000000..9e85b594b2ab91a17ee33db76b8a606ea34880da GIT binary patch literal 426 zcmYjN%?bfw6g_6lj8cA5>=^8jERa%cgoWKafJP#T1(KzQ@Ge%~in3A8`B1*PbMHC# z-0$4^hQZjqT_0(t3zviN5YlzT32E{S z9btL=aE3cu#6{x-Q)gMb-2IHS+>M;me8tg->mfSpTb;?iXtx naq3r?^(yjEUs(HzYxA$Pn|yV|J;~@jdPLI6_r=>f=0@NR{i_^_ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svsidecolor.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svsidecolor.bin new file mode 100644 index 0000000000000000000000000000000000000000..69f6551d14e6ac6e77874d43ef2bd3f601eba406 GIT binary patch literal 724 zcmYk4O-lk%6o$_@IvPQrR685fRe`mrFrp#|bs_X&+nB~839SLMh<;VOR{fa%LqVIM z_qmPXg>%n&-}ijo(R#ZXyuW?*OvkhQV|11Dlfj$^dd-;mnR4DKR~SIsW$d@7OlnVM@W(dc@VR38!PAR+cB9{!B5E#Vyn$T!eckK? L|D&yHGX7P+M(8lP literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_svsidetex.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_svsidetex.bin new file mode 100644 index 0000000000000000000000000000000000000000..4f1cb1129065c876c871c10d606df08cb898fc28 GIT binary patch literal 1575 zcmZ9MTT7Ht6o$8sj*?;7$vYWSya^oS&V)RG2AD&hDy^ z2-y%al`S>qHK8_qvyRmeDpf-r1@1k4gMIC@bEEBt4j)vn4;i;a+rhaia$~YEHYJ}Y zMhL-9YSl0y%Yq?Q7)M78bgW z@O|}melBZ%!}$9<3TqETg#KbZM~M+)DaAKa?iZ(Tk-Pq)$=@dAywm(@dgmSTA>t2w z)ZN$l3()fmF+|vhwVpkR;;ilx{e&}ijQm-Yje7V;$oSI(oU9ZUX>LB8~UXw>J_2~76 zT&>jWEm*$X>m8h0>AT*8%e_9pMKAT}^^shy)N2JSU+(n@PED_Y02Q^0*gzlXHLQ2RW--$3By0sbo2Wn6X9spiZ%FNik+w zbE31^?zSuAuwOYitfH@4iX+n2^yPx?Yd2@ZtyVaH3D~V;fAidZpsml zl9HHVxK51mnb*PSbtU!8l~)pAW}M*-?M&-bJ(F5=-_ft5`=%InP*85$k~TfvNkZp* z%5;w&xNkB1*JonsucR!-7|(qry`bZHsl@L_U(wf_k{Z6d6^HM; S5}w+cT=0kcQJ2S2r)IyJvph)v literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_shadowvolume_texture_lighting.bin b/examples/runtime/shaders/spirv/fs_shadowvolume_texture_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..049f440bf36cee3e766f389088521d80eb65f10c GIT binary patch literal 5266 zcmZ{nTa2Am7036P=}c$ZQO0SZ?G&3S#ds;HO;kc8mYG(WqAi_v0QEr+r|p^P(KDBv znN$0qSVXDfB^6PKi3uWBfk;S<;i3;y2cEQvJa~C9J`fWz@k)qj0_gAeoxP?XW7wJ1 zz1DxNz1G@muf5OL>nHd3-gfZi1Bo$^`rFmo%+W@Dc5$dOpDL-ZU7fGBYBLK%l?lZ4 z?dr)!{Zlv9Pt}`4l?1Y`U0paCCbt6gw5wBd(?gZ};RoB*W@Gxq;>6s-k=pS_8!wLm z_jbH&tPG|#X(JBi>&M#7TC2KnqA}Z;tuJ7A7CVwT-k6$dFVu%Br%UdROdq{rcDCL+ zGE`XtUbj$Pte@I9*PLq&rqMK!1`1$uu|9jO(HyLdrNimL4JmbZ?O20iaLv1ce>&Q11G*fHLs(%2*Ip|^NN6^op zLDpzTFu3m2!~7z652$#o?ZLvbUrc|pHZ$L>x4_gLdX0{nFSc9tteXs7-es(G-Oa0X zvC{bG(Oo&-oI6@;vg6)D21=!K1??$tQqFiW6=J5zOZSB|1kFF z-l)KPW?`eO&EP7`Gbm$S+0Oi9tv%t|TT7U}#pX+xy&!hFgxLpTXG@qd#qKX*p1as% zCCsxHTY|W%XLxS4(-l*&woAqC0Ra)yba#rdhfY1Qz3ijmBYX19rhbQ z#kZ3~ceWV@ac`G_xStVdOX{afJMV>l%Om7X#5OP2=u`O(S+=IiJaL8ISR=?EVs;qs z+AJ5(JhJ*5RWgjNUfDi#guQ*`2)%vexD@-3FpogyxHHQiT_t}E*|C-V)|ic@t^4>i zbm5l+qx!lNegtx;S3U!|m$1JZ{+&-fzbEAHATvfoezYU6*gsjwr?1)#+3DLY9}9!~QvV&qmq({t+~E_nCxU1t7@x>!eL@0^(W?`Pg#R#^LjC@ZyKaNS}X)7n2-L?rV%4*nj^3(1(3t zujExHFEBTejqTfJ>?P(IF!8h4xPBI1 zAL3EZIe2l&VGgo) z@Zzowe~-Y6Tjx06&mgISHlb^bBDIlc|@%{6}Lev)Uk4Kp zzjwonNsiTizX7g|HM~9d-97NeQx~zm32!Wa6C&2Pz{Dfgz3^g^BVt(_@BMw?`qnP? z^=)`@>lSD9G7F96JK}F#^w}%O>SFDy@U9m>#HstvSv225$>9`xsG!rY-yE@rE->*} z-wiJ&Ib3i4`d%XjX%jws;8*+X1rraSYvIKtM<=Jwo7o2zd-eA>_Sz4w&b=CY9lU1wM@5P6~e0!b&6W2c8y+L?!M_@x4Ge6%3@6iS@ZPkU{rP+>Y z1>2Od?$X-LVA`sS`>_SyH%XoQFvc*vanwZ*Y=yTjep8fxOD+dj7yh=vyIwr*{s_E# z*bDh~hR^Nb`t-Y`eD|*aR~L3WUdQfAaCH&;E%2@t5A3b*;^q+8+u_B_*gKHL{U(aM zcOskjn<4dI%=Nhn-rpPb1N;_Svt8MCC%k&!Qf;CSegWn;#6c+f-~yPq-vV)GpG6jz z9LAT8-<#hfi23cJt#6=r`41WQ4b;YOr09=dBdd1=_M439E3n^YOw;(C{T+hqwO8-A zROI?DWc89Ga<$IpbTzo&7TQJre}a$v)kpq+&baw&5+O-mv{(%dGKU#JhL{n0VCwgYaUK!#J`LyPJJSY;DcOc!&5O sgm2J|@O}$xXAS-K^}81_9f8y4G6eUkt@s}P^;=y06}(?lMEF(uANMC7pa1{> literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sky.bin b/examples/runtime/shaders/spirv/fs_sky.bin new file mode 100644 index 0000000000000000000000000000000000000000..e4342250816d010152de2603125187f8ebb5b222 GIT binary patch literal 1734 zcmZ{k%}bO~6vpq&IHQr786_0Rn6)abMMYqKjG1F0G~%+w@M@C`=}gRwQwCWUfty_Q zZ}eSAMkNIW1-0m7Ev@=kv}w^M==r^KPfUxhJlu1hbI*C7bM767$43&&OX(j@E9#nO zvuA@+Fq5m~O69hQa}n1vn=Q{4hVrG{WF=oLv_)D)E+(9dMY|d~(CC`ncha>ssfM!L zdY1_I^yv6#ce!$^d;fub#9Lg9EsSk+>s*6uFcahp@E3%6VL@0DT6LbdJ|rvV;@W@e z197qSdH6kw?MzP>CxU5xy)pDfx%!syEr!m2d!ug5^>Ronu0Qltv*pQBE?3AD%OQt8 zacAa^6sL=&+Bx)Av(V{ohfBfKP*4dpfe}?eC#$Qr{pHXD*D9o? zgLBc)ZU{B)kj+Y~S2T7C3>6=p9RdpGrXKO*+KHpb^k!sh4VXU`x|jQ{{z>_kKj&@w zMn67xVDXFIW^Tms=RIfsg7?vLT{g2t4{?0%2+s6;m94e9M_p0(o4||>2lck-i92DD z`%4VJnO?EvToTY>{uSBiNU7$a_M2g>HtSSq*Y5I`kJ-7~|2cO@Jh5x~Dzm>UkPDv@ z$K3A;+%@-s4tl;Xz@LyxbUyGLJd3%~TeI)|q34cj=dAI|bv(V@@H!sJCPv;>&#lPj zj)|Gx$Feg5G2@kZ8^q$^juVXMs;};p9JzbPaNHSdeuwX NiT&1B4~1V&x<9THsj>h7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sky_color_banding_fix.bin b/examples/runtime/shaders/spirv/fs_sky_color_banding_fix.bin new file mode 100644 index 0000000000000000000000000000000000000000..edfa8dce4d96274806da5219fc4e6b991b43c84c GIT binary patch literal 2682 zcmZve%WqXx6vlVorL?8g01*w8hYub>24XeR(%QmppwL!)MIr5NEp2J(ZTdndK4MB7 zfKD__{1XgQ6Gz7P1E~Oc$~|=k)TR0~ zN2p^ndk8nC+H5ZLpY1=iu=whs$B!J=-<+zPGT)}OAytF5OU0>K^)Ik*u^X%^QN5p4)kx!x%(V|8{3XO_USL3!8_qk-5Tf)ehl7!`J-nJ z(i7KrVaBLOOb__#?fr$|C*k|fz2C8eGwhFfXl?L*X3tlDI_LIDZ43Mia~oz)+)qA$ zIrI-Qw@DcK%;sbLvHmKUvA*B6jJ~zL-*tGb|2)U`-hRow zN8$fE$G&_0a_^P?;NGiF z;{E{NEACHpeJf<)y1y{js&}JZVZMvG*7xZC_Udm;eSj>@^PgN(cTjd#Yh&Is1-0Xt zv7uL%>DKl^o<}vhJ{P@{Yc=3&Nctk*TCn#=UugAUx$iCN-vEyKuM;1AYCzZbZhpo_ zux=r2 zgLzT|rZ4I_0X~VQe~{d~(*>})X1;2DVDGxVc;_Qv^)B={rwHfC?wtNOXB4cjr!001 z&XeV&KWaJ!zE@5C==$RQoCd3nl8;);EOa@9t5sx+AoGxuzW2{#^4rJjm~%iTMDU>y6j%@2!)s^J?z9OJz@H I)wQL60ab0_o&W#< literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sky_landscape.bin b/examples/runtime/shaders/spirv/fs_sky_landscape.bin new file mode 100644 index 0000000000000000000000000000000000000000..ddcd0b687728554448614f9a89fc2da61d2d39d4 GIT binary patch literal 3372 zcmZveOKeqD6oz-{1Ed9NMU7~nh>0%(Br0#(LV=5>vBjb!hS*%nr8M;A?Y&S(P=)wH z6s->ultgi0G=_=BqC*{+(1`;zapcSqBi{z}`_4W4av<)U#aaLVue0`A>+EyO_TC*0 zr_QhbIyUN3ZBl(g3LQ73^N*;VBL$*RTmHWo> z#r$xgR49(O)U1MH9gjU;L&UY(8bYUwY8 zU*YRvv(MF2!&&sf z+d*b$ynu?f)`-MdrlT( zF0p4uY%OBXPtOTJ)zVF!QotN0(L^<`pQhy?4c~ZkA5U|%gHMCi zCR45h-*c=M``ChSAMIG|qZ3X(_OTUTPIGy4uao4p&utLKSYyna!#D2?7W3|alaF~H z#+TDv-m-ZgfiT9p?ZLge@Z~+fasNm0<$YfsN zbEwBUPvgt`EyTDzVr&|V-{@2Lo?*@9E&Chx5rmxQ-&lXI{7yekd4D^Nxq$WXO{n$b myH_-8lHUjCbL#OM+mG+wYS({bZG2IU@Wx!GinU249pOJs|4B0d literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sms_mesh.bin b/examples/runtime/shaders/spirv/fs_sms_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..cbd972d49a2fb5e43d8bfe0365033627b6b05e3e GIT binary patch literal 9009 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sms_mesh_pd.bin b/examples/runtime/shaders/spirv/fs_sms_mesh_pd.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa074563daa6271208d8761eea3d203c69bd2cb7 GIT binary patch literal 9037 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_sms_shadow.bin b/examples/runtime/shaders/spirv/fs_sms_shadow.bin new file mode 100644 index 0000000000000000000000000000000000000000..10ac23cf559efe48e28a2151b931169a54ff9975 GIT binary patch literal 362 zcmYjNy9&ZU5S%2&1Oy)l3KkNHof0fm1i?xY(R8twh!`xiPzyiY!bWiB5OHB{cK2o< zcX75V<7Zn7aO}_nEO_v-`Q9{OGXqpmHk_nc8r|-PXgnE7QiWrb($uIak%e=9y6B=$ z)TvR9&FMLC$xjxz%>HX#)=R%Hj*ne@&5LDz&p9QbO8G7!YjP)>+%w%^{1$yZCm`C? z`((xHKj109L&yTgAz7PCH~+?(q1@2?0I;U7ntx2WwPvfYO!^lydeefDdZ_Nr-)YesgCGiPL)^_?ayE6?Y_$jJhsJKwYu7uSVLP45 zA=GY|74nra>@h3bPvW&EEicCGww2r-*BZ6CVcMFTUwDar*9vS-8&{^vIP53gkMM7W z_riqY(9}Ry!HU{{t8h^)e2B+imj5K~^>>nBu#YkO)2zYRkF=u)q=|lvCcu=$N#jP{f*pCFW(N^%I%#VXlf9ciWXXhKOzHqOW%|eYx zAQnBuK9$W1{;cyxOCk4}d}81O?(19&@*{yY?eB=QN77cbGbi`932n3oyp!Cc1z+IOG(SvL9b zA@_^ykjwlb_e3_@SD$+-n|%07am;WgR0Om;>Iio(a7VWU^t#=2{Do{Z5EgOF%lXLt dArQy+@y&CWvdKYP(M@v4aDUY0mFqNNe*v7BS=s;q literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_stencil_color_black.bin b/examples/runtime/shaders/spirv/fs_stencil_color_black.bin new file mode 100644 index 0000000000000000000000000000000000000000..c2c787406f10b0fbf7fc162a6cb4fc5a817055ed GIT binary patch literal 362 zcmYjNy9&ZU5S%2&1Oy)l3WB1>P6-w&f?y?yMLO*zA_faBG=(2-VIw$mh-6`I_vYqi zZ!g+y%lOCM0vtQ=01F;`jD9B#*kphT$|lFjE(ss`DV)uxl2qXsr8G5aO3cDFz1(yV z5Or$A(VUe7m-)pDF4>~i<$dXo+4*^h?rFA3^ORj;s>JsQMU!u`nFq!Vrf#v;IDMi` zz0a(@{Ks5XcL>GAObB#Yiz}i}?U0<|SATH}zFNKIs}T1lqnXy+NhjYAe`{%e G4EO>PvK4m# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_stencil_color_lighting.bin b/examples/runtime/shaders/spirv/fs_stencil_color_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee3e2dd4f0ecd6509e4d7d6406e8abe8529a7ebe GIT binary patch literal 3913 zcmZvf+ly6o6vuzZxu|(W!>EpFMjGTk+Rf{?_`g^;@^!+Ivsyw`^!^ zKXQ3yVogXBYvoG!w$6^8fu_>tR7w+S<-SUPrMucxT8%iqR^Hy*)!W}x>O-1dD|dD7 z+C8wjx7uFW(OIiDHJnNfsj*hx-`R0sMk%HGG^19o_H}HpbyfPy)!m&vojn~@oDFiE zSUWm*?yOZino3&>?%H>4d$gygqrbhWVFY(WQ&XxNH-CIGJ}GV(XR0aPnZ|*nG$}P^ zd)vk>8<$iEb}U)GVyXJ6sm?9aP2*fWywqLk>=9qi;Rm4>Xgap)2m)6})Rg`LZvZWx zQQnVkL0ebvwn`U~8!{OvjaHq&8Z(UJV58krAGqm{b-93>?N~=LeAKt`^S0w-V&>cY zZr4~~Y$jwjjhW5O7gW?+Ykq-a9arB#{Rd@O4g6=H_LqBl`@1PP!|JoX?ayvmo5rk% z+ji|dSYF>>*|oMZP~isJ=+yxB<}n>ot`+1Bc`t$BQrdtgd+VA%y4{4CuYSVL{%W_n zfZ1EI%>~T9ift`m#uMu+VD?mOuz;Dn*r@_$9%3U<8@)1T<6576yBBhWJP&?pF5Anw zDp~5CKV@rCb{0c_7hd%{j~I3A@-yMgsTrDu{RDPp^~zIn+4}BAUclZA>3=b@wyn_p z7cQ*|`7vbH>X6H$@|gXeOdfpX9?tKBH%9pHhi`^lo>#6y_Hqug_piN}viBeI+;m6Q zyYMMqB+qK!%((;X)^D#L%4K^kW?bt$1daBlJ{`$*`V0MWc$fZ8uzS|np+5s}-ciR{ zcvr|n@X<%>9ER+>{$6L-pYgSKKM$pJxHaT=GC6&qY`*V7o)7=;!x!thi0rI|{kOO1 zN07~D2B&^y54%}_^~m>;h4Zlp**gsid@;Cp8)O~J!1!h7?6a~nD;BadtE~MR7;CW4 z>Xn^gv53<`QLV^9CA8YNfzs4}PZZPppWMB?G@M4n7&Aiu;gLmHxppOyAxzUd^ z&G}ZoTe*bKBai!?AZ}4^Fc`nd_XHwdjtst9vQeok#Ni4&WU4LE^@gkNgkANB+)XB8SWO|`|0-0a-{?u0eadJ_265c$tv6tpzT;qqor{VP%c|3z0 zc?@$l>USZIS*OC+Sn)OBRcgF^Cx(I zSsnUQAG)7&o%v|zcPR4t1=;VEHt|0E4c@qZpJG0L2NREZ_yb-{a=B5`*xmgJppE?v zzn78YPQvdMF!Atv6<$noxfT6h1JK4k9?NI%IxVnhm#NPt^`OY?<5%}W!-*}Gw}Ksj~>4Y@7Y=G(c`o5;!*Q!@M4n74L4&o4*~3hw2NnXAqLvj zL+YI^`?Dy=oh@zr)<^G#u`|b_pJfF<>ch{9f*)=46McLGJL70GnW)A+2gZ-Tc~Z*s z2#cXj{Qr^fus7lT`$9W&_Iqg${re*N{1&?C)i8MU`E77@?VQlpYW#@l)AOtNw*_AO M23f4kGFe*sAH#o;_y7O^ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_stencil_color_texture.bin b/examples/runtime/shaders/spirv/fs_stencil_color_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..188715425868dba157b9083466a561cea71c3460 GIT binary patch literal 1597 zcmZ9L%}!HM6opTF`zKVbia*q(DdG%+3;;1mQzM}aNUW)mIBG6Xh)MC9QcS15fsPbs z)|tG3@fko9^#zOrjei3}qA`-VzT0!+)lD{M@3r^Ycb&Cit~Q?v3Z+X%7B}h5`f|_= zT1R8X#7y5tz1`?s0mzxMshUj67%x7YrkFMvlUEydL{|y>O)5Mq3$=yOjrPju_{13X zL&oC>Yln3+p%`EHZ`}s(%D3e?^?~aHiae9lxu?NNq0#=NIwn;6%dh6I-)S~l!l+IC zQ@h^iv^QIgu$C|nb)Ky>gC)Nyw#hITWbDg@cxDSgmedd2?xMqT5VTgtgrq{QOKYp0 z`drIjoAukiURe=CIGy35%;iIht2T#Mv`$XFET7k8xM9P+Lo>V(iz{ayyrTEXxsS-y zyE+SUj2ul}eoQ-J&QPc<%Qhyj-&(0TAq>rn@>_TF_6Ooc(~ElPc(SN(12S+~I@5;qQD>e=G1nYm6B`h4B9}BNUA%<>*U}E*ItK zNe;)Sa`@fQEwpe?O@ZSFIXI4qTF519-|*dHaHBV?ZE$bT;(49) z@YZYk4!im!XPzf_*k{Gu!5sEQv76(tuNFg(s;0sFo1FXfQ)m8jeTzNs%BivcANt}; zo!BqwLhY3t3_Xc|>xIN%mo!0Qz6To F`2&nam5l%Z literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_stencil_texture.bin b/examples/runtime/shaders/spirv/fs_stencil_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..072732c24f7eea19c43d4701e78ab1771a272ff0 GIT binary patch literal 751 zcmY+BUrPc}5XDE$wUWvRiVDO(^(sD81eFMd8u(xs^(b3z5@;Li7Dj!*K2Q(61fAcy zk`0Xao^xjJnHd}1mgDDZr>02Q^0*gzlXHLQ2RW--$3By0sbo2Wn6X9spiZ%FNik+w zbE31^?zSuAuwOYitfH@4iX+n2^yPx?Yd2@ZtyVaH3D~V;fAidZpsml zl9HHVxK51mnb*PSbtU!8l~)pAW}M*-?M&-bJ(F5=-_ft5`=%InP*85$k~TfvNkZp* z%5;w&xNkB1*JonsucR!-7|(qry`bZHsl@L_U(wf_k{Z6d6^HM; S5}w+cT=0kcQJ2S2r)IyJvph)v literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_stencil_texture_lighting.bin b/examples/runtime/shaders/spirv/fs_stencil_texture_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..58e0ebb0d0134679db652b66479ca7ad24b5bafb GIT binary patch literal 4534 zcmZvfU5r)L7034lW(1`cr-LXe0qKKD6(@>l{OTZ<87hP+(@L6{TrbQ8uFhBPojVXs zbhJ^PG^FWUW8Zx+5Ik~9uz+?nE3mh*=sx+Hh0Zl>%Z1s zYwfkyKIgD`u)p)MZRfWp#*(z8U9FAmYSc$3x+(*yk`}kC~+cGQL%?N(REq12H&+ttZNeSdc)rA4W`U2TomcejUY&1!33 zW3(|^Z{ci;<-{6l?Ag<9)w?PWmfY>wyKBqnXuY|kt78^-7q_Yt^#hv>yDaslfpmUZ zN(&dPy(pPbTAYqAF!z)$OAA0!x+HZLbKlm%t?OD7L+jSx(xd*;w9u*0{gk~ff|o{W zjZyIyi}yp1KnI~^*sCWH+(J@G=`45$Xn9=+7F%3DpXXq0WPG^Z1XE{ezt{b?eqf^A ztQWdPX`1=xeZynBYQtpRQOH1Pu7nA!v%m-oHg^>219$85M^?h!>3n$$e9pId=QG5| zlESz9y3i>BW3#xh=`3u1c-m#XHOk#Ee|+jYsN0MTql16ec(OV=)*NBO8MEe-)^7LM zSaYZct3|~bOcrhAy3XP}cJ1ABpt`wP+k0~ z`=iY6jg~6pVT=(l)TnjluwjMoM_Iy^UWT^LSl--N6cSAY+c~8Rr zXQ1M1h`BJ^tOPN~%R$U*HFPC?x0qR3zvU6~3SwP?LK}T5|0K)SM!7r7##)ZNfq6Bg zkJZTi%nsw$AKxAFGsukIkpD6#&)Yv=$Wy<(0)L0$t%tP;|3~2Mk*h)N zYxQEv_I1ds(#1tjgb(pDxmJ5?^dhtMw}-5e@=V5zYmJUW)>!+OvQB@>r?PCUus;oN zo{{%|;T<8r4_|>?Kg(=<>#N@RQ;4VZrjXARayqGOK4+n*^CbK^NFSlE;5__kzXDl( zH-E2#znMMY{DK43j8qmli)!WR=NKp;PU!B3crCyi*F}GW6r>fNe(CXxse=ZnU4eL!@F)T>c{&04P4!`#L~}8 z+Ck#y@bEIT^>O}!71~VW*uJr5?=$}+>+G{*=zM;t`ylI%AlY*#A@!%xeM$URvK}#g zgRK4(ByLRk$p2ON$lqR%{9glCcOu95JG_{E`xWPIZVvscdmVZM(!YH8|0n!~{QnDF z-B_;IoAB;oDYdYEZz1z5-Ywdy{{y+GdmG+7w6T`vVqD{gzkkE)FYz36@Q*HHr{{W#f|BGF2{^B(r$)$=H~ugV?M^W*SgUe-{+lqMZYbFSNEH| zw-xYWj=-+S81Ck=D>J6)09o3*D-m3;y?XPt*H1BDg=~C#$k;wpuLcwMyW92G!0SUi z`hOL?xa2SgSLSkX z;l*7W{vLoA_g=?2UytlQPebK%z5!fa^w$u)IbH{Orp6E5o~-M+fNtN9)|o@BdnoHx zvQ9f=#y%g0*RM9#$$sg9H-~#5>$DMc7XBvqa<7#4aWgvg5pz9!>_dO*L$@L8%tt%l zb&=1l$i54;iRa<%@Wwq0MStD_CLaB8C%l;CFt%)*-CYRUSl{s53m<0^em8=Nhu?d& z&vYTbo6u=v9iPa(cQ3s0)Wtp93~wyo)5p})>-KgZyt;_j4=*M;VjtGWzTN_^f9+y# z_rZ%>yTJa(LUHeYG{x;yxXSVtHo+v;6eI`fmeh6>w+V~w~?)J$nxVnh> ze|Y_i-;e*D*i0aAWA+`p6U;qNf{FVcjeS3YEG{`v73UXs_bG5O-{acaOV;CH#_c6- z{9cIX(_`@J9f3WbF?|I#l`&1@ne_yM>$O+!cSYp-5sTGJj>t96=o0|ntJ+2Whp^So z{MASPf6Tb~YjYS1KWDJBre!~WF8NU(ex57&(MCUU?w?_29Br27?}yL9`0@Ril6v3o zegkgj|1qA?7w|{1*Up@Mzx%D^_fz!6m+0&ZzY)vNg0GO(?O=tzUcir-K3#t|e-FZo Ne@hm(6`Ax@z5_?J-j)CW literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_terrain.bin b/examples/runtime/shaders/spirv/fs_terrain.bin new file mode 100644 index 0000000000000000000000000000000000000000..44701da954daec4181c7d483a6c6ddd2e9fa8a53 GIT binary patch literal 666 zcmYk4y-EX75QWFA*#t$S2wDgdu@pl5Nfi7INMeyfNhPAoYBWUAm1GGiE%Xh110Tpz z@Hs4O1kZQf6&Hp(=giERb1z$O9r|w{^DpMUr;M4GS<0D>SkCfx`%BxjWyF|`oA1s> zv(+s1<92DiQl@3nJl9E2L35)ziMz0SPhnM2Rn!zy>ZPV7$~?>J{M2Ap?Ejgp80H4S zL)7oa-AGDs=nR7RYIqq%y>?lQ?{qIZ*TbOR3p)p49LiNgYRoSv_`uA9@d?IHTA$G! zb$wfOuFU1L%6)M~#hm){I>Gn^Pb8Szg9`~pXIYrulEUn9uPD5tjNQy_B^Zxz)GJAj z4s|e|)B3)0cHx6MxTb(h_uVKTdw<=o>SgeOS3Y{a#PHrbV)3x1U_Y3h8w&OvyH_|+cV~9?*FQSg_{Yrt zw-Td1H7$-UO--IYJb8R!M@>pKY3t(H{KC}i?DXW0nig=={Mf?ea&LLMJlB%C(r{`n zh|!8qOHFqgNnP7gs;k|z#rQ4hj`S-lIku--n3T4q#$p~A8XanzUpUeB_!IlI-<9f| z3ftYOiQ{;rlxD`KPRaj^+)!bWI>ZyU5Tg&9q1B}Z=D*+@V5?&r@My<&>-eMNGh{Uf zr>%6G?a1Wv!s6Uyw)KQ9XBm;k^=-06r2Bt@?U8}$^2GQw88;RfD&4Aa+Tb}dd@eP5 z1G#*rGoyh&b6*-eRi2w+v4X2FYOypnTb|E8)@8}-IbJT$o!CcIeNm^S;!a(sv8dU^ z$yb)g`sc<^_Kh!$Q~3e>tj)tN%m}<2eK=$5Q*9S(??UvqM%8w)_K|G2PStj?_HJa5 zlUXarp31br)nu-Pd4QVeS6k@yMSZH*v|g@hGkGR!_7LI_+dE>{6sw41J$p)Q7izb^ zBK{t{^xKV9yZSDE8=3EevHx0;2hvtLzS56`-!=l@&)PhZBF1&ZcV^6~3cNF8_iDv{ zfZ5@G?HPM#4(%Nkwb)y`xRkl@@2SGty#vR+_zy6*BA)Tlj0ZR2A+X~?^0hC_Q(trU ztz2De?g~5uer$EUu-Bto zk8Vz3KRtzRkJo;t#@Yj_-hzkN6V0oZ@hLJ@;oPpdHcY zjm&kS%b&+D*60PBo8kbbx3hmAK)d&KHgo-8dG9jT9YA+&ZAbC*ZNG+Y&Ao?XaOQs& zPTtyeb4$L7XVA@a5b?cOD|>ecUR$iUg6|(^|Zyl zhtXqS-(l=K3a`!Fj6H&GynMtyiypC;t74DBYg;AO_j?T8c=RovXnP5fv+vb!aC7Q%&G|d=GCKc7-R$S!C#rb+_WhjeyXeOF zeTn?v1FwL!*%!Wz53-*&Yb^I6x^dcKy^qo5-LIKfXg#OU`RALJl6Jpg>xliO{Z%-9 z{B|88#AwF59*V+)|Ty)GTFMNg_z~d zjm~Df+pbQ+LG|eP5PsD%91*vsn@fuEk@xfh-jd(Q3#tQ`fTD~!I=}U>BQ#m>sG=aX!`J21GgncLku&2W-_XvqPSrE1Me&ZluHsE0?4TsywwyM-*olIK zrQ&!?Z|4=y_hv@E66fr#q`agP<#*DE+b1a-5@iAg332G_U38-RTy6z00ZL-n}q% UKjh%l)}(?y*sr=gjXE{^0|xgx%K!iX literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_update_3d.bin b/examples/runtime/shaders/spirv/fs_update_3d.bin new file mode 100644 index 0000000000000000000000000000000000000000..abc6de372c7b184b1bf1dd806a66b681ab93053a GIT binary patch literal 1336 zcmY+BO>c~06o$`qI#bj~5d=vy(^f1rO&5p+RYhAABNdkQR!38r8ktU|TMNWjvG51P z%8LJHVIy%}?>rOZOzt_)xzBmdx!?25F3y*m!&4Um>x=T{QhRN^exMLhh+P{??fTZ0 zW~12}is`6De<`BaH#%T)Aa=x0FJb$+$&DC{a_;9A78fQq+A9;M&rF)%8%157+sDm* z&SE`Vdn%uSCt!#=c?NJQ2IJxvjZ3h-^(88*Mb~PWB=vu)wkN4t$Lp8 zkL&ocxkht2YoNB2$57GvaPJr6rUX{vr?%(r;Zd{MTA73?=USInA8#$qwzAc$Sv%t^ z=TNAo5ierhSgw|0b@k?r%};}QI;%|^?KpZAbFPore(LJIZ|r@SY(B#e1I^f-cH@J* zk$tN9W_|03WBix#hvD3L1ssi?ylm$Utm(Bv3XafwkaOpqB8>N>*mtTBSMZws&!@PW zGo5_*8=Ym|*nMb+h)?1xpa4##c$~9#9KC+Ccbz?hSBrYB^?VIrmxj|0)u*l-cWQ62I^*}i{(i5ym-LkX0L*pg$ZaQH?ry64$l3W?m;1z7 z&b~F~_>G@|wdU+|pZk;eufTnbfCq5u_y**?)9v{s@i=-8n)ASUJx4Q-y7lby!cc8hY(LzwQTvR17B|H;NYSDQ@-;B5saqM7PK5pIG z^v_PTihq{iQN7(8*YGB|FUIT*JQidA#I$gtn|@m{W?qc^!p|}4O&-jA*rfEWDxzyy zIkX&XDLXkD={7?j7n(p59L}*U}jtUFYJM|5;8SdS8fRo)RL<)-HO1sm)!-X5c-|w66j33{dyu8ozob#RY%z5Xsv~s1sGts(` zSfgqD?&@yupu4%!d#8K6l2S#bx83h<@Avv|AFnh}YWu7G?m;76Ov~w~!#p)IJ!a-u zI+T9p8P~Bif|AmBs%K~W>dMvG{r>vwvuEdwAEB4aoTEHh<#ca#dfOc75B6W|26^f< z0F9;^=ifY3LoMdl=rc(yv$oRN+THB#LCLG9nb2=^5Bhiax&ytME&*oRn>%ZrO|t44 zH&z(IP}gT+5Y!z_izc&b{OR{C$8u+9XK#Hj>#P5@jW-Tfm-advi=BRlSKh|8KBw5O z;A+b`*KaW{H-3?Qh06MNO%INtrbo2~yNy5dMlxK@yiS2#_SCyIy$rejC)h5z-h)3# z73)l9H!!Gq5~Ysz2%2}(WS>Zfc?S&cN-xC~{84I;6Yv>p${)yim9q(Na=NU4KIfB} zGKk0PwwH0aGjcr)e~h!quCSlT`I!=b67D*Me`jDVbM@6?yC&e5IQ8e&+htCDtJ_=d zEY*y^kYn?s-Ze0*r8n=mDPtLzU(eY8`5$Ebz4>_l-hj8P{~Op|gPB*;@8AmCnd(RG zU8pu%7gJ8_j+n zp{bkyNv=HvR`)K##|gMT_#gH?39+ZK=z9umUt`htV{p0er)cWtN8bssx_zyuzb0Hi z#=^@qIA#(vm_bu7&fqj$FUG>lXW+7z&(SiSGrXJus~5dI4%d&d@bVNm<`VZai>4ml zo(AhnJ?1nA)|;{L_64}??MpOu^TXRSVD+N6vvBMOhVQQn z5cTjs5B53r@ZSRK-&pwn3S9R8HJZBl;eP?F?q@gd`7+$sU@W{Xfy@5eXzG#kVxGe> z^!pOTJY(VaWw3sYh2L+$WxwB|shb~uuYuKzewX2THWpr1z~MKvo4Lj@obN4&dd&AW z*k{$l?<-*a8VkSQfy;isM^iUH{JsiSFZz8Au4iN6?R9Y3?^>>L4E^1Km}@Njt%LPv zEd2cdF8litP2K$Pw*gi!`s=~o$L4Mo9M=(-agpp)mwbi`x~J4Z>pqo?39}6KesK&Y5)KL literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_vectordisplay_blit.bin b/examples/runtime/shaders/spirv/fs_vectordisplay_blit.bin new file mode 100644 index 0000000000000000000000000000000000000000..4f6766f883cd0f21fb133ed611e62b384501e79a GIT binary patch literal 1362 zcmZ{i+iDY06o%I%ooThGQBmd9scaK*1t}Btyyl>qu|+(@1|3*iLLf#oW{Muk-#jl{e$+f zJG#+N`f16QtZ8RLvtpq-4moZU_Kh%|!-`deO`I-!2_xZPf3817Bj=y{tNt@Zoq`l2k6dqZdA z(Wt$g#v3=|VJz>OI;U5_@p?saGt=oe&!fXH33X+rXHIqZl3sMSf^_oHYd#*Gc$$T$ z|0#ikPVeYJrZaobAJsm|TX7rU%P>2o|48?7+1O24IBEN|&D~v*Cx5(tLbWDE5JMjH z1DVb~%hD^lIpn{R>HaP7GmbS^3m%>MaE?iz(_I#*c`noEC38-z-}AcZb1It|^~qb; zO;600yy(mg8+mW*E(;v;qOS<>#5XdTw|V}qWWILz`?>>xdgMoE57^)zW-{}EM~^cb z{1eIK^6}{G3EL%o6ZF9hIoN*566(GxE3>Q$)0xiuX9ea4PtA@%y?cscMmqvN#I4Fk z-LJxqfbVr><;^by<}@#?2;^f1F9kU7_e%2r{9elr=l$O7;rCW{IPdpv55M=a!+F0C zIY0K{`}-&v?z!GZzn=tRu{UMmy`Kf%L66kO2YICXFT1Ul><<+= Ba7q9G literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_vectordisplay_blur.bin b/examples/runtime/shaders/spirv/fs_vectordisplay_blur.bin new file mode 100644 index 0000000000000000000000000000000000000000..b275944accd418cc443fc5b2be2d22c5f8770aab GIT binary patch literal 3862 zcmZ{md5BeI7{)(moa;t9CMjyjjH6OWqO?$mGNL$|^T*g&wg}@@C$q+8ni(fsNkk)B z45B}Z{*B0pl7fmhvIU}Sp~WB~Em|oe)3QbA_dA|<@hR2UwTx06l}4xb zI`^eCk-h9l<5DGiwzYS*&l?!rH1E9g=c|uT^*%Cf0{cdSy|-4kTrWR`&C|K(a5u76 zjUu4>)WGv7d;@H8PXjAvqW#xnXLV~|Pj^3@+U);nYr3}&ZtL&Pw2^5A&sl9fy&I}M zbX>_|s1)Oi8>oG;fUAN3>~W}Tqh@3?$=UOe9&POH?cX#XrjpIDVe{47yO#G?H!rIW zR$1Lf=l1ID6>&4TBaiL3s2i)da<3q>J$tpBe2}9)1D z7M+akvn`A7Xq}OJY`^xglBY9x7WQGR&vNRka%_&s?fFJu^6R({yxYD=-FQ8BO0BIC z_YwWH`uSmfDAUuhzMFW@{$s=XBg79sG<9+8-$y+5U`rM|TZQ8G7yV2it|zwN$zcAn z^Kc$x-xE3YX*u@%)Qx>__)F@u0p`*lbz|QnxeIt_t?L7edj_7j=jdM7cEYRe%J;4Tx8?lKoVygxoN7^H zE!Z0T4cEAwAZmD?QR51DwWx6=*c$Rt<0`N@)jFu_Twjim%SQ< zi#dv3ZG%^fIflS~9_3?>8^PvOiyAk9%U<0K7d47r-2$%`HEso4Lq2NU1~#W!cy&A2 z+G^p|)EZt*hm&`Gc(ns8?{`UfwG&Ri)MAcZ;Idb{;bM-WS9ijzMbCGE-7g>c?gp2A zxd$%t6@9rEUM=$N0lQy5Jh&fh9kuYFxrPTVaPqDX4;}!^`~4XnJP4-`YLV~k8u{kJ z$vaErdlW41_iyBT49=Wt;lbnJvZs6D!h@oxPr$30&+oJ+!S0ujd{2SPo<0p1`HG(I zgI9}u&w$-8AD%u7wvJkOu%Lzq=fcUmK0J61EMN5W1vq_Bi=JNumpyn1E_yC{@G`tw zd_GuQ!Q$|1}^)uA1-PXeR&;TEo!_0wuXGvcoS?+weadKu(j2~tBY!Q zwGd9;_2JdqVEN)_@Eth)Qj0kbfXiOJ2N!b`y?P&BE#~+Dyq-DaV~!8O=2VLsAA!qW zeGC^hie7yJuNE~v1zSTtY8(WcQ!Tvu3~X(+@M=j7ua?5eyFR@794y~Q9c%b+;}>xH zr51C12`+ne2rlL*dUY6HE#~+N?7!XeF~`?nbE-v+Z@^`*zJ-e#MX$btSBo0ogRLPS zHGTk_Q!Tvu5o~R>@M>iZuU5gyyFR@787%MbgYfDXIQ>$K-%Y=Qqvr}Ze$yNQtHrwC zPOh%*KTfgkIJ{b{`?Iia0yz5n3#=BN{tb4odz8n95ox>ij e?;6*uodD~HYZj;a?DwkN34ZZinEmQ&O#cGsELiLS literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_vectordisplay_fb.bin b/examples/runtime/shaders/spirv/fs_vectordisplay_fb.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd7c63f056d5699e8783981f34eca5b1305435ed GIT binary patch literal 1218 zcmY+CTWeEM5QQg~bJ|+es8~^Gsa&%yM?B*X*|j z57JJWm2A!G_N{1E$j^>Jj@h^!6DB#QSVh>R#m-i1joMPLzqfSr)-wDVD_|UVR&h$> zw41zni~pr`TiTYEbQfMlbShXR`%B3qdGUvsNH=DL|Ml2Nx(A(BCLi3j|G4L^LH{so zIj(3m*|};b-AOv?ICfYr3(w~qsrC~Nl1M*#JZkPT4EH8{^nApOcGEQ5Tb3twZ`f(? z51Q*)(teoq6Wy+=b9zOQfGaxJJ*MAL9t^)G-B4zFMrMabISS5~7bYLQj>dzDr&)OV zpOzwEdIxK?4m10}U(i0uTX7rU%P_m5|5$cPK6X=QLj`*naRJJTd$OUG9eBH!9ljZJkK1JKqnV!f`J}`U0$NepTW z_7eDgoyi^I!ENumt#5)_%n;$;Z+RlwJMuD1zLgn|dH=kWxxth3m6U$K^zd3r{TIr@ z%)U#BAc8gMGL=EQhSqfJdBHtG&`v?jj@_yBs U+}ydV7xH#|e>9;LH>HyO1U9U2}SDRs=vwS?UNYWv(=K;2sip)TLrAa4kb;ioBBbI3zLm>CM$-m|T5+scvZ z!Ii7mtkOR_)VXE8W=_t4izDTsVf8cM0%##lodU4BP|yC0#Pz7t9(qBGI z)rQPQ3jbcGeadHl|N1(}TNieEh*i(eK1NH`fw2RX%F%+1%rjmh3xv#C>?sX0UuyN}(o-k~$v_N+D^dl!2V zoram) zd)u$JGfnl*!#(T$^lLlg>G{56PmGUut{}VhegL(EwYVQF6h_UfDKOXsh`J@0IsM>>BEuJ0Vxt@{R8TYWP2@;2%x zqWvz$q%-fa)jab$#(aRQUnH-6eFWwaN&5shPBiiVGww66|K-3l#-zJ_fv39}cPi%o z3hxH`Q=V_|lt;hcXqv@!c$($(S=>O^cQWR^2{(^=>fsjLyp2GA6U@GE1NAmwjP-nr zRPzoz)tvr*chU8wS>A&?e|2m6Cig+AsXz7dAnJ?Qt=}8p@F85EI1{x;aP#Qf9`E-U zuI@_O6S$i7da3XC`xF?f&pOsue+E)t#`qrU&!f-pKIMH8b+#$(Wz@`(;$B59&)&;7 b;hZOd=Z)7t0lN6tTwvGthc4D-ofN}g($laO literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_vt_unlit.bin b/examples/runtime/shaders/spirv/fs_vt_unlit.bin new file mode 100644 index 0000000000000000000000000000000000000000..95136e6db02d820d83a7dd86e8e5c481bef40956 GIT binary patch literal 2653 zcmZvcUr*dc6ozN{UyBwoYSh?JX__jA)J9DWLLpF~NgLTxTjR}Uk(D%|EW$$28c`bx zHCk^>jCW1i`U(6V>i00QCSKGF6QAeD9I{0wzr(!eeb1aZb7t7d+3Ak@(UEr(qb(g- ztE@LFtF=bs+S0;m<&EA_N~Qhm>E2S0?5eTL)rDH6QJq_?^`y}>lX?rbQQK&&t<);j z#$t7~r!5oGxwYKzkny@o<2!;Yf#rIzDb8nHOM%;pvo`1S?B?W1MNJQxk75pM z^lgOy3|Y)`tau^2IbVe7fO`(kx6_Bcz#Vrn>sw3n2>*F` zKKvnOhx-j>zxdC?S07PixVO5#J$FR>_^!LB+f&E0#7{H#Vb(a1{qy_$i};S0sLFeC zFJrCq2F5rW{^qVv|JsT>@O+xJ-eUIL-i@{CZ)eV0cEEj@!+iR;F>7=EH_Wbg-_Y-7 zF805NpVH=d=)d6E%kY0!W|;3!W^;Qd)}!xRi2WXcU2Fa7`o0ahLH_nL-zWHW-laJn zfbEC&Hk`G3uMXEdf@xirNb)EscR{qzV>m9KCX7-12OspBkmvhZ;Ic5Yb{{wm5XAEo}Ew~A= zaauP~#+?K6rIUG$G2NU&Z7OU2{~5QHb5Dcqt9s-)pJUCV?%RtzC$eVWjEf$f1aHe> zzOCrdtMF>E{xvXP@jIZ_%?(-KK;{R)?%|%sM*bP_LHWz@YSGV2VDCWQJ-yFaFkgBC zQ;(dN!3X7hA6{)H-|H2yoVJs>t6=l0-OSvFVE0zL0#^plgGZTtlOJ$W-~0lcyz#ze z&t4|pJ}iON<>QX(`11GQzRGdS`10Oe^!5{czT(ZR2fvc}m(h%g^Ebc;oqr8pEqb~R z_FVGOlMS$Wwdl#GU}M#y_n(3Jir%Zo-Z#MR?f=wWEZ)oK@M^L57hrS9$J$MBto3&& z)_w`E7BzkimecH;Z{a4`oNDjUak(w9J-?4RoMQi5IO@@R<9G1oA7F9L+hD$;_v*3V zw_r8*jrzX>NBzzJD|g`4V(;(4u9uJZ^ds2cD}TeTawgx?PjK?akMN7=Z>ikBRCK1O HsxSQqOtu6f literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_wf_mesh.bin b/examples/runtime/shaders/spirv/fs_wf_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..9f67adecb18c10080345b75b7d60e89a32ad4a52 GIT binary patch literal 3801 zcmZvfS!@q)0*XKcf4}+Wj1$A;yPfl2&Y64fcjw-(Q|3&ooPTLa zkA$mT(s5&5bA3yF3wSLoZ9O3 z8sK{#OI9N^(wb>oXx;Fu^B|(~q=NfZ_zKu!o_G-a zps8!uEv;Y6(<@VqJ&B$hS5RXJzEa#ieO_zb(icj&B7JsiUDLXjMv8D**S@sYwXRzJ zlDIPM*U}XYo9d>t)UTLazoDLyO~p45UnM!+Xwz`oAFqL>8=mr%bE@>)j{&(>!u`Qc zl)7`#x1c*OVs5E!zr<0``3nENu=4%WSu1&Z6WhNk+I`e_PQ`vB;+`3HUVDMZa<8I! ziN|xVqVbqyc!q0;y#h}r4&B;M(0cAab4p!2g?97jwj56dH(vbp)Cg4jGmU1BKDDSj zo!Ie2ou`PCTg%1=t_6;`yduX>gBxo1jE}lAz~<;vi@aIH-OpXi^Jas$&AyuBIpBu2 z-}5?i!RF{wi#qd(FI^dxk81(=xi!@}UI-p}#@G@}u){4B&a`2w_4(4?lz~<;vi@a6DkDPp~ zCh%(T`m#52yawE9_{%lXA72`C^r=POI^toQ-_4)j3?BO1#T>r~e*R`vK0hsBbM&c2 zoz293hTTZ#)%CfBR$On}N_yHq^&K>?$lpc0w{7Qyz;BlD>A-J;+r6?kAKyFRB$+rd z^!HP|HP7D%-rLqW$EQ>Mzvo>j;XMC(38#MhH-OIj{`KMgaR2Zfl%7ISwPe)rj(`P?1>ueobij*qGz-I}kZV_x&+!*#@ZuGQt+0VaWD!7k_b0cuNU$E$J-muaj1pw{>)b##{+PB)xy^&^Kr|$z6CD&(hp9rTIBZ6e5B^w zzycS!gW&Y4#drr3TT?B3Lx|mL)OIs3uG`VXo|mq<;KsnoyYHB*Z!B2e_vE#V8%ON> zr53pph&?A=o54+llP}hL94ud~HyLbAwa9&vcrNu^!@*65lP}h*1Y|dEpq1& zdv3ahgPTh%A8W($&I8LA>n#9VQ!R2A5ih~-8V+tTvAp|q%+(UG`D)=?PVAZKIt;FX zSiYFM5^TO&_!@~lCtY*FH4)1fbDP2DtA%ePv1g;}A-Gmz`C{%Su=#3}SOuOBAJT@< zYRLEZlxL%Ro@d5KnSPk{;o0#q&HY>c8vE%d+`Vq#SNoJE=U!?&i7K8opV8tO{uZ>p zd-3O)Hk1Dq{Eqg4U&ofl=J2_A6 z+(wJO?w|m4QcZJR`Q7P_yq}1z8!hs774ocMuHNhPDAtbmKY6;(Kb3hro6U7y&E$VX q*UvA+p67b}uJky5&-2+tdJdqu59pPz;jh0<yFy;SU%_t3mJ(I!;1GMFe@%?-#Cr1GNBRujpRnWwRz(G#CDF&%ug0)=$=h5t`H~JZlp%P2FD!x zRSJ_+5!<^`s7#+cV?3M8QJN`?F3iuBM~hR_bET@^*(OV;mWdQgM~memw;QA0KK!hP zxkJcP!I?ZgRRt%L`0By(on^=WSQU4JU6yg@>#T`8pV<9b%RRLvc0*#fV7I5(8Ds8d z-o>8X_$9Wz+@kD$O+qm_H(B|4tJe=a{%+>r{>Wi}; z0h=$Dmq$1w5l<)Z;)wOi*mB*K^NM{VeG&UcV)IuW_;Orf(0^ z*yl6izM~BCU3o{}#UuA89{(G|c+IIG&Ly_@dBnasYPzHANI&8(-Jd*XxPchU@sD$N zH<4PNZz$J2-Adz;d%K34!*;Kcdk5S252n3`_WY)fbKOVuc?az)$v-cI2iW$=Bfp46 zj`}yw5EG}jP2gto3RTi?+LcNwG=uQk2v8+_K;g_t8J^50_1 z_q&Mvci53{uAIwh&-d7V*K*>%KVa*3r?KuTw%>#&`qr@ZSv&eZrat>0V_v_dPl);Q Uja&aP@4tdJ_LmAnNtM3v5A*DjO8@`> literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_albedo_output.bin b/examples/runtime/shaders/spirv/vs_albedo_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5cfe587f5310165657d6f54c652fbf0ceb084fe GIT binary patch literal 2141 zcmZ{mNl%nP5Qcj;U?6dcQE&;F5fcs?f(i&R>UbIsB#vTSV&caj6EZr?M`i&bG0so$ z>V}E?MSq9C!;{`Ucro#Pnr`Ue*re!s->R;z>Z*@$Yks!JXw7`v`kpks?Pw)ls?^en zf=QeHcC=Qltd|<`!*s%k$n_bMN{;jzlQ6xe&-~=1)} z9LK)Tq}Z%&zd2y_w0^IYt98Il$sNf(NhGOBRwYfznq*V*MADI@^pny4OBZI8Qy2$4 zDch-HEnY0wlueJtqRehBMr_9NZmcMf~7?bd3$HMU%fN;~1KA9erh zw-zl{!#lF}ZMymSj58){->#dFk3?R)ZC9V2?5Q(r-@lt56QU5-r}Lj!>v}SLit5jV zb|$VMnRWe=YWp~=DD;mtvc1V?m($?c>G9|2AN}_}V9pixaQ<9TJtlrqLN4_Cq=e;h zej8fM3=9XD{)4#(e|iu0@#s64X~)js3`kgDdK<>$QNno4dKi!1gz@+Wz|>5CKp zhm-|*AfdkN@?w^rOYmWN?uB$X-oSG&9mjnoy$0{` zO2T>ku`^Rw6?I1YYYBa2mgy(=)59$Zwr9GZ7;hxRf%kX4b-cD6?w#YpoZdSw%;|$T z&f|}LJEx4z>7y_?h539EhWGh=mQD<49rG8D{M!Kl literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_callback.bin b/examples/runtime/shaders/spirv/vs_callback.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0e404ceeccf602c205f66d5b8455fe307069c93 GIT binary patch literal 1562 zcmZvcU2Bs;5QQfnZ6b>b>c>|z1wPzs{QzR zHf8y&<-96pSv!c#GU?TvS;}&jx365+I&NtxW^*><_VUKgMsbidikGik;{2#(*xcE? z9dUM6pPhQE3%M)Y7q*3m!eb$$Kc%zp3LGi-v_Jfu&eqE9_({F3tdZlA%oi*z=QQd% z^fY;A>;leOk^abEuRV?1ao^R8Mm_afFCMg#R;(%`)lGe+W;f~YSL0SU*&HUlVN!h7 zu2m;)@|$&U_}6c5k^vvy_&=Xf+;2B@R@NKOYG*_xq2k{x)AgdFO!R=YI^N{-N7In( zm=NyK2YMKM;O<`jZ!O#_t4G973)Dit&Iqi)SH{$Fdbm8r=^vat_|v;NfdyyI)Bf}$ z_%A3cc~{)GU|hpV+4Q0yoYH;jg!3l&tmk~w7R48|7X=iz)yHoXY<;miOHe>gLM6Yr6?Lp=EScW8E1-z)0O3M}sYkP>OX zA(b5W1nPqmA{yRQ9(Kp&Yc zx#?eDK>sWs?hgcFpoctrvdPT~+DP`{dR}^Mx}JS$+{d5uaXmAxo>$`3!*>aUnqJH1 zEY$QyHgV85^}m#!y%o>_i@uOI)b~L)Z$W>jx6;>-0{XTXZ~fx6;CEBgV(#eJ%$!+a SGhcH4Qp9USO-K4H<$nW|X@;i& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_deferred_combine.bin b/examples/runtime/shaders/spirv/vs_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_deferred_debug.bin b/examples/runtime/shaders/spirv/vs_deferred_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_deferred_debug_line.bin b/examples/runtime/shaders/spirv/vs_deferred_debug_line.bin new file mode 100644 index 0000000000000000000000000000000000000000..b52984da78c919d43f2da118619748f3c800ce4e GIT binary patch literal 1108 zcmZXS%}*0i6vc1b87h#7hM=;6DP?EUxR4JeDndeQLSmJKoel#uI%epQGS#>e*KYhH z{QumzU_-+By_rW)Uvv8IIrqN%)$Z^0CQRqokKeCqHZzV-^5a3apANqCNBO6qW)|3T zVAiO&n`Sj@+AaIe1D(58mtr<;6YlQr?(KHYisR1Xl}Gq*TZ7B_W^B^gN@XWWI)tnW zPlat^M`-91>i(moq3Yg@g-7x&ceDI3$yBlFxFq|hX}xXO5)PeEAL=CWQJ&=^*B2Uf zllU}0ON%sDH=#|rJ~ju#V)V72r^Dj)xHugboex>uzYbH}r0eznxX;%WdR4E~XNI0$ zMG&2KdHtnnv35u3s_#g5-PwVg!OziEChV5Lfiu^FV01f1DszF&aXNrKC3$tsP|AD-<)7}{sNAF-f^=B;)}A$Nxp?@ zR*Q!bZiJx6}f+H*6ojBAdG8BOcB^(8%|svgsK=oc(zJmTczm@8RqVjd=J@ z#aH$FQJcOw#9T<>zxqrnIo1T~!^@gwy*G+tFYkm6f#bFJveD?tYjLGfudmGHJ`i|M zJbrfkQhD3D6JbeU&(vl=hXVRf#qj<}I1tc%osY87sr^mw=rI-0--_|>TtM@2&o%jW TrDL-n=Dt*xbu!gMeQ(+ofi+xD literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_deferred_geom.bin b/examples/runtime/shaders/spirv/vs_deferred_geom.bin new file mode 100644 index 0000000000000000000000000000000000000000..599cf6f4e638a5f63185eef757a42a43e7087b8d GIT binary patch literal 3342 zcmZvfU2jxX6o&V7KI*iUq6n=YkSRqIgQ*1yv?4GlIBn9{Q4((_10Cy-b`B|1KCW!y z1$RdOfWJb$QRA2r%e^L=kdQcui9f&#Z%BBbGi#Ndadx}dYrX4ZzkBa>&Y_=NT`UBR zg@@mCvtf9vwvnth)^nNdkP9PQwcE|co$6+CBbO-)DD;3_Cdha&7D9GtdN_nk7!J>c z?}aj62tz_b7!8GVt}I_&p1IXtotZm5i+^9pGNr!pus_vv`gfz=Y+?K;=}2}YyOQ4} ze@Y%n9!t8Cza{@jviiwu{#Og;#VM|XeOkU_mG$IWeO+wwsVyk<_7Q{?QVhP&HVfX1 z9ZK=^NQ7j=S&}vK`hjP?)=D-vRNSymirq|ZHQUWZyCIH!)NAc}Ypv00TO9im*0_5; zNj6t!6*ZFXv#gNKd)1`bYOidyZ*H|`*4As)y>e+BXYv2I+qG-Wc#UFuUW4MCaXu8& z^Bff8mEgsB4~*Gk&pwOkoeYYjg;XMq;m!ud+|iK{Q_-ExX{II1l0~~isp;J=stR|? znC?xAd4{PO(~j~y?vq5ZyJI%|h^J@pdp-IEJ1fD@GchV*VAB(EJ)RY8ulLw&uh%u(>+w7h&z`BrJz?`~ z9S{rhrnEZo=!c|nM#+4LAWU`MQfun~ME#hlSheeU&~+1x9b zbC{RTAbvqJK597UCFvSvINq1Sxo{@L|DZV|fj9NB=?gIYKbuYte(a869=~HY@xPkR zS>wmvjr_k!XKh~(n?7tlEO;_0(EzxNIg;VrR( z*LT`H_Z-U^-4Ex=-7?7kPYAtvUMP7#NjN)f`2Qm5n2rB|WXEjyJ(TQ9K2nu}=Azam zhvC?WVVd@^QN!R=TafE3FT|ap}|nU(vUe zJ?xhbjxd;5*ZI8|`5Zf77_pAMWLV7kpfK`@$KT_ePdOiw4QHN5=Q|+`-1$yQrv~_! zwue`xa}P_BFAO^@44iv)J|*ek49BJn19t4FVKMJ%VdN8!pLc|x^)cCl&iZxX_?-J2 z(y0UP+~1T=kHp-M3j>e2&&UR6IM25Y19oiIu$cP^VdN8!KjwZ?_8{)3gyVDWbJD2; z?rWWu&Yl>K%^L>n*n(j(r+0*rPdxq}r(PeN!>9bXZ{HOL?tIQmrv|w9?FH%J2!n|= z$Mj6l*B1qVU6By${4Pmne+);T=Zr5x*jv9DG%s(S2bx>Ez*~ zhUZ_GJ}zN6wrUu#V-3UNGx}5*`NZRo&uC3{{~3KI4BXGCDV-YNenvN>gCh(k*8JM` zwjqGM5a-?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_fullscreen.bin b/examples/runtime/shaders/spirv/vs_fullscreen.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_ibl_mesh.bin b/examples/runtime/shaders/spirv/vs_ibl_mesh.bin new file mode 100644 index 0000000000000000000000000000000000000000..494815631d994ef7a5db28f5c4ecbfb2717c2aef GIT binary patch literal 2073 zcmZvd+e_3z6vxNCxIZ(xnI;snn`T#}pdyHB^<{k!+!TDMXxY$~wY|u?YeWwPc9U*) zhlsKp)PK=i1^qb@y##$fvore3963AZ`#tB(xyWZ3;ja<1pIaQh{ zPF>E{s?)I+6U0o=$j#(y`SNTeNC$yQI42oR%=}0g6OHuhv&AG#V7_yj)@BnCV@$hg zwR>h{d}Ls@J~?ps$U*EIOq9*qHkx%-kLk0VFIE6&CFdmt$t4M7RDW^pKXq_ixx@b8 z-Lmy%O4SSblCs7v7G+$);u4mlu2r4N)@p4LYissPY+O0_qG-kSM_u_`rCKX1iQ}j< zpPQ-97VE{T3XQ8D>P}Bp>a{D`YOzuuZPaHP^?^bumtA&~Uz_dif4{lq4EWIdT0V2S zCYek|z4vM7Cesf0JG@Ezu$zrkJF{VBW>&1;<|dyNE+H-)$Gn)e_W|3u;9qVfu6Y)- z#4jzsjOIvAIO=7lJ0&cSQ%z_wbM6UYW(+1b{sryr5*C;@682|i-oHax$(yn-s98go zbmog+G{CCM7$Bxo=|NynUDS^%Cs;+Bpxd$K9=u!IqTI9_`e_y&QL#dx68g z&*|jxHS^_VR@e_YJ9)6v^N>U;Sr%dBrpm_P4|+$rsMB=C#!A$~!^8SsOuhC8?` zA&&RO{Sb@qJqfl^{VvnjeaFGGsFm7$y$_|Y?rYI;;l3U@F5K5+am3?~z1df*?dyp! z_3_>j-`i8^*nDr#q;n3uulc!jc!cF^p4U9+>4k*8@O$96m(sbzA&K{UB^{pk;QM_o z9iHX6H`3w4{Vq8!-0xd)#N)pt;k(a$aF6dKYxVoy*?hkrggFP^_xn*gJi_w*`uaYJ wTX6g}-81j;vjl!js7?D<$9cb#dgTSjqw}314?5o$X81>$j*%_G|LrfqU(S)WxBvhE literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_ibl_skybox.bin b/examples/runtime/shaders/spirv/vs_ibl_skybox.bin new file mode 100644 index 0000000000000000000000000000000000000000..b382ff84e8768924dc342005596edfe1eaeebccf GIT binary patch literal 2120 zcmZXUSxeMm6vp2fw@D?x%dUwko$Kkc;&@9Z!y;ObKU%8R4=}q@NOf z7nHO_byxeMlXPoODswEJQpM6h7v)ykcVf!|p1%GWb~z>-*a{O8U!uBu5OhlPLtpXO zSY|w#OJ>w59DT-Pxy0mfCX*d$5mO%Y-JTfDWv8N< z_nU}~B(ttZbL~=YE~#4RRYb5n$&CW1*U!#O?8JP~@mU=Qr;GZFV_y8CLXT!8KOD80 zyFuWXUSCiHon6$f(%Az#b@1ozDg+KX_h|m>RfRhB!Oa$GZj{Wdb;2h3(c< zutj$6ivHkg{avBcH?}(Y?ADk5*z-ZJvu8N$d%a8yJy4_5bJ)AQOmAlImdp;U=RV0g z?dbIqh6Kxh)XVf`_PAu?$v>%YNMN`0ht562VL$C_OI=RjY z^m{~J?C_d^568IclHr)ixEr3MUR2XD-%Wvd{ISzthw^fVw*>CBL7+B0-xlC!V|&q3e>F<*h7cdE`9F_`-S^R?M$iqG@{WH|b?xAj3XzSx?CM&YXV%B)`n^5fI5ZSl@O z3h;nKF8a0_pCt3%;LrKD^I0-HJ(Kr`0B3$}>U_rY$o!pBXGvKOkSQEe?OFE+ZJ^NW literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_oit.bin b/examples/runtime/shaders/spirv/vs_oit.bin new file mode 100644 index 0000000000000000000000000000000000000000..ccf1ee009ba5b09e5ef58540393822e5c65de2c9 GIT binary patch literal 1624 zcmZXTTWeEM5QXRDT3b--U67izRUd@lgNjhp_>?>pOj}XGhmg`Bku)bJC)Iju9=s#i zpCRa95d2X-_#(KzbM{UTafe~gT6<>pn%O7!H|hn``gw0}C2Pe|b35E>cXPqmayC0^ z?sVGE8iVjjE~ttqBt$MSffLHhW|oR(ffa4Weo#hh-ZEm$=ByC!wbhN)$}rlhT)lRM z^TU>9i_eZIkCl^cw>mxiHQ7ViBUx6zy!PKJm{(Lf4!o$d8KE|Rf(P`oe zF^8UmX5f?9Ow7kEi^;?vA4VD5^Z} zHXD;L#m&Up|Bu_Dn$@JctlEsdDyzFb<(F3yrvpl9R7MS@h#3;eM>0Ao)zW)5Us#3Qczj$)T zDf!H(Bs;Bo=m7KefDbuL4=07^wU=b{f7#(u%i`fFmDSLirx6Rz(#H2Aouj-!4< zmC!SgkxxA5%>It5(&JFZT$ly@b3Z*tGS2pOKQ%@&>cIQEo;zOKgxhsoTGI>1r8T`2 zM?UeKCz|rHrdPsf;+ye$UdxB~dfv#V2E5nvRz5meo_i-BF0JRi?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_particle.bin b/examples/runtime/shaders/spirv/vs_particle.bin new file mode 100644 index 0000000000000000000000000000000000000000..0aeba44a46eb46e85e47cb045b7c1c2c058a4c19 GIT binary patch literal 2031 zcmZXUTT4_?7>3szwUiE&+C|EkW?3;9R0L)z72}1VC3HLNP-1MHJ&b$QD9HXmblLd? z9WJDTsHh0+2=zOH`T<>Z6ZSrPucbR$^3M9c_dBj{t?jAt;jGb`YJKxMWwQ0+Y-w^X zoiHYC8tcWXSM#Q4lF0>=#8$2OQ|ZK@Y>N%Xq>^3wO_&DLXnvAIYoi<$Y?@3q+zTV) zBl($NBEN5cANF-7#TMGun>C@F*6*}es-T<|d|_U=Af)t{(f&(GGpZZ+MemWVyHNH| zdu3J3gt{mbox`kf^c3|Emks@r5f>hjn2c)eM9|9Uk6yfD)t@N^C12f9kKRhf2`}*a zq^}M89Gt8KwR2;BsS=FVgK9mDF*&ho$CY%!ReKkECn37Jhn`L}E5J~jx$ z_Iwg0p|75=3sNi2=`#L_$p&4d}l(I4~KCa|2|8L6Sp z%sOH^^FpT%{@iPmz(Qv(&VQ4tP^UAz^{8g6Wag0*+T>5K==h=Yg3vi9I=Rt#Wi8S- zYtISP-);4ln2v9&z}llo;@bo`2jcK+7mQgrvPC*Gpf+`>!@P0=3xD)(fj+iM=U(xL z>#+Ao4uCBupB>scSC7zdb>?&}`_Fxw44) zEr$OA17hi^EYJ@+HL3#jPsociT(z9G74Dkl=+XIIw;c7xl$l&N1mf|>&Mb$Nms#Hw zxQ||e+RXiy0Dnb3#NQUk0Y9q$i=6R}01sI7K+R^=#D33m$F$?i9X8vyc;DKNYsb&U zJg_`5_z>q}9$FhQ_zkHJcl=18|9*jQfH%N7nAu|i`(>Sjo)!i2z`J=pk<9E_&hM#Y ze6d}!vCkya4>srbTrz#e^SzKxKIY;4UP{Ino6Gk~GC8rinZA|GcS<~Og!jTsU9ayX z^DeNRw6pv!8J^gi*1eaHl9vShv9}BEy?m0)yqUFoFP|mD zyZ7=%GCAN~ov)JNseRGj&o{~NoP~GxLx6LBhjmiEF?eLYC(ipvSq_pZnJ~-CcgE9@<*o+N_CN60({#dous5sxkLH0?YHRI<=g;=m7M%AfjAyQ4 zJTrv*{h1j&A+$Rbu4kt}fBPM84LG?w1Y?%^ z@x$9JUyE-SXK(M{SNCUpy&f08TloiM(*yf=xcfx&dZ#>x#Hq*JPdd)r(eNK}HaYN| zGdDKW&? zobBtwxnumq!@1*-*MC=x>D9E!`!3M0$8pV#SujHuxxb|FJ9J7aITONoz^7$%j;o5o ze_bGkySnVO8%}4xbJDo$n*zBkudT>NV@6)PSd?W5C1^z>)?B%3>< z-X-PnZhaQe&x=v#o6~&UX}#Hz)3GbEsg2Edh+eT5^yIz3UeuGB|Itn-*e%Zg{$=wQ DzE<7G literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_pom.bin b/examples/runtime/shaders/spirv/vs_pom.bin new file mode 100644 index 0000000000000000000000000000000000000000..f8ec57b34e7c94954927c9efe40833e4823880f6 GIT binary patch literal 3092 zcmZ{m&u>&!6vyxUEOd|`5`M%GoKi#$FjTOJR`gYn=>qL2i3zLcU`rh{okyl`5LcSG zH+9KE{U_Y0!3WRD+?e?N+_`6ZQ{}d&_k6$S+;h*l=f3y)!Ig!o)421? z*T0wD#2{VGmX^Ea!n!NF$w7Lvv;1kRpM6p;v_?cP>#wG(`K@xniKq?IZfE7=JiU>v z6$^W~|Y=lI-z1FzeQ%b#S(>sh*Q7@u`dc zACWK&PmQ3*+=;^x=01R_0smpZ7H=b9_QcNp*Q4eKm|n;6crN02JR@L>M}NS?+bb4+ zN(hX;UmAU>OAaVLb%L=U6yB~G4vc-DX6&p59|)K;+$Vfeb6rAx#{+Ien6;-Q46~n> zPP`L}%wA_C_?VdAtT^%j6K781+!t?>XCjSUERT8VbqNE1@LQ6)wCXL&V+8Tc<~#y^o*o>!%7B-n3D!OlM5A2b&v)J=RacLvTd zcP7TefLZ@*(CG{Q;El+BPkKqhe%Qg>DLB^u5p-J*eh}IJ47%k9ei%67fw^{d;KKg91Q;~opUgJSNbqua{o<2-R~(1cZ2U1 zYZ%5=0;g%rRRc#pE$z%XO^9PX{@BTTUQy}oHevcdE1~b?lW5*99^1P1C&r|7;=nKJ z`$$bS>F@}HiG3}+#1v%DLim-Xl!TJZF~g)8gPQ-@Vd_ z0sob1Am9Dc?`pm(`7&?^#lh24^Ls`*{fhk#iG#;)hoTYhS?T)q&k}L)v6`l&!!e9I z5;$n%rUMt(epDRm@yE`4V_x~vujhoRJ?_;paqw3A^U{d{Z@qd!Iy}N)V$U7A2h{SS z2sqvk_*#C)rBfHfxD$bcHtuBL;yN1QSdTyUxQx`S@Cbt` zuH%ddIO@RH@|%@TzZk}y4IH#_uLLfxP7HXf<8|rq z2!koEcF?9KJo2(M>@TtPJFl*x5d9Jojmw9@l5c{E{cP{Xccj{R?_m7;69k literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_rsm_combine.bin b/examples/runtime/shaders/spirv/vs_rsm_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_rsm_gbuffer.bin b/examples/runtime/shaders/spirv/vs_rsm_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..db462620e5434633e7b3f9eeb9e0d3cbfcb900b7 GIT binary patch literal 1678 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 MTq07M|LTeT1%PaXF#rGn literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color.bin new file mode 100644 index 0000000000000000000000000000000000000000..084d31c6bdb53fcdc865adeadb22b0495514835f GIT binary patch literal 934 zcmZ9KM@s`y6ov1k7z@~YBbJ>I3o3%xRtXw)G?HzI8e}A9L?@^#{R#e97j6X4H+d2D zhRb{BymM=&Tq<;!Gtc^(mAmk|Rxby&C;uV5O?hT1drq1q6AKwL&ob6&S57}*2{C3p z))AliVyT#WjIML*8!Je9O@T5reTu|V^1Eu#;Jz$hlPC2{>->-~EyZsQcv5eR`FeO+ zt*cTd#-i+Bvx-gHG!L@0e&nxK?!(6*3PM#(TX$SgJ|S- zW(8N1JoHjfBt2jYt>X{JWc~8I>Z41<_f*`=yzW?DndogUMlDQ#v%fIA=y7;RS;#XN zZ>N=WRCoTYtb9!Qs0(Jx;4X*hc|>?XXI8GY+LFVAx?^Bshhy}%H!eJ(J2{A-b+f=_ z#Z2j>ALiS3n0erMpKYWN*}FzEe5;yEMf6 pa&o}8>y#W%?N`Oo_%AVAu%2i8_6-lFL)HKQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..5cfed0936a227f40745ec68a0f3044fca730139e GIT binary patch literal 2391 zcmZve$!k+l6vl7Tq=OX)>QoS|Q&p6rpdyG`7t$`&Mg_Ma+R~;beI6LajK1f`5y4;YRTLz1$P8!!4)hobL?x4EI$J9qes%I?bcQy%{&VnlDHF1EoX7 zf#bPKG@MCwyNqiM&`in+X{qK%3zb57Y-2h#fE`gWf6I%AQhmxKPr~jfpPE1)T|PN^t56aOO~tNhdbz)zxvT zuFphrR`skA=VbLm-G%%}R4Jt-Z(qaxuUE`5n_EkjeG>`5`mcUPUoa z&WalQ1Jlyo9FfH_&oB<1xNec<0{c6TS%-1x#7&AU4(xYatuA(f-;}6Fd!SbQdX$Zw zEEjQ1Ush8SojolHbasSJefab4YOk`U^9DnIW*+)8TXgPk({K2)1n?7Ht`M-^{n&yyg(;*zKDYzeLC|ERV#(w;eW_&5BE_!~ zrzYxIqHLYwU`E(FWL+&zPVC#f&aA<(uk|u(!q}2C!$Z{bK>Np zAM`Uh+fdSzbvBm{qmy!a~>0`W9L0af97|=W89bX zHC>cUJpS0JZI|+{6~826XS^rwW>=R*;AiDSZC6C(06*igtCFdieV+E%HOb)2!0Nd! z8JuI-4as0(-8VfJ)_qGD@%Ursja%KfB~v%=*6O|^8Qki=E14YNefsyPMf{!!9O6&| zch1z5vETRDZgG6A<_D753CFO9lEK109(gS6MXnH=EO z$8*Wx5Xbs3`wL;r*k*6`UFwtX>ZOQ#`8&Wj#|(LAuSD3`GxL}dkqi8k$6iaO?rXH=e;oE@y8y{=Yw?WY!}&{KS~C-`FxU04sg5Yvt-^acTf1< wzDNc?piY~_zlp%iZ->52{vLoMkBjpjkooSp2YEuA`Ttb*t=y32|2JRVFOLrLcmMzZ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_csm.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..9706ee748f2cb26c97b449f3f50bd0c7281e16f2 GIT binary patch literal 3660 zcmaKv+iP4^6vp@5k{Q#Q)HbP?5T|LN4{FR!5sEr}(Bz?|qlJQf8KzCpkt7o)leRvY z;=7Jm-&$xO5D)@F{t)A(AcER@0q;K8)~ZzferNWY**OW>VRf(XTWjsJ*4pbFI;T%f zbvUgTFRfq6y6&aYTy=V8_HhrElow9aFOH-W4aLOR(R5;SJ3E$6^yIerj;9kvv6uHcmr5S)bWTrn zS$9rPW9@TEG0t_lj%c4ee(Lz}Vtsme;;9kr_q!BZWb1a_k)GDSbLGlBpdq;|xhh$a ztV-4-A4t|EA4)bPDg9-%-_pY}sxv$TJSyAJyZKE-ez|CtcJe!~ zw@xl@QnNIoojWQ>ru=M4jb?62PooCb;pQfvHpl(-NGy(dV@}Km9K~g~a`8CkF^mHf zR|w+Z+HuVsm{t6iBfsW*!8zes==d~(v*6liHRG7!Fb+)IW)KG#kE3^C9GJMCT)Sqt zcpNy40~1#a;@~W9Qtt(KK_9p`W?@jmGJL2BBg}g<5MbUJFn5AK-=HoD3%sH|^k4PZ z{MS6T=QGpzrzFHPyI^VpGoxU72Ijj4rWgBF1?L=6H1X(t(y-+v2jx%QV9o=pEfL1Q zS9rhnyoCH7^Y}o3iS3oJu!H*|wEVpJKP1ev4fjjue8X0c;k<0rV|Y+H=NcZ8PTq!( zNM}8$=Rctx8}*R?u=c!!g+KU7NnX+~%zH@;+<@MB?%p^%i#?RQ;`o+O6aGg%W>(;^ z^KC#Uj^~p9QHfT;@_0pnzT$sIJO22A-_eeZS~wrfteO9NUgy5BgPA?EUy)9aEgsA) z!g2mJuUkBL#dDm8|7r}c#W1tUdFHeEzf-+9iARoK3@vMvyA&nI$W6d*PaXW zz9Eiy{IT;+THZIMllK9M<^7Fxc+2}+={F?sC-r|Z`ud#&9$}FK&)lOfWB=ZBFKEZt za{fU&cfvC6N9k~39Y1+4tm9{K#N&@W?Ef#q@j8AL2XA%!CY>|jt&ZQN!y_!K!|Z>E zqsP{JvmaBPXT;x<@LaxIytDL>IlC>v#y!)II}*-&0E^@GRs0k`5R4 z=Wox2{rN{6@%Up8`*Tk?-k*QP!CQa+lg=6N)Hk6$sfQAG#EZ>HN<21;<<|hQ@RoOn zba<9=ot}d>PCqIlzp$2^IO6fg9@f$&Oilw5%V&=`c*|$6bk2acS?`ffTt0}~Cl21? z9*|BPyv6lOCvGr^>k|iWaR;Rn2XAo?ODAq9h9ciqYoY^z)P# zfPY!{!ndR>9nSoo)7S8-=h0WB^A4h~YUggz*R<0cbiUEli_Z6%8qoPRlNb7ibl#DB O%H|n~OY-}xk^3KgwUoO6 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..6d0dc583025f9908429f3935c14b3302af5fcc9d GIT binary patch literal 2471 zcmZve*>B8I6vyvOXIe!pp_W9bosfnEkq9aw?E^YUJemw`7@6s>X0aw(mA;Dqz@CW2 zPGZ-@7Q2w}k9hDxd_TXrXI%6&XYM)Qv)r@X8FudIY;>Ygefv98ZhSRcjJkUYJM%q< zGNovLD$(vzZcKot5>7~SHQSdf<%;Fy$;7ZrxY5;YA-{KDWlQC7Dls63jm^$AB~HE_hX@$!OF;$kk}i_Aw!d`#Rg z9uyCW8}ygf`CZA=iU?!S7sxiRqY&-R6?AiBtP65MXF{7|ocaQsIn-m4vCVpQb)2f} zGm)HDJ&SZgY5h@mF54TGiYmZk^pVT0{qx6)Ou^i?Zu zdkfi2-A#VYaqs{89jxC#E@m^5PkCRiJ36!{ib~yaF6K9q-$6YBnOvuzA2M_8R21`s z=GKnCFfH9p5L+Dc4CBy=YZqHCuz%y2br^?E+<@5P!2ZP5>S7o84U0Rp2WrKyL)qBL z95H12?3x}h78vmDklFDuTKtiVq3%zcJwK+Hn86Or%R^}(`QH~zv;6iL(>#L zUnezD&rD@opcBj(TdS-Kb&?bN8m}{JFzk!HOq|sff8m{Lr?0KCpFTv`(YwU-Nqj~p zx#-8@cS#nl$6l0xFZFOgI=i&^172pH*wNXo*^f$Q1{RObuEEHE+{+e^&hD|35C6eH z$3EosrOHa)q%LC@A+OSRiN2UGM7|$F(mK})B`y-v3p)3g#niq{Ud-c+$8^-OvmT>A z^E>A;?#uX^&Pyi#tQb4BZBSnJbwSJyd0*Vk?kb@lz-0Hq9nH=C<`uB;s z-VuYt5H)b;SWOxGU5{=d;TC9+~)I9GC9EQ?$46J zxre&x?TZ+Emw3An-u5psxcOTAS7E$+YVY^6`6e0MViPigncq5nv-v#%NA8!*dqN)6 W$z8}pI@#Y(Wnaw=N&dg|$^8aX4fy*2 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_csm.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_csm.bin new file mode 100644 index 0000000000000000000000000000000000000000..dc8899fbcb2fac3a175360f4b36bd22db1c5f7b8 GIT binary patch literal 3932 zcmaKv-D{jx5XR3YyUA`-o0K-O)f%@+Ac}2llD4R&?MBe#qNS^ag5HGH1dSxwkZjs| zWrENfp+pc=@W!a|N(BoAK@bAD@4uk77DVu?exO!;e(#>yOg15>Oy8Mj<~e6(&b;ro z7tW6~1+AwSKY1@3TIWZn%46e`7beCp6=%z@q*H}#ILXU?DLo2!iV9X)mg|E|!;Bk{F{)>Cn&i6V3(1#~uOzFIHA$oXWc0kF!!oMV?}6PfU(fJl`GwM?GRY*ipb(oQtSQ0B z)wNV;bAmT)#JPYPhYD&O^QpmgzCl&f7zTy2GWtW$ zN~6=|*(ntpF?v`Uohi>vR3^&mY$ohTdRiEtuFSq#EKf{V&dpb5<|}l6}(HA@UGcT|v!#MzRX%-o1hqXt%Y^`V$`jQeYo7>{{lPAmpH;bk{s z^*rX$^RVF+91m=rSIvQ0C2k>!tG*ZPBX;`s)(I6vPb zAJ030ZSl-Hww=#RV>e3JkJ-hhChXN{(=+U~Xw!>5+J$`%iVYvVLmIxkFjT|)nj&EKI$>MOFH|S z-6Ng6&F+=X+Nbjm>xqwg$iGj|yo5zO_M?)#AUkP6mA?{&_u#w>o)Vk!YR9|GpGrsg3inmm`M%qo{L# z__0@<|5NGo-1ykcCK&wBqi%d`W)(mC5znl8n_2ZXv+8YT)!VDiW`AZC{~={XUhk+t zX2;8MO#*%4K3T;7DTMhrDHPrZ5_*A6{vS)I{TW5k$FC!%M-BTXVmh*heH$^(E5@8| zN{3H8esUYqzTEFE33twXb2fMVodkSIG30hz!XDsPBlf*?a%LW0kJt~=!RdkJ{iAGf zmSI0h2lILV95J8wFT&sxkDqtc^8QsidGj7y-gl&fTi(A(XAkgm`nMT<{apf%u*iWk zcdEKQq|H`hf<3C~GRtE>L2e{Rd z;!u;Qa;Et+^3h}KJ)!uAR44CglK{@;JH|Uq51F%O;rO^``k{YF2lfJAj95-Ob>p*M z?2r!5GOQ(Hz=rLNnD5U$!r&8+-}k3gc71=^gn?Usc1vduaOz{O_ezJ?8^va%T{u4D zc1VW{ZaMCg4$d-cf5d` zQM1B44af$+BK=t*&3e8e8{A@ze@qy4c>ZzO;GTa~Hn_za|8Zf|2KW3oWrJI+ z@lOh)F3&$D8{G5Xk_~RL#vc-PTlMJ?UW@P3lQO`q_P3>jS==f88t@wij($x#-yrns sdNSMS{7%s~bbh1g0Xn}=)Pue%J;_b_nsmMqca_a!WYoa_N0)N{1OFA3umAu6 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_omni.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_color_lighting_linear_omni.bin new file mode 100644 index 0000000000000000000000000000000000000000..2acec208ae7067a1c2b8ffea4139c20c6c722821 GIT binary patch literal 3743 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 Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_depth.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_depth.bin new file mode 100644 index 0000000000000000000000000000000000000000..084d31c6bdb53fcdc865adeadb22b0495514835f GIT binary patch literal 934 zcmZ9KM@s`y6ov1k7z@~YBbJ>I3o3%xRtXw)G?HzI8e}A9L?@^#{R#e97j6X4H+d2D zhRb{BymM=&Tq<;!Gtc^(mAmk|Rxby&C;uV5O?hT1drq1q6AKwL&ob6&S57}*2{C3p z))AliVyT#WjIML*8!Je9O@T5reTu|V^1Eu#;Jz$hlPC2{>->-~EyZsQcv5eR`FeO+ zt*cTd#-i+Bvx-gHG!L@0e&nxK?!(6*3PM#(TX$SgJ|S- zW(8N1JoHjfBt2jYt>X{JWc~8I>Z41<_f*`=yzW?DndogUMlDQ#v%fIA=y7;RS;#XN zZ>N=WRCoTYtb9!Qs0(Jx;4X*hc|>?XXI8GY+LFVAx?^Bshhy}%H!eJ(J2{A-b+f=_ z#Z2j>ALiS3n0erMpKYWN*}FzEe5;yEMf6 pa&o}8>y#W%?N`Oo_%AVAu%2i8_6-lFL)HKQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_hblur.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_hblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..2420172714ce7fd4784ab99c14473c8a123e853d GIT binary patch literal 2599 zcmaKs%WIQS5XEnjrmd~oR;`bXw7y@|s#O$G>#8maMk|7DVzfabNmJUS>dK0^Q>pGO zSSSdE{vE#Xy%9tOQ4vLoq9}^*^ZR-yd`9RElRIP2H`(8{tI}ybef47^=4y+{ zflT`NzVwN7HX3m*;${_-{kg7Gt~ZkzNJ5UfVltQSPG|RvpXkdUtBBOQ z3U_y!bFt{+DnhGVwL7RoSPd>J#JO5m8SEXMU7aoch3=NNjji}+x)@vFt8+5~y+Yr) zRHg^xyyT)}STZ6Rm0XpKNya5Hed5|bD@j~+gk!On$+x5@F61i-ne>*<_*=8t}OD|Ga_FY2>I0`Z5)7T~J?5(7UO4>phSDPQ}~c zdCXucUYq>8R3URKRB^sxTHm)8KJO8~<)?Spylmp>5jOXnEf&0HdGVvqmBw$e zNit6??uv~cTR*M9hKo&Y_&Kjp-*dD#NvLPFw;Rjs1+s~sFaJ{QoI(6TKO1bro8(z8 z8$NyA>TUW8W;s?$XHml{?M)b3__0?97I=kQBb`|4Hvd|WVT1EloEzK$e~UEu)MWmB z(zV*nPEVR8dmyj}+lfCXoqo_u>c?j8VEBi;PH*vJ^A5~^SvvivFZi)}7huF+@w&xh zk9f@Zqh&Vlgn0AwPQo_t1bdTa!rhq<3+$Vaxb|&Axzhy+_ra!yOA_kesZP@CYZB(g zjFW_a)TC8>XJ6+8;>3hr}WNp@cKQEzcwA^nrE8*Z5dEIQ1LviFA13 z8lQPgn>+1epGyZ1$G(tlv38f2!pOt9#K5s!uccc}*2_1-IFt8mb-tAj7oWwxlWw^T zoA8*n(rn&KxAUy_55nN$v)GT)?L4dflQ43Vix@b@|02D-_OHUom6llT-=xFEXR+U< zTQ0+XdQ4lX_TSR&JgfbWFu3?EHlktKc~*N=7`e$s3>@RfJzsDsSCuew@jqd;R||uS z&thw&TQ0+0-Zx|z&!)Vo9OFC*b9 A`~Uy| literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_packdepth.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_packdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..fda18aeb58536ff393496e1c6e0db731646c83d7 GIT binary patch literal 1022 zcmZXSOG{f(6ovQA!_*2|k=8nii8?EU4jL_3^>&mD1fznlT0&|r+^E@$+nw%F)cM{R#@}**S90V>V+`?yT(|?p7|7cI935E%8}Xq72QP^01t|*NXbw*X3LC zP@dH(K#07bo+BUKwl?KW;JJr7iQOss9z_s{`v-poS6cu8 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_packdepth_linear.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_packdepth_linear.bin new file mode 100644 index 0000000000000000000000000000000000000000..e92c06b1fc00365772ba7b5958811340f65926a2 GIT binary patch literal 1110 zcmZXS-Afc<6vof&hnoqSgeF8ft6c=b;zflPwG#=ug3zkqO&{aRjy1CGEIM1{jfr*N zAJL!KMK^)Z@AVz&<1B}Bp67hNXLfg|J!X<0cQ;N0n;OMOSug4Drpc$yadub<%qsSv zVpc9K)yx8`*$w+jfn?fBV$3FN%-PoF&Sv8z?=>DiS|L7ZWsHkWsSZ&qJL;wb{55GL zU6+>itIGaV!>Y3W%mdFWcE8on_Pc#et2r#n{#jVHWeW*Ns`@db8xOOSG*2^4t=dgD zGfD>e@#jvK4)Rx{d^pM*@B4A*I!$@wZm<9IKE}Odn14{;w%?0c?Aulqdm>9$<}XeM zv|G}ab|kOl{EFLmQ9jaAr%<*IkbrqZ(H9&EPe>6k_bcMJ)s?<=chRdEv-0`Kq4bXO z*#pei0grpk8)k&3WkYEoUG{iZJ_4q8&Y>^OIpKTq=|TOxe;ZsVWB#CsO8ZiKWMD&&gbKZ#>6NMc!M_(Z8ck?DtMeJ^94B;S2Sx%f`}B%AJ|bJ@%yV z-<3msS4xjPX)&iKAD%hi{Emryc+kE)n%1VL7@00Z!%g; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_texture.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_texture_lighting.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_texture_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..212b10eb7daeea6cb650a255ac5cec9dd928f395 GIT binary patch literal 1988 zcmZvd%WG3X6viiyHr9%*h^=l)o4QadrQicW)VN9)l|~B%6&sQ^NF>Rv=}oO0Ew~ro zf(X_p_;#cJjQU@=aG~J$o6OWPcEZU$-*=vKW^OV&GudsluATZdl{9^=Vm(@@)Ml%d zD}`osDV@lfwCN4lbi#;P%@~tPj_NyMGG>$cP71AUCMm|4Uej%#`Kg(y@uhfS{NSMp z>|0HWhqd*YEmlwKyI!g`0OurglCq>Oxh!c(RwOBXy7c^^0$u7Mj05kLZFjyFl}j~M z@3vT!37Qw1u{=EnJX=-Hlo=yHt4kkxDHR)0v#x}WqqkCVFi>-M4Vy#$M50zh!-QWLy%j;Fi#r`+)`CE}bdhCog z@>|wfDutPJGeT!}lZs+ytkL%4A5MpB`XxS&nT2s+;&Kw73(m*oHBa&H$^gHJ8V1V)6DPds;@3Lt1g!j){j9=R9kxmcPAJR9o zghPgf_vuM(_@fRpV>s;losPe+cR;#U4*OXt^hyol!JGjc_6tsD-`K%(j>BGZI&;7d zE(dmA8fNA5gE=!e;uoFn^Mg4g@NkIL-(Dy3UWg w@NxLrTsM;U0v?@rfVrTz^yKcLbJwZ=TiK6LA;o`fzgabZ04|Zjr2qf` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_unpackdepth.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_unpackdepth.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowmaps_vblur.bin b/examples/runtime/shaders/spirv/vs_shadowmaps_vblur.bin new file mode 100644 index 0000000000000000000000000000000000000000..355361ec1392f79cf7e349af093f588bf291824f GIT binary patch literal 2599 zcmaKs+i%QK5XaB%_CiZ3)o}lJk;Fk}=7+dX%eS;6lRK2msDiS<7UYWVE3`bo zsWWsr`DO*aXy6NXgq$(Al7L#J`cQ8&F_0Td=hHde0F3&RiF|70a4t94+bX0YxKDek zKR|2kTHY=CMS=GP`NY z3~Xk!xX5Nc*yM)KTdS0?u$e(If85)~=RM-L{PYf+m(6*4gv~wYi3P7oUi|0{()cYl zN*0L4U9s_F>!%giaIvWkKk@4IJzsmHgnHI^yFO$ulFj*r@-Nd)49+k1v%xmJQJxjD z;nUY`-lnf$mSdH47B#Ha-iV=vAA602nuxbnJ7=le{OhE1M{IE3igPD+!rv+lJ~f%Y zN4i$K*?m*yv^^5oC)zoGMmo9aCG}%7cdKXA>+}{sHt)dv7o}4heZh~-y8t8pWv|@klSe>`OKPB?G=iIB}Z!M|BE;qJ_b1@=t{|8v`ga;I|=?t@JY7bMibOP!?G*Cfn~ z88HWV^!U02pYd);hsXP19>%*V9p7nX<=ia^XTkS)?6!33U>SBtIv9O4Y|>-gDX!}2 z>0Jru;p1oayA+qX-;+=iZfrJ>~mgk{#`oJ>mk#sQXIpynqEFGLX z8Skm|@Y!b`aPe8Z zU(&cPDR(nJkTzpo0R5~@1i`Z~1SE=-Hu5yoQo9_E;8RX)>!)mV(1{a^j zn(j7-)n@6P)??{VH4zUis4oY9)R^|Lo^dRparJXfhrS1Z>` z&G>3IRWMo89kAJy5mV?iCX*i0f68>44dy#3w6>bG7-PCk&hEwWsqx{3WN!HIkrC{h zO@__dddw!PXZ2r?stv%j)Fe@#Uzd>N$%= znV@;GotCG^faj>nnKAnb(CW~SUZV1BT#K8wcQ|^B%8j^LR}trDdo9n$3)Q3=t6}`; zJt`-a8?$lToEs6d(VnGHX(Y{?rMTKiCR)jSD;d60E0@+n<=17;`>)^PT2*|Q$Nzj5 zb#L@F=H`LUoW_)y`LKrC+h3e6(rl6VIOY?^fr%?fd@eX2SJdptpOzFA$sBh{SRN0y zp~cL0Ai&HOOiuinDcI+W9Om_4=UsG5SYX~rn2-7ReA|?TJcITHwR84L=h^2aeTwHC zV9pHga+rExYGEhOcHutlc?ta4EwK`e&AK zNM3lKc51^PcbFN&VL#w>{C&Mq=~@NsXQj|9HHZgu2XG#92Vnd!IGs6Q2XiOhe#z;~ z1v@x$9PxGO%+A*Xb7yeauQ}c42Xlwm$p_{R!H1NEJl`bDFqETu*UW&qvGD&ThVR4) zvBaI1a5gaYE=oAd8F}Tj-*ud}HE!8)oY(u^a~$zQOX=iTl}zaS&s<+g;1O0zLQUV>Yw66M<+(S~;qdj`TgQd{ zz7t10{@BAgzZYKL?+0=4zTc11$pP>C{UjY8VXg1?vpDVt{?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowvolume_svback.bin b/examples/runtime/shaders/spirv/vs_shadowvolume_svback.bin new file mode 100644 index 0000000000000000000000000000000000000000..7d128d85223ea60849276510fa198464c2995008 GIT binary patch literal 1312 zcmaiz&2JJ>6vglGQB;hzsr_(Mfx4=O)I^PmQK8nrf~07ZZYga?I?ce~FjIA~|N;je^}u2j@YYq{FZmj82n&G#mKuk~p0O z(PTH6B?Yf#o-L+>adhH`2Z8^#A4g{;&#YuWN@m5vX2qna*d_bwsxDbUj9JwdvbodS z?=@%1N%Q`LZ6w#Mm?_aLY9~XbY&;Am#5=+Zp{P$;^G^xOQe4!K-_Y9aP8b~xLv^ZT zxhVU`tk$a88vXurT=gm1Dn&HP`ru_am`1Z8(T%`e$-K4vNfN*BN5Lf7OOt7uG)Lh; zx94Qmb^fS>@2+;@m$5mY{^GcW>q4%>E4r4@ktg;RvbdD_Yba)PR2{$dESu+e-nfu+ zmsOW9s|t1M+3n72t}5myQ4`iw4=?1r68UA9bB=Z8%bMZHH}s9SoU18cQBDu|$1cYs z+=}uw%{75D-f{W5%h`WZF0 zMnm19a478Qf5e_60S+)cfj*yAgY{#9y6CRzgmAuq4sWct#Wys+7V>^|#q{J(MsDq! zt9h!N8t|VSccz#=ti2S+zEFT?9Q|{SKQkP@`*O%RBZ2+sS?6827v5wl;B!mB zBk%J@fd4KH`(uF`@Ohuq@$~-S&UUUC{*@fF?~4G(esoXuQrr{#Z!wQxJx@OW0J$Y` A-2eap literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowvolume_svfront.bin b/examples/runtime/shaders/spirv/vs_shadowvolume_svfront.bin new file mode 100644 index 0000000000000000000000000000000000000000..084d31c6bdb53fcdc865adeadb22b0495514835f GIT binary patch literal 934 zcmZ9KM@s`y6ov1k7z@~YBbJ>I3o3%xRtXw)G?HzI8e}A9L?@^#{R#e97j6X4H+d2D zhRb{BymM=&Tq<;!Gtc^(mAmk|Rxby&C;uV5O?hT1drq1q6AKwL&ob6&S57}*2{C3p z))AliVyT#WjIML*8!Je9O@T5reTu|V^1Eu#;Jz$hlPC2{>->-~EyZsQcv5eR`FeO+ zt*cTd#-i+Bvx-gHG!L@0e&nxK?!(6*3PM#(TX$SgJ|S- zW(8N1JoHjfBt2jYt>X{JWc~8I>Z41<_f*`=yzW?DndogUMlDQ#v%fIA=y7;RS;#XN zZ>N=WRCoTYtb9!Qs0(Jx;4X*hc|>?XXI8GY+LFVAx?^Bshhy}%H!eJ(J2{A-b+f=_ z#Z2j>ALiS3n0erMpKYWN*}FzEe5;yEMf6 pa&o}8>y#W%?N`Oo_%AVAu%2i8_6-lFL)HKQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowvolume_svside.bin b/examples/runtime/shaders/spirv/vs_shadowvolume_svside.bin new file mode 100644 index 0000000000000000000000000000000000000000..e9c07d8e7ad85991c0f36b4f33233b2051f751a5 GIT binary patch literal 1662 zcmai!+e=hY6vp@59LvZewII+j(~Mx4pc{mxP>c@)j#)k>r&A7ga-1VGXUyoPNf)Bb zf}sA53VQ0lO1ePM_dByU4fW8LZ`NAhT6^90jI%S79Y*KN=k3L$8EASdK|N~v)l#r< zGb)D-ud*7|n~fl>T?iUcGBIuvrn~7ah4Yo_Y*4vfu7|hM31iY`RC!X#p{!9v)^wUr zq}ADLl46YMG99rjmS#%%Ml_#4ak7Aaw@D#lU$@y2>uG&1`9Te%EL;}m1Ybz$FC+O? zNi(Y39*aF9-{E34yzW<3F&o>W%wJ8**A@Hd?LT9yPRfjuL?@#^dh)&Hun|PsOpBvO z--{}%H^Q(!Ur^M}xaaXoEvnxshe0ixYDUY=D8Eqkv{`#qah>s8|HiF&i^@4^XObGv zI;k7X$Qf!0#r)y)0A`QiIOZd6TqtS|?j~bhZzg$2;1rb|doZ?IHgop3+02MdPU3l! zE`fvXOS<@dszRN?_{CZ^`=sk@VsgTM#nUS`-vDf0ADesFjg%-X$e zHnDwzF>B|EKPWASsnesZ1Cj^C4@;7py#4wdk#t;6_7U0i0Dson>;?}1QLB@KKB!X= zm;?WDNn+{8^?6!42mhEPerjS*NhSpLK|O4C4~Kuo>g)$UHgDnlSEW;%e(+=SHm;v* zR;M5Q*uLdX>AOQO?1ICc?_&6kjfthFX@P#Q>EVh%{b@y!^RDG2^t;c*d%kCR-s79H z-p8r)Q#tTG5a6hVKB0T;bxmN`yesvXX*hdOZcAh%VOx*r8%*eCJK z>h|_RI)0AhUP_0fSI2Eyjv33!%1&Mh+$SDCduE4Yl3M~Z@ttFyVaeA5{FY+4|3)AO zysPt8I&a%v`<-lJ;U3!Eyq6AtNt+_q2LaB-ozr{ISsvY&PVQgIa)wOFg#JgB&2Q%b BqI>`V literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowvolume_texture.bin b/examples/runtime/shaders/spirv/vs_shadowvolume_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_shadowvolume_texture_lighting.bin b/examples/runtime/shaders/spirv/vs_shadowvolume_texture_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..212b10eb7daeea6cb650a255ac5cec9dd928f395 GIT binary patch literal 1988 zcmZvd%WG3X6viiyHr9%*h^=l)o4QadrQicW)VN9)l|~B%6&sQ^NF>Rv=}oO0Ew~ro zf(X_p_;#cJjQU@=aG~J$o6OWPcEZU$-*=vKW^OV&GudsluATZdl{9^=Vm(@@)Ml%d zD}`osDV@lfwCN4lbi#;P%@~tPj_NyMGG>$cP71AUCMm|4Uej%#`Kg(y@uhfS{NSMp z>|0HWhqd*YEmlwKyI!g`0OurglCq>Oxh!c(RwOBXy7c^^0$u7Mj05kLZFjyFl}j~M z@3vT!37Qw1u{=EnJX=-Hlo=yHt4kkxDHR)0v#x}WqqkCVFi>-M4Vy#$M50zh!-QWLy%j;Fi#r`+)`CE}bdhCog z@>|wfDutPJGeT!}lZs+ytkL%4A5MpB`XxS&nT2s+;&Kw73(m*oHBa&H$^gHJ8V1V)6DPds;@3Lt1g!j){j9=R9kxmcPAJR9o zghPgf_vuM(_@fRpV>s;losPe+cR;#U4*OXt^hyol!JGjc_6tsD-`K%(j>BGZI&;7d zE(dmA8fNA5gE=!e;uoFn^Mg4g@NkIL-(Dy3UWg w@NxLrTsM;U0v?@rfVrTz^yKcLbJwZ=TiK6LA;o`fzgabZ04|Zjr2qf` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_sky.bin b/examples/runtime/shaders/spirv/vs_sky.bin new file mode 100644 index 0000000000000000000000000000000000000000..19749ce8cf8f1642a72432c18efc7c644e9db25e GIT binary patch literal 4707 zcmZ{nTWr)t6vk)UE-j^83UW~pw}6q9f+$c0ETutH5{a!=5FxUbWouT-F4=BDjFBp$ zC{V9YzF@p0-V%KgOjJZe)I=Yw@s3=C!h@PXA`kjt^!xpH&N@^ab~@*L-vI)uRBy7UH+y3ypH3Arxola?xtOcz zO>R!-)AujSrMtSy;&WZx)hce|wiUgbGTF{-D!uy7HD$3eKD0C6xhY*p=X=Ux2|RiQaz>KrCzRoadGEm$F-d>9)GvE8Li#9^_|^XwKDS2x^UM{TvfzL2JXV0 z3bVOvMa3!YSZ;|U`>=2!M_w0HUw&MC zw$RpF*xXx~b5D1&y%ZM3QIr41ZAtc|^67L|!O2~+l$3* z(dE%)ajmND;|k_>jZt5&ET}bYdT}UW)D$d?qmEz+b(>55z_<*{{n=4By2W4<(>Dau zWsCG%Ra5dnpB$<0G?(R}V8KI@IsU&gxVRu-`d zvZ+x*eWLQI(umJq@uzs7ec@m3eRO8YC$?Vw`Bd9d^JmFFf9UXs<~PWHxcTpc4T?s8 zwmNf&gBvd$YMM}|F%SQm$oqGldGZJ9?knlemw!dwxn^5uf&3R5>zizyM)}Mk4$gEJ z%BDUxZ?Wu^zoeSXzd?TeZ|w)oZ<0T=Ju)8G$kWG-u2?#E>3#_m{T{%QI7Kew08@=Vch zW`2!|#QfsDtZ*Ij^@;8d`Qh_ifDyk&26bXRczm7{F!*)e=I+Ad^V}G}-rL+wczm8C zc=LS|NQ3iwT^MJ|Ig$fs_l7X=rxe5dH)W#%ZtJ`y z+j27OZI5Xvt^JN1V&SYNw)TEuL)Sha4BXa!S2h~pw$6L9$%*>e9^aP_9`;>6{||gT zF{W`yHrk=aNAkhLZWOc+2C{<1Lte}CjwZTPBVUo@?!p{0?;6?#^0aM zWb5N@^1S8yxj^HH<@~?!vD_#4+q}krl7O>#)A&-@&@&tGn1)gzm*L}r!i0$+v9fvz}O?PEy^41?`5OS`z_S}K{%Z0|0o-bPGdmd zbdCrx9p0su=TE}nOy{UijIgbl98eoD>dc zI;UiV(P<2!&Y%F(vFDZgpB4^hI%i~q(P<3m)aZS{z4=uD*i3cq3Gd+NbSL4?%IE%Y zMm4&nVCQ7(qjz?Z=N)}U-R{-zBJE6hUYK*UG`KsgwbNs_2t$i*ceq`cT>Zu_;{E>F zSSg(ILC5aRDjz#pvGC~f9Ni(CI|2WY$5zYcT?}WMcY!I6HBED!Y}Q8;-ZYc4Pl$jw z&AVlz31^xq+0>i8S=+BFtJ*cVW{)mqy zcX(TCr)=s0Z#g|G`xG(irnwtTaja>Ydt?iW>H%+>du3A(c+>2cjV7FFJ}sMius4f) z23{S`^q!SXPH;T8HJVc{oBPc(%WpiM6Yf%la5#&L|4-a7;cymL8N~71&h)B;!;v5Q z!(}rU+~!uxwp?0*xg&(b+1wi0%m=r-KTA(&<5`5WxmWu**08v_!ia^lxNCi!hEmS+twSRa)-BbSty%x;kzq5=S9Nd?3rCG8x3 (YmqY|VqS-xWt>gAc0H zEcO-o{GTd}Jt_>GIn={qUzNXPNbGT8;LOp-ZTHXpQaStvVST>mPRa-4_X(Oy^y_V{ f3~=nE?0xFkDUIl2cgY@*{g-B4&&*iN9diEwbFSJl literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_sky_landscape.bin b/examples/runtime/shaders/spirv/vs_sky_landscape.bin new file mode 100644 index 0000000000000000000000000000000000000000..151c68df2d4eb255d13395b2d23660082ce3b4b8 GIT binary patch literal 1816 zcmZvdOHWf#6oof^(4vW8jG&3ZBEB(%0TL6VmQfiHsbJ7q)7oN6N-rrFA0tpS(HIfb ziT(ewIQ4{_kc#Pyw?1J}nPD|fH8_daLueGag=Fw<*VyPu}MrL2FwvJ%xBt;J^J zVYw46XL>B3v7A@MEMwmlpH7YD%z7+mdHYJb)?rIYF*|6z?pvB&m>pk>>*JG`C-5J# zG#}^dR}?EFtW=wA>^WgUxFghrC1F`e>nE%44{e@RMluI}LB7+aR#dCDbaK{lN#=`| zmU9}l{nehL(>6x1R#rdMP_4A1&Wbkk8Z}ibtI=9BZbqtM$UQPinVNIBqY zE;ib6=W#h|w&S_=cy&D_y-Ii`hTXtfb!0D~{_c3NwBd zGTn@3bQ-f^jdnkZ+1GS|HXwvN=EH154BX}A|I|WWNwZ`Blt3-a@sz*{e56YqXSTx$ z&RpS~Lp(Euhy7}@yRW3{=RG9znNi3;qAc=8+-vFXF({ka6oet|Pu*~Og!g&QtAukF ze)c&kKB#X&puREBhZ3CFV*(35{J3MAH$wbL$BE0>8QIjp`RspI--5s*9)3VsTKXI=iC7r{!89wk5J#FY^@^xn=*O?Y9b%b9iic$_cn9F59iK; zf6?2_4L_Va4F0NYW*hd0*SyC54R442;Y$gB)7xQxc=zvtskdHte_y0A^MEP6Z~AA( zEYANaC9Cf>snk*y=o8M_w*~rwbJksfK5i+CJKYe7VFhhdHX6MK?TObozpRru>#0Eg zrhuP1r?oG4vn6m}yeZD+o}LNlJBlIyxxgOibNX9Ly)OiM04!?Y%x&f1e<={dU2l2q zmDib9sQ0yObXL%|WuqngdgHZZUpvysCmuh)2h*AseeDYL#oGs=x3{wKh2Gvd+YCMQ z_FgtRV1?d7eIKMT6Z8$ujQja0pwEjjv(H`&ao6<+LLaS{36Xoe5VnnI4V$2XcMc zf$5%nG?FZ7cS%s%MJ|}juy@&OJ+snDx6D{HkUhB;>ulx`^lMFt6ixW z=c-*|d41G{CBAJj(OU_AVBnkbbwExoK zDMf@a;1=07cjTgznVfDei?JvdR3f%K=E*PMse3V|G`3l-+?8M)a-F_U==85sQS^<~T-^TQG+ehzVsZ2>i~|$b zF0r%Vmd4T3Fb+)Iti*c>iIyrEEgP$p!Nuw-Vg^6#G?Dv?y!eMXqIx&_*{J}cc zZuppN(VDq^_zy^@9`5Bl@Sx|gXT44@u!ETkG1&9k>5s*OnG+oLDX&{Rn7Lu+Jp7rP zVeG}f6VC0>shs;mLLWofqyA7cyCA*>+*9drVI9vr7uNAy9P#*L5BvW@cxfFk z#lc%0ucUJZyw&kqIy}O%I?Vn?96d%@W@moX`Bs7t-`54ty^~Ho*sR9)(&1UgEl7t8 z>;B-muDhd*&YW8SV7-k51pq4W<0QV!{0de=y>U literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_sms_shadow.bin b/examples/runtime/shaders/spirv/vs_sms_shadow.bin new file mode 100644 index 0000000000000000000000000000000000000000..084d31c6bdb53fcdc865adeadb22b0495514835f GIT binary patch literal 934 zcmZ9KM@s`y6ov1k7z@~YBbJ>I3o3%xRtXw)G?HzI8e}A9L?@^#{R#e97j6X4H+d2D zhRb{BymM=&Tq<;!Gtc^(mAmk|Rxby&C;uV5O?hT1drq1q6AKwL&ob6&S57}*2{C3p z))AliVyT#WjIML*8!Je9O@T5reTu|V^1Eu#;Jz$hlPC2{>->-~EyZsQcv5eR`FeO+ zt*cTd#-i+Bvx-gHG!L@0e&nxK?!(6*3PM#(TX$SgJ|S- zW(8N1JoHjfBt2jYt>X{JWc~8I>Z41<_f*`=yzW?DndogUMlDQ#v%fIA=y7;RS;#XN zZ>N=WRCoTYtb9!Qs0(Jx;4X*hc|>?XXI8GY+LFVAx?^Bshhy}%H!eJ(J2{A-b+f=_ z#Z2j>ALiS3n0erMpKYWN*}FzEe5;yEMf6 pa&o}8>y#W%?N`Oo_%AVAu%2i8_6-lFL)HKQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_sms_shadow_pd.bin b/examples/runtime/shaders/spirv/vs_sms_shadow_pd.bin new file mode 100644 index 0000000000000000000000000000000000000000..fda18aeb58536ff393496e1c6e0db731646c83d7 GIT binary patch literal 1022 zcmZXSOG{f(6ovQA!_*2|k=8nii8?EU4jL_3^>&mD1fznlT0&|r+^E@$+nw%F)cM{R#@}**S90V>V+`?yT(|?p7|7cI935E%8}Xq72QP^01t|*NXbw*X3LC zP@dH(K#07bo+BUKwl?KW;JJr7iQOss9z_s{`v-poS6cu8 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_stencil_color.bin b/examples/runtime/shaders/spirv/vs_stencil_color.bin new file mode 100644 index 0000000000000000000000000000000000000000..084d31c6bdb53fcdc865adeadb22b0495514835f GIT binary patch literal 934 zcmZ9KM@s`y6ov1k7z@~YBbJ>I3o3%xRtXw)G?HzI8e}A9L?@^#{R#e97j6X4H+d2D zhRb{BymM=&Tq<;!Gtc^(mAmk|Rxby&C;uV5O?hT1drq1q6AKwL&ob6&S57}*2{C3p z))AliVyT#WjIML*8!Je9O@T5reTu|V^1Eu#;Jz$hlPC2{>->-~EyZsQcv5eR`FeO+ zt*cTd#-i+Bvx-gHG!L@0e&nxK?!(6*3PM#(TX$SgJ|S- zW(8N1JoHjfBt2jYt>X{JWc~8I>Z41<_f*`=yzW?DndogUMlDQ#v%fIA=y7;RS;#XN zZ>N=WRCoTYtb9!Qs0(Jx;4X*hc|>?XXI8GY+LFVAx?^Bshhy}%H!eJ(J2{A-b+f=_ z#Z2j>ALiS3n0erMpKYWN*}FzEe5;yEMf6 pa&o}8>y#W%?N`Oo_%AVAu%2i8_6-lFL)HKQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_stencil_color_lighting.bin b/examples/runtime/shaders/spirv/vs_stencil_color_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..ff132c944d48ff3d277024c4958861873738a22a GIT binary patch literal 1868 zcmZvdTT7Ht6o!{`a5N!}NbANl%aTI8s0gB(uEq<&NlPk52JscPj~ zu@PO#wB#*g9RZtZF)?j9vvg`e-z}E2Hv3Krtu2-kW7c7<$zB+n92;JUr-u(78o|EV z(rk&XQ(ml$WUgGTqo0wSlU$U{N@|iwlGZ1y{fClg6%odO2W8t`s705`HJ#j=U{Mwn zE;g6&)EDqvQ#sSNj{vQ#KGabz)uYCo5;~5$%BA^ep&C~sRf`{WmP>Kv`sFBUOpl1! zl+>NC)Z@mDVpOfiy(tKpHQFnKAdNQia z^nx|e-2UP;Fzb@|IC>Grfr-mYd@eX2S5TkGpOO?5NzZmkSRVH`VS?#nZ-D6`n4I|2 zKd{fo%$u*GX{Y&NJpJ(TTNOoIfATt-Il86uockm_%1_;3?g(yom{$nqEbQdjCfu#P zPeOhB9qtJ*zS|`%?BE>Sr??LTwNT2Xt?VJsN)M0uGhkeND z`1|vcACg%f`)Tpi${ECi={X$svrgyU*ul)e+b=ksK41qk6K|i9POp4^Ff)Q9|5c~^ z{9tB=oqXWt@7L^rvXEy@LeD}utarvQ7Bz6DukEdLde8FQs&u%p-gk}*>wPbd_*Dt^u+JZaH`e=69K5gh zlXP;x`+7f1heuc&>-{2*`M}@O{CF#0CGZnM%?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_stencil_texture.bin b/examples/runtime/shaders/spirv/vs_stencil_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dba4d51c776c2f7d1ca42e5fee8a80add7f7248 GIT binary patch literal 1144 zcmZXSTWb?h6ovQX(r61-v0jQ0rlxN~=!5n`FIG@8LcwUEuj#ZIWptWT(utQR1^og3 zSReXQaD69dO3)K_&R%QZ_nD)^WX^P4dv7PQ#mV5z4YT4X&%X4>?qee|Ygp1StJgX$ zv&dR@!+sH^^@3YkfKADc{~+5J!q`q!b}k6!=x`#h7)ED8O})z6VAlKweW zZ?l}1Yqupm^^RZ7>kaSwSURVtOvF}sz|7Xhr~_s$a1=1RU663F(|hHAS5>I9;x|97 zd0#poL@aqAfBFLRl3-pDOdOcpVBYGU{+D#e66!w*cv(6JjPE0lems9D97`t$@$E1> zTr7sUr~R322h99%*jKOhDc%sKEv~`MVh#@6r5L{FU9t4EC7~ZMId&z~e=9HcaxB4zQ*o(uIC`wOlfY50ugvs& zDmj+mkDVRAP+oR4lyoG#1GQt_nFRi~e29N9AqRX_=TqRR{atbNSV-XC2@&@*aKz)c Xr^(qFJUaVf&MR3r@u)@m&iCyvD7s%0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_stencil_texture_lighting.bin b/examples/runtime/shaders/spirv/vs_stencil_texture_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..212b10eb7daeea6cb650a255ac5cec9dd928f395 GIT binary patch literal 1988 zcmZvd%WG3X6viiyHr9%*h^=l)o4QadrQicW)VN9)l|~B%6&sQ^NF>Rv=}oO0Ew~ro zf(X_p_;#cJjQU@=aG~J$o6OWPcEZU$-*=vKW^OV&GudsluATZdl{9^=Vm(@@)Ml%d zD}`osDV@lfwCN4lbi#;P%@~tPj_NyMGG>$cP71AUCMm|4Uej%#`Kg(y@uhfS{NSMp z>|0HWhqd*YEmlwKyI!g`0OurglCq>Oxh!c(RwOBXy7c^^0$u7Mj05kLZFjyFl}j~M z@3vT!37Qw1u{=EnJX=-Hlo=yHt4kkxDHR)0v#x}WqqkCVFi>-M4Vy#$M50zh!-QWLy%j;Fi#r`+)`CE}bdhCog z@>|wfDutPJGeT!}lZs+ytkL%4A5MpB`XxS&nT2s+;&Kw73(m*oHBa&H$^gHJ8V1V)6DPds;@3Lt1g!j){j9=R9kxmcPAJR9o zghPgf_vuM(_@fRpV>s;losPe+cR;#U4*OXt^hyol!JGjc_6tsD-`K%(j>BGZI&;7d zE(dmA8fNA5gE=!e;uoFn^Mg4g@NkIL-(Dy3UWg w@NxLrTsM;U0v?@rfVrTz^yKcLbJwZ=TiK6LA;o`fzgabZ04|Zjr2qf` literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_terrain.bin b/examples/runtime/shaders/spirv/vs_terrain.bin new file mode 100644 index 0000000000000000000000000000000000000000..811c89f8cf9ab08aedd1b5cd3a857fcb7117566b GIT binary patch literal 1248 zcmZvb%WhIp6owZZD3vBwQ*Vh$L&bqgLpo5?#FVx=fJkGpB%Km0#2iC82!~#r=p#6A zpl{)uIQKamI5F}6_SwgtsGBVI`u}xb8xFgz1=IQV{r0DvEzf($(O@__42P$kY4oO$ zGb`BFf?1HSmdtWivPJtsfX-FRi!ocW1$Q_1x_k9mJg7f>w1NGy1zgUyY-Oh_l^yrP zF`yxNDrrmhC0$9NPf_;|B`&IV)*pOdw!6(y^r}Bn)sn-a?61ZZ8(0m4PEj9f^?Q?O z7RF(u>TuNV_u}E%Q4~!F8)C|?m!07_o}PE2a2)T?BBlBqzA zvYY9Deiv2ET7E92bn~_p$()>Oa>?g{(?i%5NmDc8mv?%>&3i{Wr>RWLzvfVa*}-ZC zGe4L&#GiLql5oJxnDyssu%)*=;Vt$I@ zf3hW(oZAxm1(V~Mg#KR2i@i-G_;6D0t#mkMNV%!!sMk?u=9x)|#~*uDva7u8FqW{_ ziiFzib1s4ZC?DcaB;zsR@+V2%dkMAV#2SUVs_8jr}H8gqK^XTj^nLBX1V&-4+ N+{8Pd(|=^gegoL~a`ylL literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_terrain_height_texture.bin b/examples/runtime/shaders/spirv/vs_terrain_height_texture.bin new file mode 100644 index 0000000000000000000000000000000000000000..b16e4d3a2854ed196a2429970be25e7abd0d18b5 GIT binary patch literal 1674 zcmZvc%}bO~6vofYIBE)NgnbG2n$kuv7ZpNOM!^guG-gcNW|;CtUm1O6e8)5>+q7@d zJ{Qp!)H3L=XkFBQ(V|Vz^Sj<_gLZ~9_dL%z_nvdlxii(da;HhYejj?7xBgabHC>Dw z)g*pYX{IY3IkOJy->5Ce$3lEllc3rz~X%U*5m9BeXrJ&H9&$b-IP9-K9v^qDQf+tgNv%DJ-(>i zk$eY=oU5;{H{vGo-8OpIzke6byC?rxsgXXYH&k_(!=mg!J9JjT7H~+4`cP}Vww`Vz zS(2)HIBKugvUuxZnl=|F#q_wlOvh_kbGwozYuW8qw%*DnmKwFn{#F;qeGkWNwq+nk zkL$_*;{IhdE9qX5&O0kb0v?eac}!p0{b2k9(z5T1OxN$SGSer7IHaA^LvZ^_>Jf2y zDLLs^dk!!;5d8FT*r7d4|G+sZe%?W^6amwt_ITb$h(D&Rv`fGzl#9IV;Y@I!$GkuApvMKRk?C9196?C%hdz)SKREPqQ23mS z+q?U?$K&FVA=Q6gD|_)#*OU|q_?AOEHv*n@_}R6Sim%G1erg}~GlHY8d9B=$xltFG zIl77zH_e9`+i{by{idbedB8@zzpJUQdkIA_ru55T_c1Kl__nUNAN`873_P_R=mVNGx=g3v@HN2Hg z?5-3)^S`cq% zGcr2N`7RS@i_SXC&PY$_vsx_I0JD-ZSh6CyBw3X-BuG2>%*<5^`7Kx3wM8}lZ@0X4Yf}BC2iw^w zi|8);v)%dMjL5Ss>fv^F%bK@Bm~q=fbb323FM7%v*xdf%^Z-n!#QD)v-w%vmR^np8 zIlr9xP5hW7Cr^66U&3;@e-lQSdGvaiS%8U&J#zrNc)X!@35#>ylkZPoeSiAs`}5|& zamgMy8vP+ml(z%oSdi6=K;gCMzBihLg{+Pwg0FLuft2_IWFu77E_TX8| zIm}G3!JjV;I(^_A%#7SQkB(lEBj;dd28aJetGoNa%#d^J!OYOvU$(lt58SYvvtPIP zpt?!i4GBGUGNw0A{q&4Q?4M%z-8n86pE(J2J3KF)y20Gdj~R7dlNa_kB=`(U8kW0h zdG0?gj@jOl5R2uw+tT6and9zQjy&_af&Sf<;Ez4$)N@L4nc+PNbLDN3BlEm3fxj*r z{2xe&0Y9nVoV50b5_p6~4&3STcqE-OdX%^Qd@LQ_$rW4g6LG}j-1$G1-dyi9%lY*_ zx13+^3vu{k&$(akOJV9AlDK+bNr!j!zLri5cvtTm>F@}vx!$+pm>bL0@J>3MpYMCi z`T2ejhd=h5_ek7)K1y%S_menym+xok#DI7CevuB3u$uGzDvtTUuWIfo?cXHuXM~vh tFUvW*6Po6V<6uPN@qMlZJ&L5k-{5>4L;62}_58HfBiakTL~b`SBO{ z$GUK1;`zP4r$k?K`tCXJe!ctVV81tKT4ihdS!9dT?6e#VM+e35vOg(L;>awvhp}0` z)@hnW*0g#1Mu65Wt4T3iusOGt2yuQZy4Xd-cvqih+Y^Ac(yck2C2v3Dw zAr#@GLN8PVX?hSlxhR-gsoo8-36hd#;$%|w!UOmM zK7c-)uOPkfM)3dk>}i9#!^&R&zs_qX`+Kdb>6E_w{86&mNqm%adxQOc?`=Cx4l5_H>esCRyY4Aa0+A z%5TQa@UP$TX;pGD$Kj;uK~dVBQsfb^$K(@lN?m=62p}I-c2z_<2PUx8zf%hOgL7>C_(Wn0JOBUy literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_vt_generic.bin b/examples/runtime/shaders/spirv/vs_vt_generic.bin new file mode 100644 index 0000000000000000000000000000000000000000..3eae3acbac3f266fd1db877c77e072be3931cfe0 GIT binary patch literal 1457 zcmZXUOKVe66oq$Qjke$etqMxGv9%S1(1D7e)`*ovD41I7G^8fTtx0Z4ZqhhV`xBh# zFLmHVaDC^VQ!jeT&e?12_dZGA?YEaqC#h{eDOz>b9VPw2uv}E= z!9*-7W~Jg<)vRDuJ7+(L)VXX$F=i{aFZf~JWCrNhTYCtsPm)u z|NZ8za~Gn-juZcJW}19ZDnFU4t|_Gr{&uv$7Oq9KK2uQz{EBG;X+(XJ0O2i zLNDy&wuBRKJ%bLjqgoELA24>jPFf}+3B+zvPaU$5#sC8;W)&DnLm=;5@vVka5Z6e z1^7F*!wKAx zbU1np+(*w*ucOTLJCqQQKX%^fxw5jOk%T?+mYWjlN4oh3f$f{>lOvIk2R_uAcwW~T zH}zb;r_^)#o@U~R#~*vvQ^oZ(7pA9tKPSTQp`V3xa=?dvK1+wE_E*ip-o8lS-v}|s dch3dCZM_EX2#dBDYH+zB=F$x=J(sT(s)gyqYgSGIZ{zASI%$91UK%FJsy0D+@)J&~^ZDWgd78reSj%n|;KO~bZ!s#KnXdHLUe9Q+ujMKY`aw~E5T--l?S@{j>?l}{VdYQvcfn|DUT@7_+ z(-F~&UgvE5nF)5w$NOp)SlD@M(ReNj-Qu}Zi*HpH@^pr;vYvCRWbQK~Y*RjZLr-|U z$?M!po9wOHGXnX0yuKx(6Wb=R%-$}UbJ4MH7o59(+U!<;yX@VvaHgHNOL9hF;g7ys z$Ot>6^B#zSGy7i2)Q_F_K|Z(+KYNS8mXS}7cIsnpC%n$w;IJR`GUuT8d7Zr0(|}~H zEcOc$Vgh$bK6K^`XL@m!&YZCmA84n3^5c)r+~Kg#dfD=$^A51%kIp-Y>h*7t(|hEL z;@q;p91O>FH}uQBvxxmICaL|TSYpNn`Y?S$GJTkSQ8Im;QB+F%q5#J-?v`XYdNuC0 z=Quy7lj!@7Ks^4~sk2{snZ;d!`S9*Io4MQ*;1}gX{C$BO@cpW$Px}LbINl>~j#zvj z3fM;U9iz`jo`YvmE45j@k0r0}>xt*0eLeMDw6AC4h{qp$y{}Z**OGMVqc*FL-ku9f zg7x-7GI`*w=9iM;0n2K>q5GhxR|0+EchhsPB{RbT!TjDxhF=z}-?x(CS;oDS3>WS9 zz2~C+eh^1I{@D38Fc0SVQCO?rPu^zzewI!icO=jw~I^lHA_npU_b7qp(mKO3xYvbp)uNgDZuWv@{&33KTd|d5D zkFqHfWKGbocN*QsW-py81u0W-PBNOT`K0hndbVJUEG95t$fkABq{SFBZt`|7FD@+> zd+~bl@|BC&_nQoxwN03PR?q71W}~$QxFfkMS(dCw9!fI$qUxPrwMEJs~?I+ZPNZE0&8^-F9{XP!mT%IQO0jrv;Dj=GmTN1cs&C+fB0 zR;224>W8{Z&8@imv>LUx;z~d6^yA`2yI$ROlV4za``2$!UtJ^5nC<(2_JOX5^ULac zRy(&?a`=?P2edD^xk$D1T2NNz#3GKB?uQtD3vP%d$D)LK zJg!Kmo_q3Q{#^+i%X2;HaMbL%*m0a!Rc7k%ONhrGJ9jy+yv%GMVUD~9&JMNn#f1MT zAL5@#$N@jEYMAXa330p|-U_k!K9^vt=(mBsUN{b(MXl84>wPJGZ(rMvOZGK%T(YlM z;)ut8C>iyYw|%`9rao%(^@Y-RB-ng!Z={n4-q-wAIy}PiHScI1^z=?bU-