From 820e0a0e03bc6a693b9fa17f6bb32182fad743c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Thu, 4 Feb 2021 20:33:42 -0800 Subject: [PATCH] Updated shaders. --- examples/makefile | 3 +++ .../dx11/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 470 bytes .../shaders/dx11/fs_bokeh_dof_combine.bin | Bin 602 -> 684 bytes .../shaders/dx11/fs_bokeh_dof_debug.bin | Bin 935 -> 1019 bytes .../shaders/dx11/fs_bokeh_dof_second_pass.bin | Bin 1970 -> 1930 bytes .../shaders/dx11/fs_bokeh_dof_single_pass.bin | Bin 2494 -> 2514 bytes .../runtime/shaders/dx11/fs_bokeh_forward.bin | Bin 2232 -> 2148 bytes .../shaders/dx11/fs_bokeh_forward_grid.bin | Bin 1396 -> 1316 bytes .../runtime/shaders/dx9/fs_bokeh_copy.bin | Bin 0 -> 211 bytes .../dx9/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 335 bytes .../shaders/dx9/fs_bokeh_dof_combine.bin | Bin 0 -> 474 bytes .../shaders/dx9/fs_bokeh_dof_debug.bin | Bin 0 -> 712 bytes .../shaders/dx9/fs_bokeh_dof_downsample.bin | Bin 0 -> 504 bytes .../shaders/dx9/fs_bokeh_dof_second_pass.bin | Bin 0 -> 1467 bytes .../shaders/dx9/fs_bokeh_dof_single_pass.bin | Bin 0 -> 1823 bytes .../runtime/shaders/dx9/fs_bokeh_forward.bin | Bin 0 -> 1227 bytes .../shaders/dx9/fs_bokeh_forward_grid.bin | Bin 0 -> 769 bytes .../shaders/dx9/fs_bokeh_linear_depth.bin | Bin 0 -> 320 bytes .../runtime/shaders/dx9/vs_bokeh_forward.bin | Bin 0 -> 789 bytes .../shaders/dx9/vs_bokeh_screenquad.bin | Bin 0 -> 319 bytes .../runtime/shaders/essl/fs_bokeh_copy.bin | Bin 0 -> 208 bytes .../essl/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 338 bytes .../shaders/essl/fs_bokeh_dof_combine.bin | Bin 0 -> 554 bytes .../shaders/essl/fs_bokeh_dof_debug.bin | Bin 0 -> 879 bytes .../shaders/essl/fs_bokeh_dof_downsample.bin | Bin 0 -> 451 bytes .../shaders/essl/fs_bokeh_dof_second_pass.bin | Bin 0 -> 2684 bytes .../shaders/essl/fs_bokeh_dof_single_pass.bin | Bin 0 -> 3162 bytes .../runtime/shaders/essl/fs_bokeh_forward.bin | Bin 0 -> 2044 bytes .../shaders/essl/fs_bokeh_forward_grid.bin | Bin 0 -> 1105 bytes .../shaders/essl/fs_bokeh_linear_depth.bin | Bin 0 -> 416 bytes .../runtime/shaders/essl/vs_bokeh_forward.bin | Bin 0 -> 1131 bytes .../shaders/essl/vs_bokeh_screenquad.bin | Bin 0 -> 347 bytes .../glsl/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 322 bytes .../shaders/glsl/fs_bokeh_dof_combine.bin | Bin 457 -> 533 bytes .../shaders/glsl/fs_bokeh_dof_debug.bin | Bin 803 -> 853 bytes .../shaders/glsl/fs_bokeh_dof_second_pass.bin | Bin 2477 -> 2538 bytes .../shaders/glsl/fs_bokeh_dof_single_pass.bin | Bin 3052 -> 2941 bytes .../runtime/shaders/glsl/fs_bokeh_forward.bin | Bin 1936 -> 1882 bytes .../shaders/glsl/fs_bokeh_forward_grid.bin | Bin 1091 -> 1037 bytes .../metal/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 649 bytes .../shaders/metal/fs_bokeh_dof_combine.bin | Bin 976 -> 1012 bytes .../shaders/metal/fs_bokeh_dof_debug.bin | Bin 1292 -> 1331 bytes .../metal/fs_bokeh_dof_second_pass.bin | Bin 2639 -> 2468 bytes .../metal/fs_bokeh_dof_single_pass.bin | Bin 2970 -> 2883 bytes .../shaders/metal/fs_bokeh_forward.bin | Bin 2084 -> 2045 bytes .../shaders/metal/fs_bokeh_forward_grid.bin | Bin 1204 -> 1165 bytes .../spirv/fs_bokeh_copy_linear_to_gamma.bin | Bin 0 -> 1112 bytes .../shaders/spirv/fs_bokeh_dof_combine.bin | Bin 1458 -> 1591 bytes .../shaders/spirv/fs_bokeh_dof_debug.bin | Bin 2343 -> 2435 bytes .../spirv/fs_bokeh_dof_second_pass.bin | Bin 3988 -> 3860 bytes .../spirv/fs_bokeh_dof_single_pass.bin | Bin 4690 -> 4786 bytes .../shaders/spirv/fs_bokeh_forward.bin | Bin 3626 -> 3534 bytes .../shaders/spirv/fs_bokeh_forward_grid.bin | Bin 2480 -> 2388 bytes 53 files changed, 3 insertions(+) create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_copy_linear_to_gamma.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_copy_linear_to_gamma.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/dx9/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/dx9/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/dx9/vs_bokeh_screenquad.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_copy_linear_to_gamma.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/essl/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/essl/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/essl/vs_bokeh_screenquad.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_copy_linear_to_gamma.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_copy_linear_to_gamma.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_copy_linear_to_gamma.bin diff --git a/examples/makefile b/examples/makefile index 23b4f0bd2..b3217373c 100644 --- a/examples/makefile +++ b/examples/makefile @@ -82,6 +82,9 @@ rebuild: # @make -s --no-print-directory rebuild -C 39-assao @make -s --no-print-directory rebuild -C 40-svt @make -s --no-print-directory rebuild -C 42-bunnylod +# @make -s --no-print-directory rebuild -C 43-denoise +# @make -s --no-print-directory rebuild -C 44-sss + @make -s --no-print-directory rebuild -C 45-bokeh rebuild-embedded: @make -s --no-print-directory rebuild -C 02-metaballs diff --git a/examples/runtime/shaders/dx11/fs_bokeh_copy_linear_to_gamma.bin b/examples/runtime/shaders/dx11/fs_bokeh_copy_linear_to_gamma.bin new file mode 100644 index 0000000000000000000000000000000000000000..adfd0a11e02e7cfe1911efb64e97735973730c93 GIT binary patch literal 470 zcmZ<@_TbEyv$J6U0wxCb;`rqJoctmKMg|5T!r(6e3c5r%IbS>Z;^3RB``2tz?LA(( z^Yn9&T96zwkk$d>79idM#Gb+KegQz535Yp>*aC<_0HhwI76kZ#*aggj5Fl}|JdhC_ z79Zdr>>1+e@5d108sY5kALPQYdi835pt&G>KGDQ3DjEz)$7ItvCj??Bn$uvVL>+l literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/dx11/fs_bokeh_dof_combine.bin index aa4cc1efd54cb66acd533c25346ff020ee34b936..0f459946b73acb1187a5ffda6f87670d6b57da77 100644 GIT binary patch delta 190 zcmcb`vW9hn92Z}4d{RznQBi8jL`_*!1kX7?C%?#mk&%Isfq}t;iGjf-!pXTU=6cD2 z=c#5jN1S{EvUYPp9Po{ifq`Ml#G1vNSC|+W0)U*Y zn>83;GY0B2Ft8Od2rz);-IxR#8i6#3ZNb36g(MCZV{%|%(BJjK4u*ls7$g}OSW(nX I7GRzZ03a|PmjD0& delta 58 zcmey(zMOqRysQH=1A|M1lk<@mMye)$#uua1v|62xZ~4f`z`)=zv1T!60}}&70Fbj_ Nvj*d9#>wf-QvfQ|5=;O9 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/dx11/fs_bokeh_dof_second_pass.bin index e74ed9ee663f837383be2ba1a1aa35cb06d45683..0cda7938337d7e2c4221344c282976a4d2ba1966 100644 GIT binary patch literal 1930 zcmZ`(OHWf#5T3TsmLgI~G}`#ML07~D*2D)faB1NJJ}9BZRAW++G*N?r6cOE+E9uIp zTU}^en7H8w=nmsbce;>`8&@ukVPWD*zwewgdTDf$^SCqL%$fPloEwzKI~Mj2o)SpA zWR`2UuGLqj>vK1Ipon2~T2-ZfyFT9|S))rY*A{0Rvp1G{x;*IuD793ZTbN&H^uvQr zt>1f7A|us8vAN^LM)TnFJ6{f+{`l$LnODTpmcV)#qlxhvW1>7ZIfXTjk;XWIK_Q-4 zN;k%c+1ZJDW5=d^zBW}VPgEvKlTsP27E7h+5m{SXD&p2tR=1v+@@!3 zS5Y2)$3-5#6$y(oJ7p6DQv!z%?%HpS9rKNue01jBWxTxa86~-j`->z3Q0ngKvFfIW$+R z?SJ^s-S7P)xSn1Y*VY^k4LLI^~5%R_6`ElvFhvtk`3=cL5c2o~ffBby@>-={$4^=;A&m35PhVz@B6-v=6u(+p+IQo9%-y@kA9vgllhgBEjy7gE zgdQ+=O+4?F^=i)Ku-ECxq23oc-}2}WnDbm8?d_Yrj4=qF5GJJVtvd@ z?YxH;oZ$d46Q6MzLsw!UDfS1?(ziP4| zqHj<+2Q*b^Ia6)B5C;C{-v^w;eN5&&zH>V?7joM0?7xD1QM5j6P43hw-sQedzE_=} O)=CToKP$A?cliyn6`vvi literal 1970 zcmZ`(J4};N6h3{>7XccgMv0F<3=YNtG4atD_-RXlsFct`ic3Y(L<|N3BF4e|B9pIK z6B%4^U?y?Hu$eeGxwtbLg9)3_@4NS&S{k{@`S0yH-#Pa?kK00NI5~g1@0wt>NNTzI zaJIHGUYmK)2}KCfYE|XhquN}jq>V1ITwR!6oW8%*+2%3N^Vh=p%)ciXi z7s*$$xv8Gnt;fGko_(?Y<@fA|w_C*07QucVvIhAG87U2oj$sc&5|AqpF5-#h>VV|U z$$qFeb{tBR)v;n}q&!j_mGWRES1gX_Wpi`0h`79mIL7rLx*FrczdSHLG+2gHX?U=* z784<#_i((IkkFJ!wD8(9t}w|h(z=~CzbnTjDhu{JF(Gm%Es@@|EnE$_JPCM1tJJQQ1R*xe5+ncw&ER?2vEFtVe6FYsSWN&nQ`|u#b)KI zd&g)00@~B<;<}vsy8@5bqqrjNurnTWR(q@yq}n&yEslLN_#>7>^V?zE z-IT=~_I5B^@vOTygPn^zeJ_I3sQVcuNd9`XUjM&<~Gh*WUV=ioU8o~nY9~y8bCSWE$<7#}x(8j!IBOmUXGmhqMvfk`9_ppzTTYui1@Ws5bgLxCjKCyoM zPte|E0uLGt9YpOo*88sas*Ur_nPnW-v2nf?dkkZVJIsG1U=sH6X?pj}i=5blMbFMw i3_32Y2ae{QP^b8i&tJhd`?Ko&v_|B})n}f?Px%YdeVoz& diff --git a/examples/runtime/shaders/dx11/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/dx11/fs_bokeh_dof_single_pass.bin index 91698cb84ade5e1b0446a4ca64b22aada5d2b972..b77066a599f29784fdb6150b23b07fef0254c424 100644 GIT binary patch literal 2514 zcma)7J7`o<5S@J+_va@upy-17Oc{j4DE`pw%Wso_x*@v>(I);DRFuSxze?7S#%~!c zw6#fLt2PlkJF(D0D=RAz1;HwwbMKwE*RYBM_uczu&V267ym`g)NOop>?_mL@C3kK5 z`i1I^@#@*D?O-IZ)>>Ajdb4_|UD^yUb8UL|bnW!zx%Ty;tf%JO^x2t9GqrALPzmqn zsQhBs8S~@P3p{apVX?#$YmX=DeOFzWXZiuDi z+l79mZ+v*D0;TfE(9{CJjAthTx|or~36YlK!_cUv@I1+|PPLhLJ=4e37HN@L%b%EN zyi>;aGi{RWX|qYM!p8T|V$b91v^yg5;I&A7U}BThP#jXx;fuHIyZTK;M*N4){3@Nr zIqQo$j6roapbxb8fw5CBz-_$p^$=*0HCVvr)NT-g;o*2bG|1AldP_?S#t9(pm?;cPChvAiG>IrzTRcl5^Nequ?-L{f^Aw<7sQF4D?Z9`Abp zYv*ttX(_!9G(W6?&nI@_S4S_{S@r^R!n)nYPV&$D z5YuOeNo8#xl1IHHuzCmb7(00y3wSBUN8TZ?F5Q4^b3H*>r^EQQOG--;aTs0JW?nIB z4?FLrc6kTpPjRXXw&^VsgVVL~$ujJ&^YG^Weyq%)_9@T%kuSwFX5;@4oAmT&p@!xvqyXrJ|0pL!?F7vj(Qy0rJR)%w!ev3jo1H~kR%zjKAL ztIj{>N?fBLfGsTUeqsanY_>* zYps2ya;N*s?orgNR}|Y!rmfsDS`W88yCWaZITJo#U;gc#$#(QlqHX&!M*_d9*Pv&uGO z-tb@64ml}^@L1KKd8f-f@jj%K+chU$V5tmui{~YDavtC429ZeD%P+mU$lQwgR12+b V=7z+XFz5#k)Cs z>q_nRWbNXOP6!g1tyWa6-Kkyclnx`y-JD&RTb#ST)Y;}s8#R|^FV0_^U+jejm9W25 zTexw#H<8f&Kk?qY$neZiv9DNf@47ni?)&pEU(c0@T6q-DX%r>2^F zV%%TokW_z%EqV<$e)yJq8L4N%854Q@MkFjwZI?wH4oAuHOZV(v{U!nf|Dkg~rn9Eu5J^|#E2U$2sDuxG~zHz2e z++aNsKL^of5q*Q(c*9o*HpdDZ+4UlJfwx|8G1OOlW0!rF4Dd1IMNwogrbs`+Rc>ah zjl2HPH!OapGggLP^!7QMt1VWR3`CB8C=Z^zy*5NH$0?DF^5nfpce55*m8*=oKKj-( z+KsZuG32lz|6}{xpbvE&a&~RKq@d@QMhrN=9M76LE3Wk+e#rT2;$h)1^6Pgxb>f3eDlng4I&c#XRk57X3d*@#{P-N!oE+zPAO^oo$=8J^|e+iBhTg( z7ARw$%!xfmelOtNu68QtN;||;l1}lTvJ@$zny=(1m@Q!%OO$IO?dmC62`ou6j%75m`Jb;-uf->f;c2uV)^nutu zjc03!qyb}M9{%X`iW8hhS3j4dDR*008s{k%sOG=mr1) XPyhe`y0d)&tOfxflPU-vlbi?~rY;#n delta 144 zcmaDNutRV{hMWfn1A|M1lkpU|{&cGSTTB*BfRAh5#V% WH^XKt#`VmM3X@;4$W4x5l>q?ia1{#x delta 141 zcmZ3&^@VGKikt^41A|M1lXFVw0?%mMozJtgk1iB$->{UCfq}t;b)wTdE*lmGh5#Us zpK-Gl<9cRBhRLs3=~aN~ Joy^3l1OQbx9FhP4 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_copy.bin b/examples/runtime/shaders/dx9/fs_bokeh_copy.bin new file mode 100644 index 0000000000000000000000000000000000000000..84f6e01e4efdc1420e283d3fc3ab1b9b37f152fb GIT binary patch literal 211 zcmZ<@_TbEyv$J6U0!9Y*;`rqJoctmKMi7sIVFO5*`Tzfa|K%B+LmZuCfLwp57)Tz( zXPC&q-~przfS4JG85x)uEPyl!K#gNyVc-FZgCGPH6vrFK8!-50CKu%w=ckn@Xas30 zc=!bSC5@H}H9K z@F}|fyU8rG^Zhfkv%9l6YKhMH6*LRYJW0h~WPzm>Fwk2=sejeQbp1AYqFm5*PM5UC z9}qDF^akC6jS-`^dK?_Inb)hbL!P`O0p53MCUWuh>-ScDKbpsLKmPvMerEnu{2X?B zLKqA~T$aEC;1$o;+qfQKLKm=Eki7Y%naLAeub7ypc+8j7W#O^L+o^G^*d}jkcF5-= j-)6&g$x3o2ztWTzN@^63re@B|ip}|&9rm21QtZ3~ubMep literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/dx9/fs_bokeh_dof_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..b43090a07c8c5876e954682090fc60c07891a5f6 GIT binary patch literal 474 zcmZ8cF;2rk5S+6OF%pU;DhdQHK|x&{jivwKGr+HRn56}ML?U6qmMI%3Yyh~=eA7)RBc}mg?PI_4102_c;0rKs7y8kPpn-9`DqpaO;Yf_>EoGih%J28Xxp`0LMb7^=m1h!QQUR ttfXh=2+2OnhFj#5mOJFDC3oTs-J>QZRoA>1 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/dx9/fs_bokeh_dof_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..881abf8960b32f55d7590dc279622684e3818aeb GIT binary patch literal 712 zcmZWnJxd%>6g_Wec6T%;3&B$2mZpg#LYnA^3Syx}To=-z&K--Mx-kHV1$2{)2=iQHUFEdk_?eRZ(W8kq+Y}S_jO~2t9 zfS>p)t3hksHAa1ByB5?N^{wW|_khiS{hZ__$^YalrWYrt2I$7T!dW!p;|MsV`N1ok zK@Ll_aspn9j6nfA$^ZwnQda68XI!R>T%SgZI60ZVH+)wo;y5LxyoF*vR+?VZIq||tzcu5V8s10g7`a-w^53Q|2%rP&u89l|AhyH zH^S%1U;q6!@%+^C9`5gTjlvhmU;c8(e_vgB?Vr69(s+<#<(bHd4+WDtgj0&T*bq@U0V-7{~3|0QMIld!Iu^n2dMik9nT5pfN!?br=-@;sIhh5_;oTDsj>fgSywri?Xw4*H)C)7agP;Ha literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_dof_downsample.bin b/examples/runtime/shaders/dx9/fs_bokeh_dof_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..66a9c5589c2005b7eb266715675a6e2e20af4e2d GIT binary patch literal 504 zcmZWlJxjw-6g@9V+vgVnXVHwhNQ&SjiY-WoI%q7o#n4t-Xh}#aIL57G1b;vVC$qZy zXYxCY=RK1_yySB4IrrRmZ|;>h*a-K}&pUIo+ye!=m{3MvbHGkPka~G^Kl#|;p56VyghOTLvQGKvtTlf zoqo8C<_jiW_qdDV254EZb0GbqU)0awfNQo$@DDPTlg}XSyvYUgp8jQ`y0MrvY|vze#S{0lHj`EG+*|H!w9c_rP)yX2d7op(qr_G`VAy3WQwbHTaP8IT>; J%e1OE{RhV4QZWDk literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/dx9/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..213a92692874f6aa6842e7e9e7074e53e728dbbb GIT binary patch literal 1467 zcmYjQ&ubGw7=1h0WVf*rs22sXLGULiEuI8v(+0FcMQs}pFR|2!g_e}0wH~+FTRp^^ z2Zil5@lWv3qn`BSrPsZ9ksj;C^}U(hHj{kp%=>=5@6GQ0#krC8rKx-1@)2~KEA6#* zXTk&cN4VA8Sne#ZcgN1k4V1Tl>?U+)Pf~p2XlOP%NPm-~IJ?W`6tAteU<5bMt}lfcU$=m!}9#A6CBC z4l552gong;9j@>LpjHz;LOlI=p(Ze2!pp>gXxd?)>%e$@f;dn)O7p<%IZnCgh^Tl^ zd%``0m6)?~e>N&3iRtHclo)eN>&LtU{&oJ@^Kl#lN%Y)ehS=|@#GKMeoUld|@VWvt z;&ZmH!(5%*-={x~uh7qXw>hq_i9F_)=o`+>eXe#tCRuXyn1{%qu`m9r!+plzw{=4D zP_BmxXL}NpcCVS8JqK$VRb1Wpf91p6cDm!!|r_)tX{%>_)&qJ zuj(~Ma&!v?Vtrz;`uWVGpSgXSn@yNcOta*BYPK((vh$u{tf98gG7OxzY-^^G=F0Qb zOL_bfY@cEMg)#QTuYJIpx&9^2Ax!m(-19!UPh!+!L!^ky@G|?F>BXAwKC2 zxfP7PPkY`IZ}~Z+{G3O3D}4=X=9~g@P8ieJVPC~&bM+(X;m+r64f0@&cslLGYe=ss zPx_r!B?RhWdpWIw%$L}i)kk+NE~h;7PKjqDN$4*q*AF`>5l79xK0#)w}1or24S`15aTJ)&Kwi literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/dx9/fs_bokeh_dof_single_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..4d6eea4035a7e99bd181ebc21fd2e78b39d81205 GIT binary patch literal 1823 zcmZWqJ!n%=6h8Om<>e(-19edlTLgbWO>q*WtroOOMQsg;ODHvBp(Uk1*6|h{ggC^_ zLE*Zli-VI0x(W`RMCh8KF4CccBKZ8ib8~CZOD^x+@BDw~zL(2WtQ zrZLx8tQZmec)nL(Sbk73M$hR=ZDD$GdVZ;YuSg7o(n{^&Y<+dIKC|3!Vzt@hq1*LG z^|^kNSL|&9+gz6Y&aTPW?TeQV;rI)iSRN0a<+;cX9u_-?Z6uPXcyhhK&H*u!h$DdY z20OxL8Sk;VK4V8fSo>E3SXqaYy1q|r=%Yf|a zLcAU-WMQdxu2zxjvonj0rN;f`!4s1w2gfI-CI+V-Oy8?74vsbE7iQ-m3{}ny$@(n} zB$2Wcu_Hc{{qXGjsVl?_z|ViVadBexm2T0;kPp z`Rd0f9v9*zwU>_~qodi2gQI8PZ4Fm|iB zF1AI)Wt>PN;BD%Z^PKd-uj*Jo`(gcp`so)-!S|yaF<%vD=883!ms9kRxnueX=xm=x zibyhG;>dR_DSR^KW4$^LVzFY93o>T)I@m+kL=1;I-JNcXzy}lHC%A9K7%vYwLGO9oCC1CCt^?l;b$4{WdGM3#nJ;UgKRKr?kYT^Zc%iQ_ zU)I7{VZOmP%=fRo=Z*Hf51z+tjdvn1yr z2W#o!+af;hUDbu!yKy;ZyvK~$w!9PAjbg_^JZ<0%rdo5BiO3(TD@y$U literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_forward.bin b/examples/runtime/shaders/dx9/fs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..d68d902a2eb34ad7758d80183fefcc8fa2686827 GIT binary patch literal 1227 zcmZuwJ&O}j6g_Wd@*(aTw6YLPv4u90#mYilHy~TApvHix5TaReA#s*uw|}X(nFW8q ztCPmg(#m2X+xQQJ0Xti*9M5?#lU3LumpS+2+XTl7_-1dA zwhX|Z0w2=xs6T8O;{)qQy-_;Y8$Rie`=iOV2;dJk5xpq>6!*}6{&4#S-On_|V!q_# z1o*_)3z}kv%mLqe4rwtX231%E_+&KomN}Z9QXb~>d4e_1kW4+L(u;EciDrTE(-PlX z+=EH)Zm)&M`)|kTBzu7Gv=IFJx*Sq zWBZDj+S&Is+aRWP&df9M6CclQjBhpp64k{xRW1E|sv3iJ_5@=e{Y=#ubm`~5cM@i1 znqOg#aX-IGTw!1C6DwX}J+(RYtkKt;Dr1_f+A3?MqsF<486Wd`@_w)M1x}b>XD|K% z)YqGQLtoltm+43Jfr9yhy+Jw37k(Gb2)W$*+D*Q=y2k|J9u4nNnzUlQP=t9zMty! MO`z`2+Z6?XzxoI3od5s; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/dx9/fs_bokeh_forward_grid.bin new file mode 100644 index 0000000000000000000000000000000000000000..7d37c87af54583284f3755175299ac513dc96ed2 GIT binary patch literal 769 zcmY*XJxc>Y5Pf@_kP|ebHWq>>T4*B?YcU!T3k5X>?LzPa1;a_A{aI^q{)4qmeuA}K z?EL`&t=DnHO;kK(gBOimWSMV5&-PN1%+4=Q;qt$4(Cj)>#yvv{U z{@c%?azGX&dys=C2rnaUDH`9Ew7+^0OSLVyLi&RP`*wpzx77Tf?MJYi8)$Q z;jMU%_*<{HMojp6W;v!M02EU3^Dv3|^@Aj!&v%ew>BAX(rc?T~QEIjX(;P6k2l`1~ zW6eDTs5#;Ct>g}dT*>v>W9vQ#F5oxUc_vPc)HCGNSP#jGawNth6V9^cy!I~=OWnBE zSALTD0rAez&(Zh8nTqV0at7~;e>9n&X)^z>ra(QY>+9^?i};TA6zZIz<|JRxnL_O+ z@8aGxC;bETQ`w8?B^Ley`Ia$r>IB(hf#Ru}OQFGg=d2tJ6QBqR!ZQ~yB!Aou*1-{Dvt z*P5y6shXbd9y#N3(CGI-6^7e7<^JP@THMD-{HiomGL7nnM zikD*$jT`XC@Jkw`Vqu$6uplK*%J`(m~59( z5C@xs*_^h_vF+HV<9n-hWDbLUxZUy6wK`p-Uu;_d&Yb8fcNV##R80oih*kP`>U+Wm Zj;yG00p>|D%gywe{|)|;H({bR&nJ$;H_-q9 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/vs_bokeh_forward.bin b/examples/runtime/shaders/dx9/vs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..6eb0f438d420b55d4ff146b1f46cb7a99fd61bad GIT binary patch literal 789 zcmY*VJx?1!6r9~XXYF9={y-$IgeC%oJ^>mEkN{(p&O+D-BgjSOBMrsUQ<$FOB&h5k zktz~D4mko1L9EySuHm2Dl!dUj7+0&O7~I7rXu5pGW}_d3)YD zNxQw{D2aR@SG{O92kB9y>Yjhl6r0!bwOqpL&hp9^ws$Py41dz&2Ds(#Crjkw-(|@< zV`(zNT?)Z<&C&?|6Wx12jK>DXpI}tKs%T^bpM2yek#TX_`PNy$Mt^^ho~8$9$=vpQ zvbNq@Pg;k2-QFNsO;3LJj|mnRzAj?C1=N~|Gur(C++Wsrv7Ti--pv8=P%tT{DqJJh zQ#>{KM6X~y4jNNo{f7+OGDlnW5i(2FN|`iNVjhPuvGa)IM{zc-M&wU)JAS`jS50 zGZ!rTA;0zh|MOe=%6+EuhZzdf`F&nzsg?VLti_cHXZh}ybBZdDV&1}6$fGzPetra- b3l96x8Yb6#2hOKQJ#S(pS#(t4vZVSA_7j)| literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx9/vs_bokeh_screenquad.bin b/examples/runtime/shaders/dx9/vs_bokeh_screenquad.bin new file mode 100644 index 0000000000000000000000000000000000000000..0f8b5da33b8bd6902a44abbad0f61c92b35f8bd5 GIT binary patch literal 319 zcmZ8cu}*|Q5Ph&*VMSwU6g#gm5L;tZ8VWAC$Q_o%2u2KK4S3q}344EVwf+=^-vRdq zV@#agmzjBQW_C7Bq65(M@ztdTcazmRFRHXGK9-GsaV)^0dPom7jKg?}aCLKg#PpsJ zP9({(1(tL^VH47KO^E#)3&rE`NUzv?n_Xl+7Ug53TmAIro!!m7C{AK8d49-?#tU`* zT2>4K|2)9g$Fd?J~NpD&i;kkESxkkU|LQOUmFzt3RxuAE@OV?TDvm;DM z&I6hnoHQ*YDSvPPi`Ngag~4?Mi%m}5Zw)&jcNo1QB$<@e|F$%aYb#1G^&uV_zx<>p G=j;vUO+VrQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_copy_linear_to_gamma.bin b/examples/runtime/shaders/essl/fs_bokeh_copy_linear_to_gamma.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c51e6aa5950607e91b3e6540e51054d559680bb GIT binary patch literal 338 zcmZvY-wJ{-6vpi;+C#*-oDf#4uB>i~=)MP#rOO8Dk!ji=diTymNvLg%k8`%)_i+xV z;|RywwL@#*42vMd1Pw`hoGD$EG!LD{aMkfOhf0M4s-RT&5Ya?4pWQNjL6bru(>zf| z?4gDDtU?_@Ds=|jWiJMhVBH{=P^LM7gSk)DPQwO>Ti%Q!2yZEqzME^G|3E|!BE0+K zNuV5S;PPDX4sPo%!Bn{5GjF+S_5}V(x3OtI3a_@g+PGeAz2YP|7#Z*EsJ=~#@n+2V E0H<(e4*&oF literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/essl/fs_bokeh_dof_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..3c4cade0403ce5217c315bcd666abd2790768d2e GIT binary patch literal 554 zcmZ{h%}#_c6osoBV;4SxxyzDZ!@#&g-DoE6eSn66$}}mIl;6?#&OU;d3KM1=OBa{Z z+wYvVo440%bNlo_a9onBTBJrBOD@Pb$xSV`y0unj&rA6m*Sf^+Rhh$1<+}YlHVb0fmg?Qu0_voww6x(1OziVZOPiQ>MrBYWss!fIPYR$-?@ZR<@`+V^BsN8b zc|a}AGxahldj^k$Q}zYOV(?GumpWB-KV{aJjpz(=R}F!{~1J8$m2fizh(*JTR(*sMkHJcBGGH$`giCDnb_wE}Je@oBd TaxFGC$=zdP&cj`QQA&OQ+X1R7 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/essl/fs_bokeh_dof_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..ef0b939a69954b67529984b870355fa668d8399d GIT binary patch literal 879 zcmaKq-%o=u5XY-~P)Yn3%ssY~Ay61Do4#lk-+eR-LB=)`SP8ISF8klTb}*P(god?^F%F0E3e(Vsk4)R^R zoWmlXFEUt1p$%)ljJBZ=`P3Y0t7SYBc`7{))Cs;UK51M|4XyF-t^HLYZa=>f6#>@8Jceq6C_W4bb4bph#V= z@(4L-1){fWVa9g%!_X9koSKH?s#k|gTh`p;TwdXh`f|oDlkpZAN3t+MQGim4zyQ=T z%qMzMk57ypW75-umj8@jsr8p%{luW#Gy+4(ntGT(2mC0!c!rrPnK+CP-((E-DpgBk z#H_UNxO!xXHXqoQ>&dNYdyZ=ko>j~PL`f0-7sPb9#XY-!lxtvG1GRM>%kui}F^E#B z=`s?~Hc_6?zFUaj130C!q05jXtbvB7O1N56i{!^m=0=cj-yp|cAog- PJeaE~#1Ku!gQk&R(GmHX literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_dof_downsample.bin b/examples/runtime/shaders/essl/fs_bokeh_dof_downsample.bin new file mode 100644 index 0000000000000000000000000000000000000000..9ed1f78323a842cfa87b4c183420a873d8642cf1 GIT binary patch literal 451 zcmZuu%TB{E5HxTAEcF-A9&MDSP1{?53#j7G5mk|ugd~z3Th60N5#rZbho+?!*2<3^ z@64>detW&ucTW!l#}&D0A|tF&)#Zc`402sXv6kAB3*y3^lhoAtc>cy@D{Nns8RSKl z8)(yb0c}*LU97cD<{@p$;zL{IkQIyq@4<3&geswoOzq+Y_Im$AgLFt+T_m7HQ3B)i zlLAP+9fVgdTC?kij?hc3S; FB|nnEhKv9J literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/essl/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..6e09dc795a0d19f2e76298dcbce7a6744f06499a GIT binary patch literal 2684 zcmaJ@O>f&q5M_b_Z5i}06qDQ1mT8gH2L(B~*a>=QFLlsMVJsMFEfb(bfucU_Apbox zvs~_yR%;kYxU)0+=FOWKf4=|Y*Yfv|Hy-}{ZA&D z_RC&wvnpHf-u~u!`0M?=lZ&z_EAk+x_rB*Hvg$eCtl%kMJ#FEj7BL)Ttxk)wtd_&M zzu)AKWwo~U5!l!N$IM8q9Rri2#`ABKJXq5%TW--u;d zgAl?IGh8^*4PTA{T!J9QizFI_!vRF&8S=%~8les!!j~XGQt4I{hqH8+4q%#wagqc< zK#yI(D4CAaa6AskbrQyD5~br{-pTaFQ6L!9mmeSwli6%GNdoxB$Q}J5(T@5emU~~j zU)627-_$ZQlr8!=9Fg83tsy~D!|%Mz=jDYlJ7x@iOp@EugK zQ)ll8L852+h(aSZVd{7RtqrZ6x38@r+B>8>Cqo2wh0QT$HDP#Ck*>%-Ksbeqp3+ejHG2oPL zhlH!pUNunPon?kJI=3|_?pMPB`kViv_VI~pjZWesVF<69FXkz4GLC73Q&H(pI{k-( kH62MTuam{nnq7Ux72}6ih5TG)t6K_$er=Sw|K0b!A5W7ThyVZp literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/essl/fs_bokeh_dof_single_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..2996ff6fb56b9137f64702cf22217afb791bb6ce GIT binary patch literal 3162 zcmbVO+iv4V3{@8>+IrDnDEK%^99b7Tv5@S(Bwh5O1&U_Tmm(0f^4Jj|dkk5=F7})I z3*~Sw8mVf5HVKjpIlRmv59trjKYb^Dc>mzx*Vo=?pB+km{EZjQo3A_%f4sL!^pT%< zWn|y(vu$4I>)o60Jr94pZ+2NBDp5-dX@utm-!`x2{O4QGJLL7b+^pcWT)l4Lz>63T zS;J3-5cMLwAMH2gQq=2KKZQ1%e^FCrtsWgqLzUkjQS#ENcKLc+@j8A2o$j!TGQS@k zM7e-@Uew1lv(LE~K6TIub$rvpwkvFgu#eVmzC^tyU>+(x_Yg%jN|?Pu(RD3QhY2bO#a7o1g>Je>qo#WIlqab~ zjsbH!t9j*3p55VHwyg7_(V*|j4O@r?!DkLl2^}*cg3Hl|YhaSgEQzKB;VkWe7`_A- zA0eh&Q5>Z6bUuc=c@QUwEypyuo6UpS4C{IYw?RBlqWR3f$KGpS`ambu$Y8R*eg|=o zq-lDa`0!cQw%4!EM0)Dih*;O$EPeJ9vUC5wC9Ja-1CEcZAyV@5NFXvD{!r`8Uxm*-|l3G0F+BC zdk2RH>OHKEf*5C>ZerOtx+?*`0Izm@@D5|LugSZNU|NltI$nX*p|%ry(l&&>Bm2&I zA&rADm=U?rz3d`YhZaLJajHes!kpEUovmb^M&qr0={z{$TML2gRE*IM?DgP`dP$qE ze!w$L$JTR-cFb8KNGUr3=9Y0Ex~s<5TSc>ok%N>5T6GKfHS>*wOvphj(Wpn9TJkut&_?8N6|%aYR{X zfJoF-=f~OuamC0Ycn|KhcL+1!Nh4*9V*+~&k}2+%#d^m$Q-}IhRf8{9Jj`M}zsyP2 z!flfqT!A=Ji9*gwH_`RNFlCMD?q}#JI%fheq^NnTggS?8@D|n1oj~m!W_a5x);H%NVD9~6$<$adrp?k#c z6FdKpU0jWJ>-Yilgl&*+k|-CSz*KVFri*HAn63|<(r&~p(q?f8X%Mf0*`wzXK$1Px zwP}Pe!Dfl+0j;`7H(2fxvjQ;x!w1j-@gZVH7F&7{9H*?%4^=64d4we}BmRVl;o9hS zG?1|#))<82+He6J|MWu+NVWZ*7mT45eZs7O9>AoRoNW(KRK^#bxT;iMWDIH%JR*pP z?BR7-q84TfIM#JI5$cmrUx!vNhYBP8l!Q))tXh~R*(Pj8!e&FpUYKXt<|J&6VT{$q z`%ZNzVQl<_b0{m>n%0gFs2$z4+)Zu`$t5AVq$HwC;`K=sYfIuu_fsSbLb9MF^A=$0 zls23g4rPlFPe zn)BLYF)@J)d!jeM#JY`%yY<}bMx;T}G=kF|=iYhh_EB6&AxWB=w)M1u% z54l`K##k58)re!j@c`IlPr!n^E$iGv{dOAM!vnTY*1?1$CV2Jqk8LB8jg>Rk;W$hR z_ddZ_M0X6h*EZWnB-g?2%bO{~)f7(gM2>YzFM$xTT2+M7>D)At`#4Tr4$OEuLpt4+ zGz#M#rl?*?rZ4my@tO04`eA}}k#OU%9nGw8rS~dXUgyE;W0qt&u_4-z(a8D-W6gxQ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/essl/fs_bokeh_forward_grid.bin new file mode 100644 index 0000000000000000000000000000000000000000..f78bb0c5f5a3670e79190bed204fd153a5e76795 GIT binary patch literal 1105 zcmah|O>d(x5T(^#inRY>j%GJ?fsmw9)zeDV9#`tIs*oE=k0IV+g|s& z&jwS|s4YTZc|7mEnR&js{dxB1@4w$3o)houHZ4__7r#U;%Ju1~=i&9(7th;?x{=kA z9_8|JMZ0`Hrd?X8x)jBge-um*+~oVYQgs%65|6L^Z6z0g(y$2)B;3XKNLMnWQpk!} z;6MB1ikPcH)hRfLx+Pt|fe7#UzB%XAI)G<2o3qm*u5Pgp!aTt;# zhUOE7hTdU-6wy~P(HwF?y>ygvZA(mofS!%~PWJ>VLOwG|FO(PS{5T%*xQ%P%ejH0yLQ@bOxSVHoW$86kq!M688e_egYhvwy!MtG``!S=%_-*R~tXaq-*vx>;3jrA{Qya3j znU3t~86aW9krvWg1Ziwy{AAcafOzewWAIpC5MbD5!gE6g2%k)~Ax-<2MS4?<sQwc>o9lw-w8T^#$BOKcK?ZaM#H)$3o_X#YXHXHq485 zXN=2cDXB}jH%|9tfkWWu{AGJa71ve?N8j+6pOVJN3^kV}Mlty&h{_x+?v>#ly|zKh z=4n_DZ(L$@3ZHG07N?hs4xcf!^0gDe6CFiQ dYtW>-2EML=!#|KKwsAaP8)e)X1^o{p@CyO;5r=6kH>Tp%?#w*<)+8Dcda^hTB8E zZgG_~1a{t=H#7TS`f%Sz@cR7v{y0bdGG=)-W$Cteh7dgHqKq@XNY_1#5IpEoey?jL z1%FX>S3QIhAqw_XiWINda<#!#IuCIY=e)?0_1Lk%6yObiWrFeCT0o#cq`Nui#UdCx zRZ{F(zBKtO&HoD|xcax58u-9MZsKI@lsS6_D{^?22#R%FEh^8O&>llFYms9pCayw+ z*_Us9RO=q%Z=q}8LyX25w8E*P zt)b;Qp2#Z!#67uhe65O!XP+4w{GnxLSj#<`sg;L{of<6E(D4||S_z@|xAn*%h#DC| z$9g1XxUSkz;3al0waTeWZ@r4e#0O*l>Y({3H*qu3(?)+_N~sRF$`JB)uG;rdD1Ea J3Ga@BegK2eYhM5W literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/essl/vs_bokeh_screenquad.bin b/examples/runtime/shaders/essl/vs_bokeh_screenquad.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3ca4390b15da6694b5080911f8d2d3910ffe447 GIT binary patch literal 347 zcmZusK?=e!5RBl(T>OFTv3e*fy;VJX6og(&w6R@jx+SL7D*oM7)E03GOPCpEW~1$T zAb4oBTJ*%QiVYz3E`Xmx>_M1-QCNUCmNyBlSpd$I91+h#hChG* t3`>~#oZi7M&6Ux%ywAW>kmm8`eGl{APdH4zuH&b=)BWYvx%4ijcmM+waCra# literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_copy_linear_to_gamma.bin b/examples/runtime/shaders/glsl/fs_bokeh_copy_linear_to_gamma.bin new file mode 100644 index 0000000000000000000000000000000000000000..6334ba44a627dfd5222f1bb70f85b6db4e9de4ce GIT binary patch literal 322 zcmZvYO%8%E5QTAN>>+fPB_RYWu244`;@$(03YCxmCFNh^-JOyeS=cts%XGf?CJk@b zm0X_=7OsW0tfN@wQlZqx+Thi3HD+ZBoroE9Q6q*}N|ks4Y0K;(RRJ|Gs$3{`0fPsm zlUV`<&q|;+c@faG4^2^_TeJkf+ALnFrarea^EP&)i{rqDLirp!{Cb wudlA#=p*7C^;~~HZ3q5IdrB}Mb9+6KnbhrdR+>kl;^|p`&F>M%coSlM0D?7N3jhEB literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/glsl/fs_bokeh_dof_combine.bin index 25a736df0fdcd1c0af2f3c4dc6225c7f109ed33d..82ac84e806b7eb96d39955a3d36c16062a7ff158 100644 GIT binary patch delta 135 zcmX@fJe6gFoCIHSd{RznQBi7&bAC>K5d$Lw2r=BAXzs%fm6+JQ8pfP#$C&S#3{n_x ts8>;0rC_U2kYBE#k(gAhfh4S{qfnNbY^-6RXJQJ5IttjBlb16p0RV{lD4qZS delta 64 zcmbQra*}z1oFsp7d_hraS!RA|v2%V-eh~vB0|+tnO*Hf2fXPhkTn%SWwr0$q{F6}z E0Hk;o;{X5v diff --git a/examples/runtime/shaders/glsl/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/glsl/fs_bokeh_dof_debug.bin index 1bdb83b4d2afd83346e1a6dce32dd3d4b72eed66..cdd6b1fcf56d7b5e03ec95c6720be03327531e35 100644 GIT binary patch delta 71 zcmZ3?c9m^{J(D2wM8_>01^ML)8i`586ThfxYU(JIr6wC|80eXpf}xHAHm0WLW=Tda FCIH@{5!V0! delta 20 ccmcc0wwP^#J=1-riH=(){!`iP&B(hpPZTZ-dcZ9!homTdmqRKLr7PgI~4ivpT8D z%6{3)$D%1VyEnfD0e*v@cXCx%bwd_p^y6I+9E#?t+&;iTtr9rMR-IOL-K;0e(SBRr z*Ug4BQ*bZ7s^E8DX!Pq};`Gj`cE#qgQcZFLCYa^uP?u}i6y+8~IQljM9ScTsO_9iW zi6VD`_x&&d?yI_Jp{nc0KelU`&~+#Jr>OQyrcT(_ZBgBF6u0HGlGA}o&YYn5y1Q1} zRyBNc;S?(;%}9zErNG$A+?=P-ZXOX`86%dMfIVRRm`uBGRC4pFUV|_=jQzC6Fo`B1 z*%_x~Wj#cvr)O4qLG<)T(hg$B3n&rJ$&uYN8gho(IMQ(r;XxI~LLLcW11AbCxxS=# z5kJ@!V4ysaEiws&u1fo_Y705XTjIVcR;>`I2iTQcv94PXLU=TUGmm=F^D%^T5X4oH z#?xprhIp1EQhd$OZE_bqhatjAx8fwqvpgHaB8!qV4a1NgJA-Mum}Svy7Lw^aO0qQ0 zX5q4zmSc0BNO_Mn?d5yLY(wZZey%x)6o!WY-$7M7_39lVh|3HUL1lR)Y?02O)1kKa z_NA+KcZW#j<%WS>Am?XH6?9J&(WpDz*u<+1HxtIJQzq(l{kqUHi^?K8VV0{Jdr>!n zF?ISU)KfR~_2|=$6dpPbw+t=*XQ&8oa$@Ur17N`|Lu=$S?F^hLlqO>3di<a_?(ZHAih!CbL2G=vY}k6Mp1!*)Yos|u$&bQ$Ix z@fe6J{uIYF6C4@+is>F!>jyQF2~Rr!dqUSeTr@d!Rn17#StO?EO#(^mf?~$@lfUR5 z2;mYen|m*vdo=W}>ssLKGdsfH62dNwbJ&z8EVw;if|>Pb?GVOQf(W^QyUyv!L>f)7 zCj{b#=ykWvGzI)M9Dikbh!+bNyKPuK-yXLS4%u!D_>3GB0{PtALI|UGTL;A*X)!>1 z`zLZ8pSaY~N!$Y*g5P8bk7}E2LR**WN&i6UCGS*6qR7iUv8r~zUU0GajfYBpY>J0# Pa)frBm*wdDXcYVhz;x$= literal 2477 zcma)8$!^<75ak2`W};wzA*f?hQrcWZnS$(GoC)TTLl6hK1V)1+wH*SK=up&R2mbd| z^~R>;0b&TUS=F`ld-aO`aQ*MA`pvtG0DoQvgRR(=a{pN_+82KW0e*tl+Vn*pWMyrC zZN+`j6sygPzk>ij!JiwksH?i62nzcADhPH(^H8quU?&#|>_jUMi@I)>(R{F7m$!AZ zBF_Z6iqAS!-4l#I@hLH-B+?n-h*joKG@ae5>`dI1{Mx}4nX&Uom^2TBA%nE zdxFb;n*g^}U9_MRe=6EmHfxbk(2)rvEh68N8~#8?bZk}E_y4SyBJG>L7S&dYNoQ>9 zwy3Vv4X(>aDY7G%n0AKZzs;3gV>9Yx-Z>VXbw*aiHwDFuh!J*Wm_WO_M`}c@Z*L#) z3W!9zZDjKPW4#1sKpgv+j3MGtNSSO_3bQHr;o(vFyf%9NJ$aA1#{+0#U6Q@Zuka94 z^u}DZegY7>uo=o&-U4G0&*0*imoS8%cmRNCFqmVUI(*in?4YXZgNm=N@)O8vBcDy= zNKbFLx?Dej?>F$|GHIu$2;me2Aroaa1A(=ZIF*bpY^d6x4mL$HQ0 z5#c^1xlm|dtRJ;-3Y9$iAh)7fk`O)bv)T1coj%CS<66+}}k%k4(QN)W%r9e|4= zpf*36mU(>kE{r@_CVRB?b9m82h~dR<2Q$t}oVXtBBR^pEMUA7XNize}`5(|v%=P_h z$Js+l)m_dEBmPHp%v(!Hv(v}KO~Dsh$S66wzXOQKwi307+u~}2bj3+qzVb4zm8TTi zqmQ~YD3}~dan^=`@DBXl<7D@2u0@4w4&05Vs^c-R54)Fvr>+|kzC%%NW|xw zJo|)gG6w{_MI3O76}?7m<_>CMb~xl1XIf&^L;vb;!KM%4475DKuQO70R2i)44r?Az zlV)G`HYRi1a|EmMfb=@U8JNw72|9pru_8eBIY-8I!M=^9Ji;Cr!iFc@X(M#N-x`kR zRw+9*j%Yl3X!!BCn^FH}Isc}PJ>3ym{v*yf<~n0;W#Vh};5t6ivLASw$EBd9jHG#| zEdpwq)RzMu^SHl=I0DpoXws|RP(MStvgy#j{w4coRm)AkCFPc-eet|tNQ`qM%KbAr? zi+DcRt*fPIR#Gzt7r{jZ#qo_sMe`xao}Fr2tTr`o(nrw2T~<+?^TA$J3s@D^8dx~^ zJOC9Y2KgX^%#%5a+zH-vGXPlDqG(|$%H8%aQLWoNl@|UPZ47K5vghbTdS~@i7B$Z^ zYo*UUtFyDJh1mSIUgYDh=%1qA@qFTht!RrnzjcD*mdPa9t~OZ9JW-gK0|v^<8ZigP@G9V+B#KAOhae2$29y}FYwV7gs~ zKB_~Aqd1I?VHiq(R|-rGOE`oZbUy_A6{5~Z_87`oP23n)|1DBoeCtH``Z!2)lcIFn z0}s_GVfG3=tr15ZMkkGAsdQaX=*N06YN}*Ud6Y_I1~AoK?I+$A`5oS3%cdw>4fM8J zvxR68aOTm9Krv*F&W8}Lfl2PMEEyAWlUWbD_&GXiGM$9;PLB6gzX9r7t5YDg@d#K$Yulrol0v8Z<2KdW_~5JLcbNzanX-nD$>bz7vzJRvF>YbWh_ zph8*?NV&EW_%zWDjh(=^L%=(Brj71o;Q^{8*0huFJ+%}qE*0FTm?9 zzj%i+*{LnYx`i@T;Y|iHlEtoggkt3GOQ%j-ua`{Ea zlgtM}ab&)-vECs;Yzku|PKo~ZxirS-{$(1OEM{u%DPNlRs>mq~T<0v2v3Ex9{~Wr# zr|ro7??cxRKzmFzm+cWF_QqwJXvq2#K%%5`)*groMwY-^@MpBghYOxGLdG~He1{;3 z;IBa}ZHn`-+l~rO+r#Zegef$Dw3r5 z$cUM=)O{QSj+ZplO}LZjfF;p!IUyo|;*B^^uUPkLL1rwD#uNIMuz&lndi15v-!;X{ QgA5IwS?BY?m%$+T3cO`f$^ZZW literal 3052 zcmbVOOK;mo5M~1uZ58w{6mujknG#9KB4H;Nr$G-r1a;6$U@TaQatKhON>Q?;z=!UjW{IC^SRaP}=kP@yJ`KI}-*I!>d&OWV=#rg^Mc^1N6H2EQ` zs(LZG9qiV{vZ_}knL-=EMFGcgCXvy63ZlnWv`tr=GOxpTpn|(B;y7;y`>I&LDlOLF zdV?9`V9HF+k{*|n zNB`s@(|jrj{UlD}5zJ#hj3QGN(`Y`6{n-q`x`G=&jH4i)dAA+R?sz3{66mOhZy@xe zBuQ=}jk8P(>9p=rz*kn^kvd%zyR8WLMt&1_07i#^+WuWPuEpo&;zg`&+PXF@ZAlvQ zqFbS=RqhU0cY5g`(0f*4p-R%YOl|oQ<-}Z9PS6`8+*VqhIpt$DTjbMRgBwHlN190f z;Yf)ZBs}FF%}3=pTZBV&3?diWa zC|y#@V#v+Fq#sT&eY>$F3bKB65=t^>ZGjt#jx&L`(CKHUsQ{Vp6grwx5E+XM@CaNy z+L;g|Lmur69WTUK{fs zj6sea5(5H@tdI~mQIXq;YSkuBazlX3Y4p`J?V=Vi)h|z!sIL6vOAwn9m z5TTI{yL)crPiXofYS@-thPcf?Iqr9 zv^93kMBtI5Bkr{-Tk+hEF@bNZXC%!!ZR`;cTv7&jv}1l>=@$e6g;Yp2yOV_W%Os45 zASxqz`KpJEhCjj>F2ak|q-XdwzcCoyjuV~>+R&5@>0z(#<5YRphd2^S?x_^->-6cK OB0~RKjuu}A1Lq&ZBY%JZ diff --git a/examples/runtime/shaders/glsl/fs_bokeh_forward.bin b/examples/runtime/shaders/glsl/fs_bokeh_forward.bin index d21059722450e9d253ade19f7d1150b62a5b2fad..52b7ec4278a839eb3ea1a18547f9d1449b435398 100644 GIT binary patch delta 137 zcmbQhe~WK|8zcWl_q(ie8X6j<@wxdasW}0OMTxn^(FU=46_r&AS_)hW3JR0G+1!MI z3{4>y_~gxOqLLsvO`xcTsh$B)O+kLSf(A$8z+_q(j>1^ML)8i`588X8;*K%k*f8lRh=lA05cSd^Gs9BmM*S5aA| zpf%Zv&5cV_K}$iyK+jM?d-8oYiOHMTL?tyfLE5wxAev3}41h|&MoxafCe8*HRhayZ xP16<3)YMTh&@<3cFw`>uGL1~lfHcSeO(3rILt9Yg-MEKquK)|!Gip91&zd{Vhs&01t8GSn9RqlE~=oVP?B3vmRJ;TstIIk z80Z-)XipAe);87D1gXvRNXaiz(17YS(}5^cn7o=E>^hQQX+18heJ;nj_FrYt4fe#`oeZ!o5MOr zXO44Mu#{FAf%B3mOcSXxTC78G%FCk6?#<7C3jwHP!E(rON#qu%1U9E;07xaORKc2J zwN!M83zqOofjxjaHk4yEgzJ1$Ckuh|XRL4lqo~o20ymCl;Ol=#!McnAd`}dqQ_e+Z z0F@*HQJ%6BW25;cVSl7_rJ=6OfO*J~>eDDa1)<{3|dX@5E%J`P-6Z5nr$EQq#)8Nqr{05}eGz5&^8 B(TD&5 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_combine.bin index cc75385e93c88b254edfdf79fe21ddb992b01262..c82181f98ab73b5ae8d03bfb003305dc235e7f4a 100644 GIT binary patch delta 313 zcmcb>{)K&ljfQA(d{RznQBi7&bAC>KQE*~zK~8FsAmji4j0_A62-%5gDiVCCY6XA_ zK)`q7;!s9*s40_}+&N$dPF7?Ro1DgE%w%FQc{Y=SimADRtpchUdc|N1HQ=I?8JTr# z%ng7F3-Ze~5|fHGax*J5;*Cr!^eQT=bQI!^OwA#zw4D6J5@U_D#NrYwtK=M@IY4Em z=93edMHN9RG<6i9N(}T&Ou^91!obqd(#*u%XmSa&nwhzQUIoZRAYBQi!8QQxD%Z5; aQUHRY)RNMoJcazy5^JtnE-nTJ2L=G`v|dgC delta 265 zcmeyuet~_0jh0w(d_hraS!RA|v2%V-eo=5@Zb43Jks#y$|BMU_3`o)wQ&c4R(Nqfn zm4JZS#s#5_9590>|6z1TaJ-njm<&xOPh)aWGcs1NRX{UBuNZ8j210o9FD4y#BTJyt z+{_A%cq2m-y^6{z9ff!!BV!0FEhj&*#8@LOvAD#_Dme#e08klFvRpw|!BEdYN5KF@ f09l%oXE3Wt8CmL8fVErdRYGa7aX?qyV3q*@0>f0f diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_debug.bin index 8aa6b85d00f2e21cc194ca4c00ce65eff22b44f3..589225551a7144c9707385ba4a1f1f21e6ff9320 100644 GIT binary patch delta 131 zcmeC-+RQa!HsgeibF7&pjEyW6Y!%XS@)JvpHB$0RGz#*|H4>AGCqHL0meSgd}ihX6NzkH?#Wq`Oi1y&-0mv=e4G{@k1uIe~Gj?KhrdPwC~&aKBT|NW&qej)*_SW0cQ1x*(^g_H{!UrHg9$x9 zz0tJyS&`=LO0d~RG)W%U%_`59bG?_>*=BV`Kjz(B*V{TPZds9RM17y6g2`Rix?VR` zn>H-|BQKXpu0QJx&pI!Y#$|nR*I$ceJxB7c@EglnTY+=@6W7KF@Q53>39fNVAD5b(kGMWc2-wJp<;!iN(GhL8=0pogZUNwkawz2Z&8s zE*?Z~aFb6a18*$$tpLu*r@0*|+>oLq%i18D@g|Sk&;jtYF~B)vRW^n(j>s+)a%Rsk z^JzO_m&}lm*@k1eCZ96Pi;&gOUQvuM%%{n;BdTp!wi$&{$hqq|R_Jrbo3bD@ZO7r< z3OH1*6L^yed7`(_^jtrL1Z&^4Lu~Tg(B`&hxxP0lHE{W0?XWm-t$~2ncDJTCR1O#q zYikeR?(yj$IMGMIvlUVaTZ<}D1BKe5RsZg$JCJ&P%G%1g}I$l z-VP~oT-TlD?3Cq>l*%%+u6>-G%aAFn5onfC+ej zZpS&G`%X-nLwXo9fn+O^+)tZ<677l9yNMG-$F)%a)i1P1vWDEvLj)i`(B-6G@^xw_^*X{Lx&>}*vK;|wv8(Qw z99nTeMW+QApVW|ZjCxa+&0XCHq)D(!{-{>FBregr>jURLD)ng>%O)O5wa1wh^HJ z)(=b1?5-qImV=^#ENgaV&&-}VJJkD+f4ppdo?IDteP@{K^tLSS{w#8FdSV!O8$Ybm zo2<=N-RTQvyuiXM74uiIDXP&X+LJGo2qDkI{EsQ_HLIEE7onXUH)E2 zzeWhX{&{H_zm#=etrrEmS`{Lz(oQU@ay~Kl>s`58T+oO8X=0k|uB@+Fovn)QCd&&Z zcU_uhC)#x`So(X_%(KdTG#OsYs>y`U_J_NCx-8Fgu&xe1b-dZ7`DG8jsWS0FR3Eak zPMftDCYfI^H|hH}yZ$W`8E4a}B*x;S+4CS}-N$g*Z7PaQ-Zbrk0M=d6T2+(RdyFOU zS4Az@K`DLP>if!?;XR#pBD*fqvYySxEN^O<0MTUq%F>mn(lx^7>*W$jDdCu*7V4h6 zxRN|hm~J29v`Ytes{32N76WBf4jDGmN9|V!5*huyV~?P@*ReEoe5~q(w!*Q7VjJUR zc8{?!tBTvAvbfDhqaGSdL+%2MFzvg6!w+IOvUz7w%y5$*Iq-q-Tv*VYwP=K84KuPc z&78egnEh}!V&}|~l)09NoP5ljAVF3Acr7tLvmZudB~;gPTsw)Am~%hyoH*oOFlJF~ zyPn6n6LGkFFA7E@LZWZ69r$6471*Ke#@H12vCG}S@xx$n)G#@;Bjqob43q`zYJV18 zn>(}bN3tuA@{{_LhDiik9Gk1%dM&^jfm|E|*{IMj5~QfQ;y9)fA*j^py_v0d_L3Y4 z(k)f+l6I;xR!ODpu{7ekU>y)~R|UXB;(%y&His?6vblfIi@@ujdW#COdudo21kQo& z9oXT(j+{i>O{*nCwUhMm56wq)L~RN&UMdgTgciWio*)Qim{d6OOGBOj#lcXOqcTq# z5*ld_`?{k=tAZ&1FUp{}$DKOJLSdwk?sF?}s}ld1>W8gWouj=wagcEomJk(X6tdqb z>-TY7UnW;irRV0x;Wfr}-QL%{!7Ko^xRZ40<=4Rp=rJiD8TRI0I&j<(qMytjs!y{T zda{YAZ99K@&cO9RmzqIdpl49eA91Y_TBDYv1UJD^F|l^cKOrjt=rZfX+qZdzDQu<4 zGbWis1~m50n2U*YjLL5}fp7`y*v=G^BR4J^M&PR45Puv)LERUULky~@Nnr0mk3G-o zR!t*5b)rC-q@Fi4OAtrj&v)Mw%)Nb9x@#(zix`CVSR%EPkF1?demz9Aa7{I>;u7u59R#?K?uG>pHEe*r>jvbX>M diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_single_pass.bin index 561bbdcc862071d50136fda49cfdb1dbca9b4aff..87421a24f67b22c16bdf700a63d8e86faf75fcb3 100644 GIT binary patch delta 1110 zcmZ`(yN=U96jfLtaTWn9p#+-j?DFztgLnLxvAqdMbO{KCRohJ)r8f%KOXK|^(HE!%LJYcbCpa-qfA+2H9 zh;?0!SpE-!GGT_veUm#rH~Gx99MiK*O3A?nVGIbPYO3E8y7zo0fW#FH#B3>Kf zl#E`rJ59Y6cCJRvR6#h8TAu|xTfY39-Me9^*`k=Tu$? z$hkTTx;!N+FllT;;}yZ6Y?F{J>-pUZ*j{2YNZn8)ehdHzkT6=6_qT698uUkri15pI p62u@PxFpFlVHNm4pvHJIg|k|gtuw>n>J=XIP1uTSQ90cve*l(h7M=hA literal 2970 zcmb_e&2HO95SD=eZCD^k{Q$)R1q#w;82*clU7d=wmt30O1c9Kal}&&m6>@3IHu5fg zq`Xl&v%3_R66N#|LZ&&h!*9NwKkoaFf4!`JnO#rddO7*AO}1&BZkqEKWby)3TASSE z^!{&}vGcRZ1b&mBgz6uJcGIBsgm34J3FA4nS^M<82G|9`w!X#N$f(RfoSig~E!-}K@vt_$p zgHv>965xWlcURXujx!?D33hVnv?0&4V(4(hMif~GB&!JNi3N$*o2kX7m?4@WL#OT* zl0xwBck%>j+gAWdrj85Bb=t6Z@3I1%>ALP%HhC+zZgt%=_ZHTJLEaF#EGyO$lyoUd z;wHq_QgUXJg5J?Ww=LT+tes(yi!uC1le_`vCV|@tlih%Q;5xuQT{b#y#2Bu5KJKhe zGp0jp=&Oq9`jD2&q8ka;Yn3sLP0!E$zE8GhAH~V)g9N0qd2l{Kk%F= zw7tM2)5vl?&$gYZ4NJZ^4Gg}2e2T2V44Oh@|9cObqYQif0asz6~B77<0%(4>D;^clovirYQtPw2z0 z5wi-K9HIryhTY5`2Mn=+`6tWT!JLBm0^5-j0X@n%O=BC}eE)fe{J;B@Q+NjvhDS`g z*goD@6v=Ub?_mBD-06%Dcu_LAaFiLG1!^!7@MFRxfEk?NaJ?Wd%)PO^J)d#JMXa$m zvA%H`tNoH}@*P%N1fxgvA4(x+SscGkb@)iYAK?2TF`7+PvD=2xEmn#LpDmbf*hlbu zxqrq<+%v>h6TCvO8BR#(Prd}*dI=%%;y4cB(_s6+b!y9T(1re6(|9ZsF}5D|2;iUi z0OKT9==Lr2Y$^u8W78LBK6ZN_2!Sl_aA>d&4scL0{PZZ&cCn``(uSXI0aa5tB$asV NfU}|oC)$4}{{cS`EeZet diff --git a/examples/runtime/shaders/metal/fs_bokeh_forward.bin b/examples/runtime/shaders/metal/fs_bokeh_forward.bin index 92f9a1d70e0857732412489f59f3a7b7d7cab522..67e3f1e101d09f5bbf01de8de7e35ef94c8672a3 100644 GIT binary patch delta 495 zcmZWl%SyvQ6eZI33dZ6C#A=|ekW^5_4^Ww35G!;e z_z$jK_&b7k646j+bD4ARIp^NKJ^!u;^theAa&!my{p%>w1t`w#O zujPm=kTxJCKMqrhPm;2Kq^wK=PK)VRXZ}VCxJgPu0(_JVz*unuC{9S304{=?$S#uJ zd8d0iJobw-Qiu=e`D!gzQ2#z~6@lMx&XFi`hMMP0YYKv%G!k6zy9fH+9aXt9kppn) S2?Vi@y%hw%53i=3>e4rn3w#6s delta 550 zcmZWl%}T>S5TnO*GL)@jKUXApKeYQJaxgO zi78pr8APWU^f4|Z-EmSfK}tqRs4S&=FD%{!3}=FX(Hc35y4Xg#Iw4(3M+qDU2W{;< zYPTBA)BdrYjS=Jeke*tTGNb-~a4L$wzdiFX+cU;=&wN2IdZLk3d&Pb0BD%C22OafU y987_>>4Q`)%Qt|jCu;>jQgrP)XqY)JK0Oc^b#mCyb$m##kZ#CA;Rl}jw#vVl*okcb diff --git a/examples/runtime/shaders/metal/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/metal/fs_bokeh_forward_grid.bin index ee413ef4670a7f936f7739cb2f22dd8bddfd0f7f..47a671d12678d009a4350349f0f860e38a9c14cc 100644 GIT binary patch delta 189 zcmdnO*~>XWg)woX>RU!86U)gWO#Y^(h6=U{@x~^WdKK1O3P6ySlb=`u6fre{NmL?9 z7%RjZSr|{A!KBV?WN9$@5L3crEoMJ^peecv8b*2s3R)lo@{2Tp1{eZ4270ENnwko> uwhEbfB_Kf)EDB8~Z)bMnurSsE8V)p+mBoY!Xooe664;Ie7O}}wS>yq`oGz&V delta 230 zcmeC>+`>6Qg|TC!>RU!8GqcGeO#Y^377Dfs@y2FmdKK1O3P6ySlb=`u6frl1NmL?9 z7%RjZSz1hwhEbfB|t&*$%V|qOy-7@*E73uSX$@+Ed(0(m)V2~Xu2_rk{OVzsi_0h rXP~2CsAm9V8kw2_X^=Os9Iw18g;6Kr+3 zvjXR+C48B;?Q4zih|fjrUd0z9_G>MGmpC>1tw!wpn(^xJn)fy?c3$l&`c^sBwM5Lm z?r7!H&$_h-+|{NAYsKzH&iGNhtJ%2NU8VSI?&?hS;*-cNqu5!#iL4poBN1Y)ba+G*EQ!*%T(0* zHF9b*cZ!W!_bu{soaQ*wWBRzyx47?>M!0v}t%-5+u5%{T7* QbzXO`#{QuCPOdzJzY#BN2><{9 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_combine.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_combine.bin index e46e15edfcab30ac3d19eb2931d3f3507eba6f9a..46549c57df75b3f20b3dc74860c17a1669e73ddf 100644 GIT binary patch literal 1591 zcmZvc!A?_A5Qe8MEz}~|5K%E9pex1Hsz6kL+%EZKl8-xFMdX8SvNv3D!|7YgR%(<|#c`w_ZEZs6m#zs1o?RKjjZB}<5 zw;EACad?;z5#X&xue%pD0(`PlskQc^s8L`3PtploHPjaULIj!}H7#=kei}JkJa{>8SVF`=k`1K79v&Oz)bMKkZ&Z--YZ6{bqEI z3*(KZq-QLv?e*U*p))SQKc(8-OAdALk9(hY#UJxNU(1yID>@PGTkt;nL*Qrorn?&+ zpM4=Ap8X(!XCKH}^)Wmhy$4eCA+MvqAblJ4sWaasA)qJD_W2?Hl? zP2Dil2Prs;a4^$`YV#f+rEtvl%wwNC&RYzt4soBQE8i3u9+KM+R$ zZU))Z;C|}TUtR!MK}szBQY++tl}!xqgmCop`)@Wb0Bk@??6A6}?rD!t$R>ujUDMwX d`}`)QA7aSkJ$XxZP|`2o2r)lZ`MRra_6w@?skZ&Y3%RX6{?A-XDr5=I)rRU?Z*CX55UEYJF$7 z86~5cqoa(3KtG5&?Y$%l^mwbbn?(ED@m_1`m{a|7-|0brSH%{%JX`9^Rj*G%q%NCa=3LOZ#_B#1(AjFYh~rFWObdA2+C;e*J$vb-v*0Y&2`j zNxiWY$H|t$l{fEd->p)}gZ^53 z`U>aqnKj%^{V~jhIbd)<#qjUn6-)oq0=?r?b6J@2KKeC*UV}cXJ-y;n(<^~`9x5w+ ze-_9=-bdo7t1G}08{)obPcHI@xUbs76St;nc(*qKJizFio;H-5*}fIf=x_( zPbv>_?*-0M7dmf(zOE^7&j*2+fN=juaa|8Bf9@wQ=e~K4o{6Pia;@p#rT0%lS0HXc WVD`+Fdgt^#)Jn`RWxnOIoBakSGpfq~ diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_debug.bin index 2d2668bb68374583e6c80be86e35ca8d4fe072f1..66b8051772965216f44c7a2d73e746c469cf9d58 100644 GIT binary patch literal 2435 zcmZXV&2N-d6o>D$^aENcNCiPs3+P6$&cY9LXgjS9#ROtWRpP>oLpzklw$n_9TGI`Q zF)<=L6BmB5&_p&w0S$tQ3-_9+TTR{h2SB0=gU|EMy=B1L_vD`6@0@$?Ip;m^^zh`7 zjn%%PLxI&1HZPT?s&m!aWO;sZu2S2YyL~%{A<-{YR_bSJl_q++vRFU;fA5UG$Gh`P zX|Y@@&oAA-Aq1Y#5iiS!A}F+gvvc_{lHs+^5L#RIb%c-$n?h%J%T!ofLkmm@U7XzAhIOko;e0g?3{%7P@YsWW zxqha?G6!p#nJXQxm1mx>R%_D@zAdYBxm2&LOv&amU+X?Ob802?9xK<&bZwk!t#7Xf zSqbk!pNQBxo9$xlMMQt=ZMKWGACGqHZnlfHyL25tnhrA0hT`H`w`5m+OnOAZLF*Ww+PPhxLn{ z2RUO|{{_T;r`VsP+Yirw!LF~hC;P?7^t=nu)^EUnuB{zP zwSF7V=%>y2#<_-k{Z)Q2;qSm#E?-`ca~*u{y-mX@&W(6RKW*my6T3Co7wZ-~_o=R5 zqV7Cu7yBI~`|s%XB%K%gUC5<-mvD9-k~qK1aP~yMr}_Nm8CC;H;&HqRlQ+-f zF=j7V-ZjE4&f|8lGwgSI0dZdKk2&nXrak#Sc#p5Mn|ya-)BbL}>oxR+7$b3|$eG96 z(eHJ1eYL$4xs&Mf#_XoY<}!uO!(8)!1;yV6<6q;9GqM{_pH=jK=>Eg#&WF4GbC%vj z^hLB{6Sf%);@60mL}Q)Hl78 t$I$h0C2oJ@q!V`_a?aHRnK+A&!+BnR?e=4cFT-z3+rQj=FuT1N{sTA7`Jn&+ literal 2343 zcmZXV+e_3@5XXge?d|DYl&Xoe7_DMcG1}Xo zN~F>~vE)c1o?cq;`*(p1o<0;G%bZEa^XP&2Nan=<-j@EyyW~voNGu&ojxH-QMn6;R zE(@EekO>Ieb79kF@s$!|3Ip}U#uS)RQ(}&jiq=vS5MxZ43E91)tEa1BG&9h!wK0sn z!W6Pu+Y+7QE+iQ{ISfB7`7HS+sg$qHMS7wB1+~vAcu;KqnV|04D%;=v!7pUCFYvD9 zEZ=PT{0?RL)&>4A|J&jZ51$-NrIWi7ss7V~iXJlXEZ;x$pmM#7qD2nV+J_Rod(*L@ z-KkW1Aj=1Boo9P9@v(l`u=S%AwIiK%NHs+RiJb5P6UI_cdGQ)j*%j6EvB zpL+A{VC)B-ox1bwVC-$qeoK2uQYqZNLb`cA3Uy7RN~gzDahWjMhy9^5T_wDwUX6lktT{yB|Bf*a;v~;D;1l2@gXL- z++k)4T;(v6S}VLoJB$089p*h)*tca>dpCA4{bzZ9`pxoo`pa4_|ETs_2{~?bxLrDH zt?JvSow~4*cb~+VOFKP2mBmvYrz~FZKQH`g?s>%9F9@HjejVAQim3IX1Rr>Ia=NCy zR>I;O_@;zjtrKP*(BW#_+r!b1JKE_j^FX~|-XD%wQSJ96^w-CJAf5U-|4=)=)avbz z99J#NW5;8EBKi2CIoFG)!gI5kT&>T9zt7CH_*%!^8T_yjpEwhew{OC&9={NNH#wP$ z^HTW6_0pX_&MS8YKWyYZrJWk+3w491CBCjtPG|nGgPD78|0#sQ-ZRR%1|q+==Kdi7{SqDTj(EaxjR`^Yt6~=%(Y&yzlJn%q!?o?}CiTs2 zd?7I^Q`Jz%-d)}MHgYvv<$5@%3puK=r84rtabHo@r%unN!W4 zj;_9*zJd16-u|BMfvIKp?zuK#df!{+1pm?%E1+EvYcf!J2mVbgUid+_}21Z(#cvG2@n)i~DN3FKK7IwO6Cp=C*e`7v14{>ka!Mq8fKzcH5(S%mOj*N5JfZdSqsr zMCXk51Ztz*Y<N)6I?_De1{2rU{p_z+qWSIY29Q@AxMV)B5YJru zbI#l*labgpob)qq`IY#dMZXSMV)pwmKllCU%rFo8^yT85Dg5F->uA+PAa?J(K`@e#156G=4aK^lheT-Rd{TS{Nw)x9#%(<_y zj$>D1%bWAx+|{O>he~&_t;Ts(!O4ej^%&n`Z%l@h58o+c ze2e!`11BH8wFO^$uIO6_Cx4U9{fyc154v}C4BL8~&*W!u0^PhlN7tN0cX$qR?;>KZ zQ}=$2t1TYA^&Yx$d^-YrAAJOov){e557EWVGy3%-bgqhjc9o@WqC#)mz896>B$J@xa8vRjl z*T~14GZVc8=WlepIkUjT<>M_2=(__xE!EdBtIFs`37Qk#oiOcM+I=-ciO=%W?DuaP5A?UR%QK zu-D|CK*a1V^{DqLbl-G;2PgBpU>`jV<{pa_bl(sCyyuAF9QXVOx_;ihYmFa$wiMm- zw9le^6^ZB*oUy$!?l`pX-?k>1Sy9|`>~x3Mg{k*(=J4j`6p literal 3988 zcmZ9OYiQSH6vrQ@oAZ*l(ojoh7D0v>r72#wsZ*FZHKTXy@7$)jIo;;vMS>Q20v7 zO5au1+d#TeOhT#XO;mOfqWcvpDsM&E=kwch^yeP_hu=Bh?|IJUxoxXAtr^ubW7(3# zs7a&uwC>&BzHeiDTmPhCDe+6Sds=r@dMn+1lSb5~5ddQbeeP-B-`+K8*o4AqTwiNj zPghUxrb_p&uJ+!E!!BKNZov5V@9Aw1cx3jTmsa4Es%polG`wo|NE41uwds>8;glw( zsv`OrDl=SD^QPvxef?YK-Zg)o{J1pSPr;36p4BPcmF+vlw=k&#*^NxVSB@lT!&5ci zzrd?O%X6y9)c|*OL;BUERafxb(IEZ|_~xD4J9>J%8@hVhc3|RNlf)fY7WE2F>Wmi) zdD-9AW5u0YO|3^%7}j7{;k7*|yIzuPwg<(f?__HOK^H4Vj|P+1QT2NT0;YepMN(@n_FJnb#_d~UcUOU8IhwYe7KO6WOOJD2kKo*@|UmtcScJsa?4Y#vj_OdPeh=-2{_sL&xYYKZe zw!?ZJ&}Uq zoQ z73`D_ED!#*!cNPtBg-4;k!N5KFKp{Lg~WQ9uhz{?sfg=(ZpId}u1ePJ-L=v7{PRol z?OAs(<+Z&J{F3}G6m!LVZSRNJ0`|l87=bv%E`U_?T?*=%ZA2QfUCVbh;`x*}XD6}D zSI=p44WB}H?_6ueUi7uk!|3w&lEHKO0LhJKj{ESi#%?fi+yyC#6 z@Yz5-<5x0gA7iOr>;s(ivq$-Qd_7Me0$Qhc$NJ3u5t#UTX4>1w=wgZ~jr$n$T(O-ZUe>h`j(2Xm12+aC-lURHkdi2x_22|WJd27 z=E`s5BryGa8|7cm@4#eqZQo1Zf$4l5z5{Yo5Ha^hJ@#-ay6>%j&&Kj*dyc1pnPU!O zKJS8l?rFsE8+-abx_<7nbB+IK?%_ss*UdBP+8KXl35%Swz|46E;v9X9+rr-j@7>Ml zCraYmBz_B+cTzrlZ$&p=h&l8<1ZIx8d7kU9uXV|LpN*wo)av~|iC9Zu-fe5~t_S8D z;@Lb77I$+#cKL2LVmsUuxdq4)#63}uJ9syG+`(h`4e)v#pvEG zIrq%G<}g>}Sc)DwhQ8O!;N&C63Uo1JMvjJT%awDOE6&AfbZfCU{mrlMO1{?PS3BP4 zRoIcU3EjS2XYZl=vliX`k&E-yj2?RtbJu~nXL50uTF{;E2y8>fJQIO!%$Tk%oL1kD bO&HGCU*7o3xMTiLCigF=YGHA*?oa;%5m>Z5 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_single_pass.bin index cfd1267a6f0a71321645c1fdfba4714858a00a92..e3960fa9678d5381a96c0f18a65bad713fbeb3ce 100644 GIT binary patch literal 4786 zcmZXWS!|U>6vwA6W#5%e6braSF^Gv835ryVB??kmT+ve73shQ)r3HdMXk4O3F-9>O zw-@6QqsHKZi17gzaN)rRH8Ih|CrymLxPejp{k}T~KCY8HnREXCGiT16IWynAZ26*L zz0>Ajm}tY&(1Es%?S1V%o5l}nN`rug543IWs%%+S>F6I{mlD4;q6)33Y^`*UuNzxn zqc^p6^mh05EpPAH*j?!xS9kcZrU7HyKhRex!JUUO5;*}HQqG17+V%EUp#wLf9LFT&zmDZI#mq~bPV&{ zuDz$dYXd{t5Ag;48~Rvm*l4*tIIE-Yj1wayt@2VnKw^mUR}O9^KUT@rjMmBBGSmyOmtgdb;x36yZVeZ zF}9E!=ZYDZc`C1~?z(Kd;LY6#}UyA!#o(5v&+-=vSCp9pVFnNzW8 zxu(?Za^~zEM)PmYm=kqtM9ekK$-6cBZgkH?-ZkH&+w`}G(YfX$V&02vJ09jc#=w6q z&~&l$#*lR98C&oZ!BTo=Vd#?z{p5v_zscy@h-+gkQ;;KeW0-;d?U?-w!pEuTho6{I z=-QuwUf#<*bbd!-7*I)RfidpOoH3d!b?*#DqJzIHo?-Rcy|22YZ#e8+|m)KcU z^#sNbQLLlr5%)*ncORTFzYc5n^)dSSoT+>DzS#8h7f2)HMWEi38|mH=b!&As-8&Jy zk7Y;J<=4=?6Y}ok0P(qpW>ziEmIbX3Yr;A(U)mZ|16(~lYzNiYdNyI(2q%9v(Rz=* zM_$cnyw~E*9Q^<$ZVU`*FMTPyFi!^n01MHxrBZY6-G_d+7Qzw^xFRFJ-3ZycAi?&d;qBYss|& zm@{o6)@8^MtA5L8yBtn_JL@}t1+sTl{LYN6MAom|V>xF-SybG2G4?bJ%sq{w%g6qQ zBg^?-hV6)KI~+_tY_G+q+zcE={MUg+{MNDWK;-&*IQg)>p~kj+F00_=50bST8NGjw zzmr$bzQ-=Vjo%Ny4p zob~IOhf0Ug@2cvlBUT;{7h)?FyWH*siIuEua5dIQg($S7Tewbr+m`*xpjI zwXVvx>*3`8q&iP$kG8*&J&*C|?#FRY&c*S_#%&&*GcnIG4{{UeV$M_c4E3un9`!RB zSwFtPflWpBY~`$J&+H^*apR1doQ7`wT9fkeW;7wo`3(%)>Dku%D<5l}f-GmQVy)BA z#m#j&ZsU*I`wZE=yEpCKQ>?X-dB){i;64KH%eePVyp_Fqhc|&cM?T(_eq`&#|48w! z41kHpyRsQs%x-f{_odG*VEWZ2_PPz(`Ze}=KW+olRxaL;+mU^fS1lH3DyG4GCYtnm=C-zEP?#dmN!dhEgV_Too7>o|NkMjd~_y4qRW&eeb9 z?Ga?_#d{QYr1vuVC8cyzl$%!$w$q-f-GiU!l&N} zbvg6wcgVAHRF7}h>*(R<4PvJG1?YgOBk_!PfA<0oXB578rr5!lJw0vnmJa;&2= e#&9Io(J0Q>Uf$fy=PvjkUhW^FxuA$>b@~sg*Zc+m literal 4690 zcmZ{mTZola6vw|A9m`9O*UB^KQuC5ZIF94dtkEOK8J*0iNeheU z0#TNlMo>_%LD56eV-IQ*0ytvi2S(}1z<>aLUu@P^X1u803?ox?TOmnGlL*<4&^_2{`- zbJmjU`-Wy&pZbZHncaZw^6Z&D!dW&ntFPvp^~=Ali5F5;w`a9ou-FWA@Tc=gC#+rZuq zC@{>~8f@xpTTp4=G{0P~Y^dT5d0lq2b(MNLM4NM4>$HB;#-7~z-uA9`s@zI-tj7cw zGD07ZY(3Qd7I}5~xlDQMQ{>gMXxxgnkvijjN45)dwftyQ)4i>AnCT`Xas#J4UnL^?co@w(esm^Uf2CTSD(aU$pb!yqh>r_xf0} z5f7W)$S?dfr8V?k^elU7PUz27_0P=jHRPsTudY{rop}Xw47_*98j6igcSzkSXN}(E zYrVZA)Oo~PG``y5s#Q>kt0WA{lNUb@r$|P<45%K`$t{Se@17_8NsS^2;t{%(zZvVz+ZX?#H|C5c>nf zo;@4XJAOaY`>pOhvzK_EgI|H{eGdLXu?NN zK5UQI*q+5EY`=t)58JN_w)!sm{TfbwB|BRW_aU2hAMR}xk*&=~VB+S>C-eR+X2-t& zcL3y_4oq^J@b@XW`?eP0?{hHmqQ9lYcc1Tp%RBZZ>>Ko6bZZdUw+YjJPqI6KtgYNL z3HuIN+?os`XJed1H_xd|dEc=9qh3eBis#^airOB7lMnyLk@Y7&h+ComA;|jo?#Q>0 zi|=e0vVPYx^=EB|gNZL@rFUWkvY3;<{N5Q$ZX|#;(FVCH`cS=@dYdpeEop6q4vvHvs3a`wrvJ)3L?fXRpLwa9YzhL4Hm zyB~*cFYq4z&Tel+cl{pmOS zU5_08e0zU0qmGl{8;9tpDwB@^RG?x z8QnbX@A9?%eKgqr-JdaV^5OqlWc`W9SuZ6g{oCK=KS{l8Ik>t#-(I$cuftv@w}L6= z{Zoz@tC0Q8@c%mT8?_oe_Fz1JbG7r%h7Z4SXLl1OboC5VH5eH|X8453DU< z5px}wF>htMMjQPu;djlx(t&ROi0S!>ZveOF$cODlWc|f7hPF3jXN+lSo%c&y^OCn; z=}WuF)jkz{D=>SW@67*KMxW^dEB2YE(H+)buABKd)A}n%KiPpC_o4Q;WG9?_+|?fB zUVMs2F1wKJ6LOx9agAZDh_M?vV$}Y=JOL*kF`h&g(`Ur!O}bn$hOy!f?8V+(+?)2s z*LDwI^YN=5zbE$Ui1{qC`?AjV6whKGm}emu@AoCwFdc!toG{NduvZeM=@M?7{qiIR ZuGe1Pc=zy5{6DwcKirI&`R!Pj{R^;k@rnQd diff --git a/examples/runtime/shaders/spirv/fs_bokeh_forward.bin b/examples/runtime/shaders/spirv/fs_bokeh_forward.bin index 6b5f9c10f9f55146f923b74758bd78e911b06f65..369f3d24c56d470febfed0d2acc62049676cec12 100644 GIT binary patch literal 3534 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 F^dH+~)93&I literal 2480 zcmY+E+iToK6vroBw-=k*T5ljyw)R1!X-unCv9w7VO(Pm0Cvv8H>$7!EXo%gs z0lpI1fb7H5{W!L?CVVOx^B(lK_M6*W%ifIbfy=v}waEHnd%l|xhrD~x<~XzMxoby! zYuEPX^tbL}63cWF=94YC8#*gZms?ObMSa&>6j5bcE~AVfQnK1b!ae z{s_5~n4Y!$=CFppK&s5UL5=kTvQ%tq{snP=^4h;4?(ZPp`rkqheG~^~&T)`;riOlN z;oYOd{QcDJy>A7xH|z%`a&&>qMUHLgVv57bIM0?dY66(Yv+5*v4Q>XVFV`p^_-w&F z1AQJOhCMciF6VfmU@u~ed)}_s?Z%?C(`!@I< zxM%P9LomMFH{L}jcPsu;!QGcW_Tg*9mwOIf-k1@m2c0k7huCM)2ipOo4^D$eAM5~^ zi$1s=T}*K}*$3|1oI3&Zu_q(vUFdu{r~E>>n|si$N4}HQ-t8`QKK^GZ$HR?qG