From 3ea3f32c06ffb43c1ecdc512c7fb16fce6a23a1e 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: Tue, 13 Aug 2019 20:00:48 -0700 Subject: [PATCH] VK: Added compute shaders. --- .../runtime/shaders/spirv/cs_assao_apply.bin | Bin 0 -> 4751 bytes .../spirv/cs_assao_generate_importance_map.bin | Bin 0 -> 2950 bytes .../shaders/spirv/cs_assao_generate_q0.bin | Bin 0 -> 10535 bytes .../shaders/spirv/cs_assao_generate_q1.bin | Bin 0 -> 13983 bytes .../shaders/spirv/cs_assao_generate_q2.bin | Bin 0 -> 16903 bytes .../shaders/spirv/cs_assao_generate_q3.bin | Bin 0 -> 18532 bytes .../shaders/spirv/cs_assao_generate_q3base.bin | Bin 0 -> 10447 bytes .../spirv/cs_assao_load_counter_clear.bin | Bin 0 -> 554 bytes .../shaders/spirv/cs_assao_non_smart_apply.bin | Bin 0 -> 2487 bytes .../shaders/spirv/cs_assao_non_smart_blur.bin | Bin 0 -> 3451 bytes .../spirv/cs_assao_non_smart_half_apply.bin | Bin 0 -> 2135 bytes .../cs_assao_postprocess_importance_map_a.bin | Bin 0 -> 2714 bytes .../cs_assao_postprocess_importance_map_b.bin | Bin 0 -> 3346 bytes .../spirv/cs_assao_prepare_depth_mip.bin | Bin 0 -> 5354 bytes .../shaders/spirv/cs_assao_prepare_depths.bin | Bin 0 -> 3129 bytes .../cs_assao_prepare_depths_and_normals.bin | Bin 0 -> 14222 bytes ...cs_assao_prepare_depths_and_normals_half.bin | Bin 0 -> 9406 bytes .../spirv/cs_assao_prepare_depths_half.bin | Bin 0 -> 2233 bytes .../shaders/spirv/cs_assao_smart_blur.bin | Bin 0 -> 3839 bytes .../shaders/spirv/cs_assao_smart_blur_wide.bin | Bin 0 -> 4991 bytes .../runtime/shaders/spirv/cs_gdr_copy_z.bin | Bin 0 -> 1361 bytes .../shaders/spirv/cs_gdr_downscale_hi_z.bin | Bin 0 -> 2119 bytes .../shaders/spirv/cs_gdr_occlude_props.bin | Bin 0 -> 5781 bytes .../shaders/spirv/cs_gdr_stream_compaction.bin | Bin 0 -> 7007 bytes .../runtime/shaders/spirv/cs_terrain_init.bin | Bin 0 -> 2520 bytes .../runtime/shaders/spirv/cs_terrain_lod.bin | Bin 0 -> 12246 bytes .../shaders/spirv/cs_terrain_update_draw.bin | Bin 0 -> 1612 bytes .../spirv/cs_terrain_update_indirect.bin | Bin 0 -> 1169 bytes .../shaders/spirv/fs_assao_deferred_combine.bin | Bin 0 -> 2700 bytes .../runtime/shaders/spirv/fs_assao_gbuffer.bin | Bin 0 -> 1005 bytes .../fs_gdr_instanced_indirect_rendering.bin | Bin 0 -> 1252 bytes .../runtime/shaders/spirv/fs_terrain_render.bin | Bin 0 -> 1425 bytes .../shaders/spirv/fs_terrain_render_normal.bin | Bin 0 -> 1405 bytes examples/runtime/shaders/spirv/vs_assao.bin | Bin 0 -> 1128 bytes .../runtime/shaders/spirv/vs_assao_gbuffer.bin | Bin 0 -> 1940 bytes .../vs_gdr_instanced_indirect_rendering.bin | Bin 0 -> 1577 bytes .../shaders/spirv/vs_gdr_render_occlusion.bin | Bin 0 -> 1349 bytes .../runtime/shaders/spirv/vs_terrain_render.bin | Bin 0 -> 4017 bytes 38 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/runtime/shaders/spirv/cs_assao_apply.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_importance_map.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_q0.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_q1.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_q2.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_q3.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_generate_q3base.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_load_counter_clear.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_non_smart_apply.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_non_smart_blur.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_non_smart_half_apply.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_postprocess_importance_map_a.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_postprocess_importance_map_b.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_prepare_depth_mip.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_prepare_depths.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals_half.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_prepare_depths_half.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_smart_blur.bin create mode 100644 examples/runtime/shaders/spirv/cs_assao_smart_blur_wide.bin create mode 100644 examples/runtime/shaders/spirv/cs_gdr_copy_z.bin create mode 100644 examples/runtime/shaders/spirv/cs_gdr_downscale_hi_z.bin create mode 100644 examples/runtime/shaders/spirv/cs_gdr_occlude_props.bin create mode 100644 examples/runtime/shaders/spirv/cs_gdr_stream_compaction.bin create mode 100644 examples/runtime/shaders/spirv/cs_terrain_init.bin create mode 100644 examples/runtime/shaders/spirv/cs_terrain_lod.bin create mode 100644 examples/runtime/shaders/spirv/cs_terrain_update_draw.bin create mode 100644 examples/runtime/shaders/spirv/cs_terrain_update_indirect.bin create mode 100644 examples/runtime/shaders/spirv/fs_assao_deferred_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_assao_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/fs_gdr_instanced_indirect_rendering.bin create mode 100644 examples/runtime/shaders/spirv/fs_terrain_render.bin create mode 100644 examples/runtime/shaders/spirv/fs_terrain_render_normal.bin create mode 100644 examples/runtime/shaders/spirv/vs_assao.bin create mode 100644 examples/runtime/shaders/spirv/vs_assao_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/vs_gdr_instanced_indirect_rendering.bin create mode 100644 examples/runtime/shaders/spirv/vs_gdr_render_occlusion.bin create mode 100644 examples/runtime/shaders/spirv/vs_terrain_render.bin diff --git a/examples/runtime/shaders/spirv/cs_assao_apply.bin b/examples/runtime/shaders/spirv/cs_assao_apply.bin new file mode 100644 index 0000000000000000000000000000000000000000..05186c04f4bd977af0b6f840ff820295b14b4d23 GIT binary patch literal 4751 zcmZvfX>3+S6o#iQT@+L{3nEBMH9bK5w6hdJ+iwwW_?@2yKZ+Urst zqf*_b&c3cS1JzY?tEy7Nrp}F(zRHIF>Vr}`D2?v#ylQ<HjmJ7LRgVEintR#VRl8x_)3&Ul)G$ z>70Te+D}Ji!^ZBeK6BKk_Tjb&EAsEbc63{J@0FEqvezZCBU+{I4&+_mU_Z@UllE$4 z)UpHjw642zFw?T0&An?X1M7QxmYt2gja|6z89FlpH={RY?E1@gv35m&_fWQrwb?)I zk1~7iW0Cf}Uewg$KaAk2(BGRgIX#{gi8nt>Gx_#EeFticBENxaQ)-26Ie- zaSe@dT$FCD0riuL9 z%&edLQI~fuGnvb40Tx4h?Em%y9R9b)&sRj}pOB~fcT z(6tBNiEjSDyU^{0*!;Uk;77m{kg3?chn}6>QQ$qy!P$$)z~+*-7vjB{i+cOO?pOc) z+2*>nJ3omy0zXxtEeq|>0d&_GXZKvzUDIry3+-whGi-iJ3ujY7-+RF3Elc?B z#&*K9U$z$eK{vD!DfR>KT_6|!r*IgL@891VxlaYVhqCy_weD%yLSKMBpEbJ|&%*(g zeut@LUI06jc@g4$6nlT7`Z#Zaih@XjN6uT)q~~b?4kJ^z}C=q zTjmZ%_l)Etb`1K+*hAp-)fTa1(T&wNV#lG&m+OuPn_pYRPDGEo!8K;CoNp4Gd^z7_ zu<_dLuvrz?0G8krA(wJQ$eR6Fyt z|2)8FMn8FDt>wF?1wy+cxMMPBo;$MNi*WK=;k^6am6yQsFW@778C`BW`YV}x1uTCp zoX>+bUj@rY?$^-ee6OtHiT4?thA!_r!x1%JhqJ~`xTx_4SiW52O|X2_cne*wTw^-9 z<*nsjqsBXM*6=K&#=Btoa*g-E@=@b`bh&bkW^&70i)pCF2LNk$7E$9vuzb13M_~D= z@iDqwxkd}Q<*mh!_e_29o%saL_l!0C25m-s$9V>yV$<&ZvfrPf%avs-XQ=IScx&i0 zhC3(s1-d<(mF<25{KoX={4=q;;lRhCk3!;(%|?$L!Oh7Wk?Hn)?@oZzS6lea%YN=P zxDzwSG!%OhKwoX~E}oC>d&<4phtt5W)jCo0baZ*Yp~0P*vHMs_tnc*&==y3ipIj@t zHMH%_+(LAD^DX9n``uXtj?2y^QbeO`+0J23jv zhOVC@xc1Dk9QIOI{H?kSPG4>2SWON8PWuYocZc8Li}PLi7Ovo#`4!*&$h{mwyCZsj z9@w5oFIR%?g?$fh6}r8ZkF&V|Eblo+&o5L*v_;QXqgz8;^!y@p`Et)M2LE5rFM-z< zJ--xPPT@DK=a)g4Tc7Cp<>=#)=s_pCevaU-$XvPS6*zshnIn4s6Z*)W{|YB>48LJL zUkjn#5k0>OT<-bRVEbL}?=@ig^4;$Sk35GSIQjB9^n#7o7U!@L-MZT19Iiu`FP}pn z`2WtKA6{FW!vMOR!f)6)Y=SViK5-7$qfbVn=Qp71=Lqh`%$3jKCOCbynIq2OFZ7Y; z@GqRaG5m&|!z~cn9q}DImY0-&bNhF&Bi6AMKi_|4?)J>Nws;1%!Rf0lz5#cj%iGha zb3FOwt!I4Hxf9Mh{D!!@GUt+_&JH+zwMCt~(dEl^<`E=sJ*J`fdjZzh7V-C?%a`L% zCQjZw{L=lrXM7Lug45}+9HSa^{_G1d7 l-T&8#zr`K~`;4sNo3#kLSpPrRS^T~1{5Kg+Ewa>9{|B55v(Nwl literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_generate_importance_map.bin b/examples/runtime/shaders/spirv/cs_assao_generate_importance_map.bin new file mode 100644 index 0000000000000000000000000000000000000000..107a1ad83b7653f5134a55ebfdd9131b0019ae18 GIT binary patch literal 2950 zcmZ9O-D{jh6o+S%Y!XSoLQTY4?8Yhx)*@n~7~5=OO&STbcH5{I8np*Q z5J!9HUYTC5)~gGRHptG<)0lp8ez97sR7MVlLT?xd-HqvHwLUl7EQIz@3gw;<+S_(^ zg-{4xp*#FqXr<~6Z7?CI??m^IOguhWncUrI9^ZY}o;!@(L>7m>&BPSZ9mqm;ei0Qm z;n)H%*Nb#VF}|ID#{UK=5|N)*WX>SIRPB-3XPYbaS>n3FeHnjsUzO^@a&5M5j;=8L ze_xuG=JDFnv1*O%ok8qKN2Xn*rt=z%BGp>|Ty45FYhv-4rI~7Tera)HKmKtl zw#J(bW+Xg-U5eOR^M0{@#dzz@`^EY^EB$Yxz1}Uz0V+y0?*u!>saLKovpcfd^ZDG1 z`5fkRKU{g(j%;O?^9Hh;Xyw=j<9hvYG({*O*N1DedlNG~8|(FTGv26pXHq>#g7*p3^h`a!h4Z|z6XCB$K^Q)oGBH<$Jd zl5&Y(LGu1HV9#?q@%D&kEq5bp*$;BoeGctBIqMdmkDUJ1XglAvJ@@yJ5Ka#7qTgKO zA|j`xm`m7>wD&b^?>XVi*uHJo_yTPW=1%hqZZ3p!!X4mmzMdR5ej~PS@6ejX_N|;X zd0yWGJQHOXnXUf^xKwA-$@e2ZYtD;bKy&?sZ;-s!=pG#Q&0jF?VK1zGb2l;=ac8Dm zJ)+;cEhF}X*xEOf*SZfYQ)E z^49N2v7dmAl}@qW0py({@46-QrvQDaj(ym2%lN(fGPboPJc@11XVle?|8s0(Z?EStN^F9n`Ze#w&`v}_l)W0*|zP*BNPg(N?#1Tp*E<&9dWK)Y$vekAjIfe#c@CV;{4&^YmFI39 zC-CV%O4@B7b3TS?OWBiftO?4)7bp@KJb4B4Bx9UY0WxzeofzfTC;&q{~;AX&1>vtsXrN~K}!#%zX5Z{V8$CwoVDz-W7vBbR=IeRYU zcpZ*kmcu#5B;Ol3pKBSLeD)W=Y@U5*Y+C0G_WJtIMh+63j za{2n-hU1szaE>vl#&>c)*D^Nwd^`NIc~>xuJxO2qR(v1!^eA@z9oql)j%WWqw)=K& z`i6ag?YG1CY|Mw)#`!nK{*wDhjJCh@`(Ay|sjf@WZ(kVOfy~g;euK@g-ZxBUkX7yw@Y literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_generate_q0.bin b/examples/runtime/shaders/spirv/cs_assao_generate_q0.bin new file mode 100644 index 0000000000000000000000000000000000000000..51744a98d23c0063b4a67720db877c6a2216475f GIT binary patch literal 10535 zcmai)3zS#Yb;j=u!y9>PcnO0Hh(JbE5DgC*paKelV521BIDv^y7#N%x9->i*!P2;* zX`}V6F@iwx(Hdj4ML+|Kw6v-3w@A}e+q6C-dC-{j_nW!Tv{@=q$KOKs(NKjW6koW(mq+%C+pKxUEff%bb7<8 z70tDcl~b42G}jQ7m1M^?Rj;nAUDLF(W=ZXg+Lg_hFKk%VxTH4AdS>O>prbqI)-^UZ zG-f5evY}b8rs@?9jmvB5m)ES!yO#7Or%p}P%{7ge)i#%8?XnSB^T;e~S30btLw3wM zWp8(D&AV4t3X^4?`{(CVICsrDwD2?MESyu>)V#EE-1xEf=#H9)eR>eno^u&(c}?94 zPT6LNp73(LXr1zAd^`R#{u4lZB8vUmXI-+*_>Ml|g*D4p*4H-TH*V`6jk}9q{bKz#^{iLXFV^QZ*KduAezE@Ex!?K}{bKzia{r(b z>(H9dth^q;Y?yyIf+MVj8;dcM8dKdb_xOP4%NgI7zs^&> zg0pt$jKen0U1%;7ITv$@9E>;jax|voG3KD=>>R7n54?f1`P#?$`#F2qe`1a|w=k{# z2Xfmw=ofFzxrleYc!b~e;St#N;Nf^bZZ+|>`o*pXkJ0#@?|xcI0UyBj7)T}lg|oRB zYb`n%$Pu`63toR#;A6n2oi=@H;9lSj>(@^S+`AP|4&0{|PYT?(6;B+)Xx8*tup0I= zR)5Pi=3H(f9QGXm9!TRCfi+i_xyJ1;HyG^N4bHj@27689t((|2EZ3sPxje_l56x{g zV?6goF@8MQdvN$q2Yc9mLLO@kLw_Qi>mcGMfn7IZ5RLfc5J8oZ; z{Byxswtjc$H-L-z@^h6L68?379tFG}>^&;{*Mq(11pYU0F{{Vh>V9Bmn8x~&;`x&c0 zv`g^4IdNmERVjF1{jIyg-wr(N)J?lXs|;)(9RG4!vmL-A*X~HTBlxPm zH>Ny0fp2)aa!+V?2CHE|WA%r27wnbKR_+em6+CD5xkZlJ+s+s;~Yb)u20A z4f`3ZKeT#aFFxEQ&ABId`@)JeRxfateJ^SE2G3s7Db=J8SPlCbt3R~+V*mZ1>y!4e z;HECyo(lhQ;2|4FC+*LHtE+yVwEKb8u%EH|qi=ugX?G7wc@6;g+&(I44Fuox%=m-{ zfgi6N|5Vibc(5AwGgg0S55{h|=k2sEhJZ`&`t1Hx4*u21K}mZkcvIaiDen`&YS_V!`_wD%OV_RfT(@g+(i#r#^2)G;M}X&*{#Uw|CxX?mpRxKwdnERbBc-X{CxPF6 z@3w?Tf%h(cE9E&FY#-y?m-<6%40he|!_&3;Jb1yA`_etQ5`6hZx2N@cGT1)Gsii-( z#$w<4&hS*vQ^1eS>9{-mr-HATd`_D4Y2azMe75h#fz_~|vHGL$c>E~&O>>$8Ub}2(%Ihrf!!w5_|5Whwn>M99tH5g5&shDTJq`QAy|*N->EKT&kA z;9@kUY#-yCv;NRJ2YbP; zpQZYp3%;Xrc>V@S%IUq%|`aY#-y)(jQvqVZUGdewx!f@YGNGrRzK&+&F()%Ikcv zeT-8}e`qbhZvX3csqaGYZ+3r_^1J|CaqGRQUVjR9(n)Bu0>rS~Xbnel zsN(!|UF*Tiu4|XHmV@nMoLc%rYX$aipLi%~HGn71xgg<{;5!$+mb9(_+s8Py^oLd> z_QlQ1QXWm#G^O{qQxDV@<3A+s8Py^oQ1J?6T0JPRBoFrS zY;WupfX?u-Zf+FA7hCxHA>?~kv6tu60{V830+jbU{2I>5Im-&1UrWZ*OS zvv7X7@?G`0-1Z&yAol6>a~{sk!<>HugKWzf)?yUF)?+eJzQ1gt`3@`gU2z+2YmW6l zNb{XF{10RM&Kmd!*uJxheNWv-^Bq;}+_o^d^P0z~zRN$0Eobv^zE>0Le4m5UUq!~g zvptXPd)wjC?a1q2vCZqZ z@XNRm`aO5!s+o5KwsUoCV`I)&!0W3b&Kj=4c0LD)vqc@(!t0AUU5PDci#cs%PL8z> zPEBLJ2ydxk#O zO&LwC1zbP<-@<3Saq{0p%YAtloa@T_QLN9q!SXSWd$403-Y=s*_rmLod3+CB&gNl# zqVD&>scTHE=kH_7dynw`u^C&gnw906yO~_Q2g#eW>n`T|ZG8G|9*$*96@C4ta~pi* z?DrPG`IxtB_I7;w=jXM#16wYdYtWkA3FkQaL-#K1qORX=LicWb`a|~~Y`JLGLfw1e z)Ycz0z7IQe*X5el;QR3UV&3;-%h@~#ZJGDYXgjyf@ah{E+7Dod_WFYMR(O4(y$xH= z=FwJrJG|P)h4v2Y(Du7jtc?fZ^@a9B*mAa`X+I3FwsBFvN3flbkx52%i|a>#r+&kz8LpT z9_KwS^!@`*z8Lq5JkH;Mi2H9idE@3YH-Gov10SL}R&eiQt7*L42I4-zHdbG(#SgKg z27Y@kuG^3B>35%bulpsoYhM0W)V`kca+-(FKkdlL=O539S#_?v7m0U$`b^XtyGz0M zLc!Og;PZMt4>lM34Wf_z{)Rk;q1hQ*zx&2K%5uMX_`IgyczN^D_IJs5if-8Uox(4x z&)B~IRH5ttV>$yYXH2YxGr{t4znF+EXY(M1>^t-qPU4S#>l|xhD%e=BbvzT!0NYQ_ zKCvFp!H#QDyl0&YuP<_#gDq$CP|NipoXa2ejd9P&oyQ+}pJ(E^@KNwKd|PN2ai#oy z`XQXW@#f}ri+S7tr{5#;eF7Z$mJ=H_dlFt>}2&3xS_G3PySY8w;36VG7FJD2z^+l%e9mOlHpeb#ykpYg^y#&y)xy>Js)pL-&H zuYU?BZwu}@Y=8UY;y2_4Y-=!tW}moMzKCtS{@CxYU>oCoH12_~g5|yEcgy$LYhX1; z(!6fQ#2$YGJL>80jqj=Pd-Enf{m#q%`WCi%$cOep?4q_Yk>4R~{f-~pR&4pHw8(io zw)-%vJ{qv) zi+iFUxwPFA1L5S2Z@VWxg46F2`3?q0zU6tH-CIN8^+mqr#^ufa#e7eI*YB92JIq*u z4iH<^t$^1Ty2G*MY;E_%2spKki9InATi&_Eo)`soPv|?^p4gMe8&}*Dhtbei+!N!# z^0wF$6X4tvaSx23x+kC;ZKGU+9ZH;cuk-!nk;L@%PW) zto_WT_&Zw$A9Xqr+x_K!ihK4+a9#_qQOtW3TyfsT-}}+{^heHPu+@-{{-4J#_AkCO zRpQehb2%AX4f%L>9gA(}w_c^+#e;z*lk>7l5Ip-ez7ho6r7oV*c z;?p13@B(ae8BSA6e`sHbt>1iO9W25&SA8*`FJr6WeDt@S&&6=Xe2Vwp#rX6`K9^vt z<#UR<`n}#hXZalCvsUptlf2&qSSs01xbF5p$l1gEyziU~j{N-o>32@g?tlGr@Eha5 zDRD2#&CUC`ZuG~#orkT@e=ic_{v%l4@f|1L|36@y*6($#@9-ajqYl2q7q81l`1G&H zpV2(ZWBLvAFr2aa)QEfH0&+7?zsY*oX9;8N<7^-O)-}HG NdH$5BGg>1{{}*tLcZ~o5 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_generate_q1.bin b/examples/runtime/shaders/spirv/cs_assao_generate_q1.bin new file mode 100644 index 0000000000000000000000000000000000000000..98faeb43475723ef89cb31bdab1e84676b084e57 GIT binary patch literal 13983 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_generate_q2.bin b/examples/runtime/shaders/spirv/cs_assao_generate_q2.bin new file mode 100644 index 0000000000000000000000000000000000000000..682732539aaf87ee0f377095f03a0528705d8566 GIT binary patch literal 16903 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 AMF0Q* literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_generate_q3.bin b/examples/runtime/shaders/spirv/cs_assao_generate_q3.bin new file mode 100644 index 0000000000000000000000000000000000000000..c18c256cbcd6e2f89849bb7cff4101610e1e6f9c GIT binary patch literal 18532 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�@DhV{;ydfpL^; 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_load_counter_clear.bin b/examples/runtime/shaders/spirv/cs_assao_load_counter_clear.bin new file mode 100644 index 0000000000000000000000000000000000000000..1ecdb3654974a150597417483a87335bd2bf8538 GIT binary patch literal 554 zcmZ9IO-n*i5QgV^(`%VuM9V^RSxF0vAc(?+F5LM8;({%LQb_yfE!qS<&+Q7<9EO>9 z=AC!WIpg`X7NsT8TtB_8^2K=dvD`erCy_-bq7so-23dr-9+xG%OCup~M6HOE*?cx! zZx+MR^_7%XqyJF1+BJ^U?yS=#6@C+^~Mww^L4_me^u#_mj&nFD%%t_iNew5~lY z@=Z>Zdr17xouIf+-Dj&k-I*PLwF!4n&lkv7=M2}jxKGaS#1a3%7eyboeDh;w>ck$d zozQWowNrAn#XWcpqBGX+O64 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_non_smart_apply.bin b/examples/runtime/shaders/spirv/cs_assao_non_smart_apply.bin new file mode 100644 index 0000000000000000000000000000000000000000..8406a0cc8385694d0192df2a28b2d3a4a2c39965 GIT binary patch literal 2487 zcmZ9M?P^?A6o&Vi$$Z4oG_g%<+gK(^K{OI0ZAxuzn$SWL2vi+g3POf4nWlls2a}2T zLreXk7vNu^7vL3$2)zLHKD+?I53Kq;=bT-pXSFM9z3*Ck?X}n5b8fZPsv(z=P(5z< zyIX@&vXCU9e%wCn^gDY;r6hzTG>+O2cK18IR%_)>NG8H`s2{Zlo&HXDkc4t*hV9W1 z%B9(w$+b`q4_T&6gc3{$jZjVP>PBm0{%Ej0e|d4i_!z4db54*`!H%GNo!xy*_yrw@ zmzzNAxtd?*pZUK7Dr5|=tFY!WvDoFu-OmTd{VsX6a4qGZpQqK?JM4A))~JOWFUI1s zwEhEP7gu`+pLTjwuLiLaN2Tuxdj?e^p2lzH*#3v(V&kg$o?$pHHs<_{cd_34IJ%biiyLPBgG4UDms`MD4=Y@k!!I1R_62~G5D7)|e2?A}Vzo}spN&GF@k z$8zlbizjpJo~PL7OwPZS+H8OKx{&9^J%FjW&f1gIn#ML!bFA%|<;)S!<=Fft_!3sJ z_VpZlpNjGKGB-WDak2NO7=J%=(>WLydwm>s8G4-tPr`tW`56N-;2)=yWvw~mTvkE64 z_pIT|sm{we{lFgno^HWe)12?v!{6E{zWg6#zJyi&CMMrN<(#vA?CTYL`}&Hy_Bn()u-6Fq?zg~xYsBXNMW^w1qJ2h%t7(;T>3{Qy BvUmUh literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_non_smart_blur.bin b/examples/runtime/shaders/spirv/cs_assao_non_smart_blur.bin new file mode 100644 index 0000000000000000000000000000000000000000..56d83339be72d89d4f5ea6cb229860a917a85be5 GIT binary patch literal 3451 zcmZveTZola6vy{D<6LaWQOxWjGBfrNBw}7C$IFbGPYPiqhnKx^Mf;Ui`7(GmAX>f!f3TJ zKRHn?rKZ%G?!Gytrt*f?luD^JwWXWNwY;lR873vyds*94OMwT5jt*^FsGi!iZTn^; zSCB<9wu6{v)@A5)<@5|oqNKDEUTziImeu$s{uuu!pqYsJea-CIf-kClbmB~Paejih z*3?t*OMM-!OwUbC%$uV%_5Rlv+lu_B@ZB{qH9Jiw@o59fL@(+2-Rf-7OmZN?a&2mA7R&0#Z&1;NLj(A1J%Q9Y*v1i`GIcqb2Td~&8_pJ3fuJH`_ zS=$S&#(0)J%XxMu*k@ZYS8vANpQ3+f%`Eci7kgid{#`Y*=v%+o`%>-!d)8jG zREPItD|b@GAy(fBYdyi*i7M7Q!YXG!;*+fA6PsJ#7`hr=2Oej2mU8RC-gj`;IstaC zytRtGcRBr&**1syy`!@zvTq~LnfG!Il~W_;Rcs~jr2_T!MU7X%&RcB#*HF*!%->i& z-?L)>@7O*JAf^xM!hfPyoce;ZA|1H#Qwj$55Vh-ybof_sgd_$&N~FB z-}m8RIG^K(z@DcBcO-Mt!}R4ha2Q~$KHs5Z>_5c%CD`Z7XYP1@2fl)ncaJp~AGwdg zS%+f3)^Hpw@ADsVCvu#j=eZZ-Mga1|xu3_d-76n=@;J8r=!;w@vE`NEMl&ZJJw5?2 zR$qOO-+&u?{1#5$J&iq%!|7KZVSc_N*TM3>(@NAa2^aGS?sVo@mS*%6K;9We|5IT1 z>x=%UvF%@9ih$Cg)uJD)k}n8yWxvHI%g zaRuBskDuV=-P1Ua7vc0PF^>{K^3KKhsN-dD%p=~9SK#FBHR4{&aV$&yzYZ`~U-bV5 zw*Bjiy>DX6E5TjNoOJa67Qk42_5J@0ZtVXTIC=Lp_Ww4VekJ;ECP>~n_^tN$#^0iM z;d;=1-gtj+-@}gY-Zk)5)NiWagZJ_2p8}I_TFjk*A z-pSvkkFc%N-}IQ%$8dh%l(?Ty!1Dg)J9lgQ6zqO|vG+4<_wtvsYyV&P9AKrs^T(Eum0X!v;ON$yN}i1D%TrC^%Rj!<$nPjZ5J#6 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_non_smart_half_apply.bin b/examples/runtime/shaders/spirv/cs_assao_non_smart_half_apply.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b340c279c9739787223de6362f5a7509b46afa0 GIT binary patch literal 2135 zcmZvcTWge86o&UVlf#sVHEQaSbP~N&G*B(AR!yjo2!bu6;+4Y~#~7F#m`qA9TG0#r z0ln>=KR~?{|A;-(18wnCsvz}*tP9>0ixm#h7=A>1FK!bB)<~mT(=c zftMQul*wUynLpznWAqZyy|0%&d+?<$k2k;UEVrA)^@n{q|N1<&#@u47*)~UiIPj(~ zZOikY!?%61wQ#1D)x&Sw)ul3E<=|aLz(0Z zo~s1R;d#1iXj?WcRj zVy~xJSw_^uoc^P;Vk8bvAyra+1m`Zd*$s-+k2POKO1#(nBP148X$*u^3J@M z3qVe!m@DW?vcJi#@$qC|#om4E&OvKjLod!=^q}oqllzbw_ToEGypyLe{*O2S>z(Wc z-iNmDZ$EJU+Rp7@t{1jxd~-41Pw4tDlF$4<18c}H665|~fPAX?EBeZszro3;n!lsV3FqaUZc@YV zV-*dU)0l6m;kWZg*0tr zqx;d9`h9>cClp!?mt)?)(amkl=WxEce}KG_xQFO+?){AV1FVmLvHE<2C)q#6x|Sf{ zfp6m!8NIh5IC=LtGvib4$I;L7n)?@hWe-mx*WJTYIAits?o$t2-qOP`oV*h5<9i~yPxYLZFAyO8CPUp;~uxPcgh-lrd+gxnBx4XN(3Kk(1 zL=+iGYR(|(PuP$B5JAu{{Rcrm1^pC7X%xL)pFL;Hn`b+mbKd7X=Xsy!c|P~(`0<{U zrJO2@6U|zyHn&jPkkW> zYBTeg)JI|qxL7Y*$!dL>KkI)d=%!-rx^C7SBo}O-tiRS?Y}Ki&q~QX;VYczwTywVG zvQH%)`+q)`7yDc!fA`32W3o2OERM+nVG+U^{Tg^$6*wlcM&Ti@D(c+{`YXUy^&B;woXZC`8bX}l@N z-tVoT+cLf#t8bmX<$JT<=6z+`=(QVLMcvQd_h7|huLp8$eUXaM%EyN-&jReSH~TDc?dLoUX?IsR9BA9V9H^o_qnp3NY!zI_kjKg5|> z;=572)4xEvv4fyH3!92>&)D~R6dlfa=X?Y`mSefxnRz@0f8WkYVlh?GoTit2o+2=R zD#zdA4}w1qgGuan#A3=5?CzS~5Ege9C2GIVwU$Tiz0`=iM%;bn^aFvp;PDKxSd+YO zVMf@DTHOuhwoB9#o8u1IP@f&*{U;Ix_v4&NylM|mr#XMX6=v&8kpSS7jzAxg7 z`9_a0?-F*J*f-`k;M?*ZyuVZ6<~(QD&ftrw9*uW-HurrA%-+^S-v<88`ZmGMMcjx+j_q$M{_8qX8C$O^_vqjAK zE`hi+2LJbnU2iV`Z1We zzdcd+Nv^}J@;^slt-0X;DZc#81^?ghJNf?sCT@Kv|MOtxmEgaRB5~)iK6qUO3;yv= zE`f@KYzlE>C%=x<>zemep{tis>9r*iaY~3|>ir)?GKius8;&#iW{{Rxk^z{G$ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_postprocess_importance_map_b.bin b/examples/runtime/shaders/spirv/cs_assao_postprocess_importance_map_b.bin new file mode 100644 index 0000000000000000000000000000000000000000..f0447f361730c8fbca05e38fc75b32015bfc50e6 GIT binary patch literal 3346 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_prepare_depths.bin b/examples/runtime/shaders/spirv/cs_assao_prepare_depths.bin new file mode 100644 index 0000000000000000000000000000000000000000..e4f2199b227402a23b2aaa40d235c345454b61f7 GIT binary patch literal 3129 zcmZ{lOK4qH6oz+h-o~1gYPA?^UNfb%sfr-=L6jsKY2($3IEXjtC9ULTa#IQl3W^B6 zDuN(_BOfy-^))I|d`yZXtuqHc20B(-#e&~=vKKkInAL9f`u~5Oz5jjox+i1RiH?+` zBXzCMtkhO(i))oiN|m%@ZRS{grE$EvyuLbDPpOZ>?zNdlZFRoh*x!;`)8HmPARgMp zqvGLBd{8`+zUWD*wKCk9QcLPgUFm*yGIp|GOP)uWds0V%$ET`O`_>xA_T6&pe(SDc z6~o$IYTB9G7>l(NOHAoXgg$t=os6zLtZ(I?^?v}`sVG0!PUW3wTaNs2{ZwOpm6KcF zneHw0eEcSDqNE*Y(xytq6PtZ!Ib3RbUxoh2nS^}B` zUd7(OocigU`%c5lnatfxZ+UO$7@kLu!JW@oKDZ0yVux$@V3_~KeYm&SUXzPwCNOda z?C|U7yP1T$jlK0~e;D5FB^bX=hhV+SyBOZ1*uJ=r;k^Z(B=_C|KS(}R!qep5o4P%- zBl|l{hk5P?z;X`5=^1MEI0aBYp79&x?mvygS>`vva>hgaT7Bkj4kYjSjHrDp*IFL6 zW7Np|jJ*5m>1}{o_&5xfTS50XG)=Czz*TZ2=B%B{sF*RHG3@H|A$~T zhv78C-Pr3N0la@}*s^%eJ?!Hr;M9%hvcFldUe3XVmyf~nMsS~GPCER33b0nK?C&$M zn!|7ke`f*uv!>Z!9ZuZ{fAe7doreoAUxMY0;J(V7bol!kV69r&-#1`2hv5|dz6I#d znr44b!l@hKZvm`7f8*ihJFvVF-1nK24u2N_)~c2L{Qy>T7*65uM}YpUY4*1ar*1?) zJ_WWP@1X-u!~aC?ch3F%9{D}>cW!_DjHVv7zckhQt&Q4W(bS*Mz4aTpoIUnZ=6)x4 zO|?1p@H?O%`S5p&yzK8!@OJ+GLQ@Za7n^F!{w|@ZhrfTxCe9#`jP*e?mSBF_tE(>U3`1d$zzrO0Lum< AF#rGn literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals.bin b/examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals.bin new file mode 100644 index 0000000000000000000000000000000000000000..a8764726e380119f87d20d6a046d77d5f59d13c6 GIT binary patch literal 14222 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 PKEBP)Jhrnt7xeyrhm|{$ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals_half.bin b/examples/runtime/shaders/spirv/cs_assao_prepare_depths_and_normals_half.bin new file mode 100644 index 0000000000000000000000000000000000000000..be6a6e2984e134e6962bb07ed6dd80ca0908af99 GIT binary patch literal 9406 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_prepare_depths_half.bin b/examples/runtime/shaders/spirv/cs_assao_prepare_depths_half.bin new file mode 100644 index 0000000000000000000000000000000000000000..e36d89e61f9cb4d833b71f02dc0336d828912ef4 GIT binary patch literal 2233 zcmZ{kX-kw*7>18Cj!RZ1wh2*V)~6yWT4^IH)G}J^Qw!6il9oB*j1jaD+2T(Kg6eyJ zAo?fO-w0YD=(^rHhhC)~c{tB~-_Lu_eU|am=ulgT(Hc7DE3?(P>b-iQ5JDlWs#nG* zW*d{EwfVWRi4fM%*jcYMs&ls|8oOIUG4%h%d&FDA&5jU?g@N`ET0(p12=7~(v-dEc zrQ=@4uF#g@!I9CCUG>KJu6_G=+qs%q412rjDKWN^_o`Df4B-p8241d*WVtNuFY;&q zH$aJw{C6d~j-xHv(v^t^jrlotW`BD)o#}CV%e0}Kwr7df8eX7n8=S7)s!rpqEyGYD zou+jOZ?7x}y||Ct)0O5|!!!45W7Wn~ZDv>xgE-ggR?ZZDW^SW3~ zPW?HfH}8ByIC2lhKy#p{m~jQL{d&*OCw4wV-Ticto5)`7*zfwY8}TKDu%4Pn5z1s= z=*;d++(PCf;dRXEd}UH@19&B)ob!ph8J(jw;`I@$ucd2a;V(;?| z>3JtSOznA#_3)K+{R`Z@emhx5&NTG;h+aLc0H{w!e307tFX6y*KMa;LF7qq$o7Z4@ z{Tr$GDA-=<)cXb??>F+UtEUqHwd7+JwcISaZ@ZgXZwdEM+w&1$zVXx4_Q=2C8{d2{ zwfuKZaV?|q3r&6Z^}h&iis-U2tcq<&DIhi=6aD&c$;d0obeN z`%UM69;{{>4i)akH+lu&{o3O@@H^M={cVO*H=ag+Ww2g+gUQQPu)LADYmt*q{;mV; zRm=Ok0ah~&hvaV@pg((-`x}5$H_~}-2Ya3;*})?GB(=XU*Yo${@7QQ}3N+ zz5d2i?_D(Yg?KhKYB|qnF>^{4G#Br<(r!-RejFC#Rd6=<6o>b{rGo((q)J58TQEKdA!yVX2M9q^sw5POL^0uVfr4mT>g_EtN)+P| zqj7j48YhOJ22f@dh)>3#@mb+PjemhY7$bv{_!)X`wEpAKs z7?;{ctM&eMjdE#TsgycKtHZT=ZE&PKDWyqi{77}}z-YZ^Xn3@dN>fr->KLguYW0o% zjZ$h!mGs%flv>KO+EXf}_SBJnEjQy%NoAOnoNr|wpV~6qy`*o++>yrmxwqdjPtS=& zap*eL5L0>5si#i zIf_B3Uzuai|7!45<_h9k?VZeW;eS24>#eDi|8Hd0 zufnV@Z!I@7U#=GI*6x~nnT;)10rxOFTzgNBJx_=BrA;+kuU+iuX5b_WYvA^%l@x!+*PW zM%dp)H-6xq=7%&D8aBZ3*~@Bp2A!Ym zj#;zVyDt|xek9=jef#Fmp+a;21h&qigzYpoYc9%MPRMm-1>#!g0dzU< z&q8+I{W*wkt-eDifaN1c4PCC7;}lrlT=p6{)`QKlvyh`7EMLsA0W2RmHloWFb9@h$Hy1x+ zIi3KR!+noFo&?Jma}0pxBgY`RTrtNFV0m--PUB7wgX2ygh2M_Eoqh_NcJGq=T}PKI zitkd}2)sG;nZW&$+k)<%&Ccz9pHCz4ZvVy@xr^`iEWEaOx98C16qaZ8ze!%d2j}6m z`+MZYoVx(_J!^~m`VYFiBe;KaPTKe9-#-@t`fBs{$Vy`RyMHT*eG7i)*W~x_IXHRO zSby|Yg1cN_Wq57TR|~paCam{dqOWoA+U+a8eXU^o(iT0mq02jhYtK1c$NK7k(^p%u zub04=_Vo&!ylaYYegfE@jT^Zp=3FuV zSbaMH^6o{f-Gy#UZNcq9H>SQ3?>2Pfc^{&_yS4W4xk%T-&gZ}xf@+y vZN2#$nU5~-_d4$5VX*ue#Nj!w<9qDiI{seLex5Gl_q6jxyza_8Tgv|ducK}Z literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_assao_smart_blur_wide.bin b/examples/runtime/shaders/spirv/cs_assao_smart_blur_wide.bin new file mode 100644 index 0000000000000000000000000000000000000000..2223551c34f556eb9d6d475a1169e0f38d652e32 GIT binary patch literal 4991 zcmZ{nS!|X?6o%(-DXn5y#3hK)9~3o#5QyR$B?zQci?S$UjHv}HnzRMFAR3o~QAv!6 znkXtJ1`==d!V6;*Hv~i$MUlll(HOmSxiE1_v_8+*?=)jmrk&1t-*aZp%=?{h{=ajV zE*P20HX@DeZRu)T*;7-QQK_Vc-j+43U9BD6HDgj5lSXy7tZ47;YU*6m+mkBe(xlYT z-O|(AwW_VBl4?^mO&gz5ZOu9LDOFN^YDf(u2G$*yYG6`woKTK48Aqj&1>e}bw0U}W z&+XGMnl-~2qgl=7oH4}IF}hSo>s_4;X)}(o@N(nm4P`gJmLKDP2h z-FVNC`^EayPyc2{>tHN>LAhVdbdG;$!Bw#3W?(dO2G3PPcMZ>z=MbC2R^(vLDC{%o zvj)Ba+cuG1ENAo`QI`(JD&1zRXIU%gdvI>dT?h0m zV&m7-Jxk#Gv279Ghpmo*H({$s#6N@0)xdKfs57;fI}2?6SbK7w^*Ki8%6nF^brkD) z)-80;WBd!H&vTg1aVy;xcw2$`W>2H8t%KL->SK>Rzl;5Ee}8|(ya$#uCb)eimJjYQ zw&%^`zAdqQ?4epo>EOrBv#pO7Y<2Zao}mq_tp*W)4;-!7v$c6ISk4}M-iSR==OfZH z*!&i?r*2~J6uDTlpNII$%P(Iw4VBDASfSNc%;@2(;8VA}Pp1l;SA)+RU%MXrVsv%? zm_@Tz{)F)!z7lpa<9zzO5?fo>(yej*KFjOq*0k97=UF!H{;y}RKC?HlH2SFY#eP2q%h_YU50~p6gmZ0Ud=5UNPqEEC2aSC% z4`D~1jo98J=JFl=46MHsYz-gAmRrpF;v?9uXAACV$w@EbEY`^}fU){q!&uk<0^2>> zg8Q=Mq@C|)##aDi^=$<&WBzi+$2qVyX`L>oLam`E;pCljGT3yduzch=fGwBj*hvm~b9vUtaZrx#Jsvqe0n6t(J_XB1jzidTd5+zz zEpIM{!5l{b=I~vN97nnqTX=IAb5i+Ee21-OQ%gUOHu>2RH8cyq??7HdKZ51+8u|$=AKL$n zE!W4oq028|`COM@!SbQYZ`g9VE(h4Nyfx%L;(qFfJDx5Is6TY6DCm$Ly41j%!eh1HUH9+3@h?|f7Dm~Y91`EmOn$Coi4^1z`mdo$Di@@@^rnA8Eq3Olg za=E78gXQC{i#oj)?s%Fuam!dsKG*anIQh`D4O=e1ckckp=bEkp%ZH|SV$0>4{sxv;Q_>FB z=~}qsY1)NPe`wl`EtmJuveZv&gB${~WgkBxa3nai{L`TYQ#vHF7B zfbBeEW9}nx)`$5cZWEmI^#%8sHr?2m`vlnc)$>H$Q*h4L7u?g>&NnvZJ`Ywy&lqtp zz&T%Ea4%vz-`Gv%*&f0+R^K8xze_&~C-3*4_>Q~{zr6nw*?jIRdEoxP<9Ad2fAOT_ PySn2)L|s}$*4F$7b71E3 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_gdr_copy_z.bin b/examples/runtime/shaders/spirv/cs_gdr_copy_z.bin new file mode 100644 index 0000000000000000000000000000000000000000..843fb9f8ba2a02ffdfa9cce14ac2757a02fbb6eb GIT binary patch literal 1361 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 SXEh!2f9XHic=BItH~I~oInP%B literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_terrain_lod.bin b/examples/runtime/shaders/spirv/cs_terrain_lod.bin new file mode 100644 index 0000000000000000000000000000000000000000..893fcf9daa53f7d5d5f59237bdc670c58633e209 GIT binary patch literal 12246 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 Qv53FHte)G>?44cz2X_pHU;qFB literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_terrain_update_draw.bin b/examples/runtime/shaders/spirv/cs_terrain_update_draw.bin new file mode 100644 index 0000000000000000000000000000000000000000..13da8070ff17a053192ada97ab7ba58f79510cd8 GIT binary patch literal 1612 zcmZ{k$xc*J5Qa~8bGu1UX2Ail5qBza0AfNgB8z6h!UX3DE|a#Q8`Cs9SH}1*u6+d` z$ptP<{JzUQ@oMCdN>%;!pQ<`lw^>Oro~eaU3boK1T6x|fE|jqQLN(Kk zwe_{x!|u-P-26=`{h^XE`{L+n2f zB3qKh2#5PSX*Wg7?>~ia?g?U78~X=a=|10*a^6lXqHG0u?#4}06nTSnc`*!_0 zyt8QUh%M&6^N4u{u5`Drud56Ap7mK+rV|(P+(Z;Mdigg1WdAG2gr9It7 z+lM_lM|US?eRrg9zIn9y#GIqPdlECgnA_gH&hJLOgxFJ27WlrrV?B?39E13qU1o~I z=tqb@$`0pCj%`{8Ns-$Z>0a z&#{--?$_AIypLDd;<1m{*r)aJhM4i##|E}o>|+z#KEz`mDfT8}AK&Q1-EAS_zV#>b z+D1D!^;hQReD)D}?$;i_a98{-;_Upc9_G7whb`Y&+>i5jk4?ngT1&admc+ahIq$I} T$3EqVx$|G46z(GYHz@rEw?lV& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/cs_terrain_update_indirect.bin b/examples/runtime/shaders/spirv/cs_terrain_update_indirect.bin new file mode 100644 index 0000000000000000000000000000000000000000..3e018db8449dc96b311c2dfee265973d3021b11f GIT binary patch literal 1169 zcmZ{jO-n*i5Qax@R|Cru4L22Li#`NtQ4s{u$HE|sN{VVHsc;t>*lpjcf7(B2(I)79 zZs*V~>c}uN@65bsX3q7fbDT4GvR3ZK55wsG=;3J;_s54%gF%0snaEqkiqWVSjr;ep z1B1Mktvz8DWS8@18Oz(G-8rI?Wrdg(ESKn3yVGty#=Yj|)&?m>3zAH7W-QdtOjI`P zMk4~Vs>3fy$ng@Wj@&l^p)%4np*omS?2ie=7A7%;ZNJxzyVB$r|H%(kv8LG1nJwV~ z=X~?ztReq*ZcE)2gtJ}xJWlnnET7ZTJoL;q$fuvWgya1s*%jxnO2aoRfzS7n<^%J5 z^p)nrhp(JSRI5D-j-ariKFR@<9+5%*H=?M`STJueEy>Bn)A88E+JkO|B5s5ZU2`hT z*D$lMIg?E+UGt*bnCn~uCp+=jg~Qp)v&*}b4GxFzu_N2xSC{SUuVi~p-@~;q@_i5F moNFfbaU+4Bn2&QuQ~s@lJ+cGt*wePasQJ(WRc+55sD)e$u)siC_)RC7ChZ2s72XMJgO{}W^Kw}rAM=XS8N zg0HS-C)UI-pdX?G z+{H(7yxUk>VE!WoJT2&@(rAunt*zYNU^7l*E3d*-LKvQIwidD`)oOVR6mA+c70cnc z1Y&)AKGj%X-dJq4+Dl^~)qDmED=%*}jy+JHLydBd^$=Un zITh;}ThF@k&TbG@jD0&PzLU3TouT{%`MN{6pI`Ui3Fh0XqxXe=UU2uVm9Rxg@jcYu z4&fT>7~dLW-(#J)j#aFGAjU&E(&bZ+?j>*R{U|Bl`%n_^{FTHzZzb{0LAjfHk7Mg- z3Edmx{Wrzq#L5Ho?;n9@G1tDHMHOq!VCx2myzwk*?++4tkM=J%81GEXIm~0t^KLz- zvG*n>|9tda?;KykcE9tjvt(c)yn1LK)0AI8#ge8oErKc5UBbGDweG@O!KU6$<0F$P zeuJR-cmKr{pCLZgC>=`io5a(n_gzf;pCxvUd2%W5E&O-SpZ|B=xo$im@66stOQ`32 zFZ#YC=VE*zV)7s0mr>^;Z|r*(dy;R(-YTdfb``|`#iv1ibGy)?7<;b|p~Eqj--G(T z%Ux|MVe=NqH`F+&$PO+PJ_%Z6e`lftmuJi1lpmHC7J|VFBxXyY>>A`uZOK|N8m?PCoVZBfePb>nD80zT|#J#oS*% z^)<-;dx`g;sjoVic(Jcv;Kfx%V_)YuxqbYKn&bEQdc=NNLK#m}O*fQbEp zT5kmP{O0(MdS{g%^vxsETN z=K3eTnCJ4n{DoDVtK1D#%(?2PxjxMPerJArX|5w+;?8w0_EI7iSL`L#(xzSxz-Pqv zXTJNSxmSpNL-w1nD!#bu(mpkOaV24W5fe^Wf5g1oStjW_-v;J-^W`(J31;DcnA{C+ KZ#=)jdiV!8{1Hn4 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_assao_gbuffer.bin b/examples/runtime/shaders/spirv/fs_assao_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fa935d2ac89f955cc4b00ef32a6f70d510ed504 GIT binary patch literal 1005 zcmY+B&1w`;5QQr<_GCg(BZBbK88eI(?rzZ+C8R?8+Ucd)% zA+CZxf)C-s2Xf&?@cY_sXbVo)JymsYovPmKJZ*jYzWyVysc0W{)4_h$8_mT=?8MJz zM6+>y+SGKk^JjvKm^Ei(CQjkSFnxE3i(T*v z^ub#&N4evswVwc>UyzMD={RK)-&Nm#@zsbeRH@?{&?>&jd8g#+ zspsY9H-Po-;40AMYLdG%xq9k(byWHD?7snDEVdQJ`7+-Yu?xi9;{v$E?%Q~|@7As2 z^Yoe}VU2IfPnX=?%P*GPzq$awf!FN!pycjDGr#ojSoAh8cYf^(`quF3x=YT!kAddh z4qk2c^sd}p88g3Ep4Dt#?(V95##x=tU|#MnjaA%T%BT2R_Z6)3x1HaaHS@oTB>0C! zo%I%QPPzK;0Oyjc_XSX^Tz#*B+Me+r?DG-W%R2k`w(r{OIVWpQfcvo4_)DtX*Jofq eHS7_y_6sm>pGQ>p@!t3BjOPC^<^5ti5q|-k&r)Lm literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_gdr_instanced_indirect_rendering.bin b/examples/runtime/shaders/spirv/fs_gdr_instanced_indirect_rendering.bin new file mode 100644 index 0000000000000000000000000000000000000000..52678330ec3328d2a6f176f38d5053f2c8fd0e8e GIT binary patch literal 1252 zcmYk6TT4`76ox-%JEI_|ogqTDX$1vhU{ORxB#yxpnwJH`R&x+$9GFJ2qVwS*s~^&J z7hU#0`Wrz93VNQe{Xq*}*IMs7erpddtSr{PewsTPkby9?-CXOoyS@E+2zmH27(!N= z8j6uH96p$Y>vN2Q^nXAb+n1-6q{S}H^DNv3&zPc z&Je6DRMFpPUWJuUHTqNd)Ae?DwP-WB8hxlxE)A1~6B0<34Cl1k&4pgky58;f))VjS zoo1)#-|KA_?Hluncc0bP#%`>bFZu)mM* zcpQEA8UbU`&*Cjc%b2@O0L5H)O8x;RIAbzi>fgM>*zT5tBjgXG^}XF8{^n?*oGE>G z$-yyv_q0ZCqI`#3PHYx%%Er&iGPk+t0YZcT4d**cnLm`rc9QJm1eb-ba!90psuPGORVX zfb;a7aU0mbgP)`OK<*k*-?$CDi*GlU`s`pETaLfR5O%TUocS5f_dfvg-sL-yhiK&& zvy43ga_*>|dOgN=Pi2c-Z}LW~j8h50qF~aooX{`MfJ@+nGiBz zq*JZbqh=+lH#cgnLS{NFhnu+&vVG$N#s|V+_+cfon{tZ6P{_yU+(KnxVza$Aapvr# z@tq;-5yy5>*^e&j(Y^cnJK!NGkf)yu(6WK+!cQ9K@b>2CxcfMV+i38|Gj@dKKD@s2g44S?d~VT*(<4ifZjs{ ztg(;wNMgIgB6g8evA=fuCVQVx;_|0x88zDfSu%t4j&DG}xr@Bix)(sdP@I37n0&kha^}8-e0iT7 zy#mIc(c3<+fxYxUN@jYK_?OAC<}J{tq`r6P`n-3Em&*HlV6HJaA5Q!q(9OFH%t?EE zL^mdf!?5FBpMbd~VBGJ@UQd!)KBJrC4wk5ppD#dv3iHcs!@U{%L&tM**FyLUGlP5> literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_terrain_render_normal.bin b/examples/runtime/shaders/spirv/fs_terrain_render_normal.bin new file mode 100644 index 0000000000000000000000000000000000000000..9ef238d0623350497039a40990d136d10151dd3f GIT binary patch literal 1405 zcmZ9L+iDY06oywa%`{T0QBmbIF%nNS>|8KH4L|6H{_WIXxuRU3f*TPPD`I<@cRva|CNiS*l59iEsHa%#> z?W7wg?QW~tE9EM-X)6V@AU`{af6|KflT67Wr7Ov%EX;IuJzk&hr#thPE-&CeU;!%g z9aQFo&Y+zTD-1O&w-7KEH)gTwpN=NkMD7YZFclNIq7ln_Hosol7k%TU{5=n zH;iOQ(g^jj{hg?N)%n>Uf{ma3AV+0il#Ya)Fz4(=osm-iC+@($ zsE^G%!Qt;qlgoVgv3WPRC4Ce0Vy6h)Z!!F4u8U>2=LPnN%|7M?_J~c-mO#Hd%3^2V z1!Bm%D~`TD1bAXMbOZ8U3Ge`6-imzO|Fyu579Hx+^yBVt1pF^mn>ud=YQaBuGre>C zreer>FTf$5`=B!%eQUZYd;Ta8i;o@ecl@5t#N8B#@%$&pv%fvT*Z!Y#`i~)T*;;>*3d%n-y!-MXW>A2d~>w?Wqk~7yI3=gxxRd4LRlnZ8MYn9DP#pSA5 z!KyZGHw5TBwxSrbS)1~AXa8Wod6D;Yr^BT8C)E4V>;Hb2_p+IFL%(wMb95C+|D5H! zOFn-&E!Q4NI_e$2qSwoQjwR`wjxsSk{g{40u602aNACkFMW76{a>h$yW=r!qvsp zb(5F*Hv?`24*OEjqyMTfb;*Z6n0>(E-wHZCV+XUJXy1{}9~$Gq?Z6Sg8}t|t-V5Bi z-i}_GgF~L5V)%dGh$ZK`gnq!}*pN{Fy}a1VM+rWh$bFIyM~{(90!O``GL!pALOlN1 z+3}9@vZGYeknj%FW?#n=_*?l9e=hxN59ij@&&!)hJ-yl_bfg_S$+Oc@~n0=?|~nZZ*Q>{O@}pA z&RQ_=Zdn(UG^VPT-sZ-+UF)YWG+gGEg zF*7J-lkK@ssmF~wrKnnuCl=zlg?Qjvtz25)s<<|Lu7Bfhu2&@&=l);JMnz+aI{QJz zaeW10)XhSsozbYOF&kEI@}ZawO&4f71iz2@Fk2r3xBK#cYJOi)vm<{>pcm%2M__s0 zlTgc=5tNXCTmDpW|IkoYH&*W){qmdT{O(4gW=Fb4L7d?%4aUIGZ`+hlfsM{|(vPjo%OF4WQwVobBtwc@y40 z?`)qRo_v28y-mIajQJ*TW)H8gN#pDu!}>d6j@%WC8b77*J#<_uxh@EtA5PDg1CP@$=3`l$SeR7WxI=CbhZm6#;!& zG3OI0J9up3|NTYrO{KjeA=c?e({8lzTbbsb|veDNB z;<&r_!n80Z_%nZy%^az9S99i0KMLq)#F+C}r}?-OdO0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_gdr_instanced_indirect_rendering.bin b/examples/runtime/shaders/spirv/vs_gdr_instanced_indirect_rendering.bin new file mode 100644 index 0000000000000000000000000000000000000000..25085ac19a436d92e50f4a46572c2a31fa6bed95 GIT binary patch literal 1577 zcmZXTOKTHh6oyZlOG_(W5HGkWskKlLLe(mQSStugwP3U$sMs(ip^l_UNhguI(Vw6T zFI&OOLInlEA0Z+x)P;Y;MK_}F^Ue2}pr@S7dEawCGrh7@DVXHP``H5-8|~J5apQKi z)4r9Nb058<1_fTTb76O?XYdm z&gpk8id%qd(q(BRtxH#>J?R~3R)1=1Kh+?w83yyf75NU8o9&gTsqO`bMOlA#^0Iaw zQj*sn{i51>dm~QbwkDts{o`6aN}?HunI*+X9A>T*A9a`+Q+!N#)Xh8JXeFJ^YCCQv z7rV)NHz}<)Yt_GPTpT<7AJ?m`MMTv@w?*z;{8kGU5d{tMm?@mGcE%S^Vdg89Q`)E&CcY5xj+7lewq85^n|_}cH*W8{w*>5kDV6FKG&t}0;XS0 z%IpEJ$Y%C{8?u=_;G43U{gSFO&qFCSkib2X4aa_gd+a&ptEw}-pGe6k9{;rTvZ}Jr zM=5^xLIVFuHZ$U)<42>ch>%#5FVgn6FIX2wD8nK1W3LfmuNaD%(N@Z8`o zFU65hJbu2#2f7h^evmQ;F=xf`y}gq14Ngh9Ejz!K!r%9KZ)B4TALe;08=iUYDvx*Y jP72S?^!w_$5I3hSd!EPU+hPA-s&bM_`HcPcGH-tX4IY{~ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_gdr_render_occlusion.bin b/examples/runtime/shaders/spirv/vs_gdr_render_occlusion.bin new file mode 100644 index 0000000000000000000000000000000000000000..9243220d0a557a2d18ae5dda9c012ba3a5e5fdef GIT binary patch literal 1349 zcmYk4%WD%+6vofw)l$I+K364e-3cLT6+xTURkA2_YJ8#SWJ-%niJ8()6j%BO_(TO= zxfc;Z{m)#u5&eF5?zOq$OWPrwH`1XxHyoD9_IZ<6wGKv|x_)@GJ3o;TgwuWouOIK8f>eRIH7QopI56FihhAZLH_{D%H)= zQzra53+1JleVdkShb3L{C$8f3nww=_I;X2j%r@sxiJ5P90y7(!-4oAj;82g*z`PKC zW&^Wp@IZI@VrEB`Mc$mEiAO&njc=wYIjMMfgULUo|7qRW!1$R7Kl#Un;og+M?~KP` zJ}|LuiP^K|S!J;cYBuFt(hUb}mp$%y8~$alhxj#N`oMvBF#EzreBbNv#SdnG_ycBt zlbHQYV)h57UZR^hLp|`o+ah`3^+R$|@6H_Th(peAS@`ysWQFg#1g>D}-H^a7;M>yS z7Vur^a0~dpbhus9M(O)mLJj(Jg8hqhYT;*&VE-zen)u-w?BAqQ8$Z0)#hN#J?sWaR zyR^MBYACe+=w*UYD literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_terrain_render.bin b/examples/runtime/shaders/spirv/vs_terrain_render.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a3872bcd148ffe33f65c8ffd908f5e85008eb71 GIT binary patch literal 4017 zcmZ{mYiL|W6vroK%ZIj(p^g~NXwXKCTFAXGxLeeG#K})#pZY8qGhRtr9 zs$fM06%ATwp#kxW+9EzaiQoevYJEbj6?}q^eiRhcN?WM)|GPUUy-jtxlY9RE|Cw{< z&Y79pv5~<_rDJUcR~}oJaMBa5%GH)LE$6OtF)_~7xXSQ3uw!IL`%EF-zG-s@dYvmd z;#2RIK`EhglflFk_7f7GRzIpfuU@Wyaq)l2j>|LZ8&}?8X;)2eahCX3xsj#%XlAxh z%x6T0@mdx4rh#m3PmtA&6AnyUvM$mpLk-zh2fw)Hm-1uc8h@+oYpdckIv#3_=}iZP zARL=;oBqc?t`XZpEn3J@9C+H5IF+vZKYWSN6Y`O|Yg}CaSm$6|J7jMzmrr+ysSMZs z-mEssOd*)so7vtU`c{Xv=*>(O@&|`=6H|quVqv;iXqV@3Zf2q|k)v>NR~^>tTEG2~ zEY1z6g4C={on|;CJLxesi|SzX2Cuhh?wkVfpyFB0*c*eIiQ#p^v?!+y>&KP+6w2Y( zt3IGwGBy_46=7YY^PtWtX*A}&QJ8s@@>VR?ca=DDvKMGJ58}gd0vJ#2qw&EhX^md* z6pp^9)!pJ7j>dM-|Thx71D3fGpSBn?{T|q^B)S8Qhhq5gW1;N44bAWXYaS-G%SCwzI2oVs&|dJIp8_{vh)XyAw8y3yeLqx&$6fO0F4(EgxdF4kN7XqeVDdkyxv~~u-hWOu@BW}LXJ$b*+@qQW z_ygH+?C(Bhpr#+HQ|G|z7VD(f7)$Jrh2h#GV?Pn5mVwu8?5E<;$U%KSQ)dqZ@EquTV6EF`-5yWtH+PB7u2Z-?@Nt-5{Bo#v%EhGTaC~y?=P~^ zMzx;o(_!r&_UZ-gyAIjxKc45b>(G}=!zbL6dT#L=^{tUcJhU#ay&`m0c(X7%HTYY( zHhNvqT@*$q7CbqzKhjv@Zk26gr{$XvcegnBN8|(EEt`80e%Rl!`(<;tqDA=w!kjla zbn~C}yp4h9oezp97US@-wYpz6+F{KBzfRe3tkHs>JL_O`kFF{2N&Hrgo0H8xW=~OH z;=!*Lk4C(1-3FX}xIXE8Z=aP7$G6D#$6;Z3{J9&V{zru2sDb$(6^6&3yCdpHQ(B2S-&R!q}+?(RyxtGVp@&AJNg}FDmOYc%# z-tnY3c>MJX_mREBTO!bDee!Qpj<<#RrgA0&b*mX`_>MI6$CMBJu54n!Tg=}ymUqxE zoGX66i-X61m-Z6#ifi8R=4l7?{uDruuERNDc-Dda#y9o6I`0r@Ec=1) z>jicAXXHcvi?Yc9Z*#vS8(u&6kUziw2*BICt274A{Me6tW8tyqWizKsin5hRu?Bbf H@<7?Yzkizk literal 0 HcmV?d00001