From 1401a5333d50f73c670835dac26e347e2702a971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 31 Jan 2021 10:07:49 -0800 Subject: [PATCH] 45-bokeh: Built shaders and added example. --- examples/{xx-bokeh => 45-bokeh}/bokeh.cpp | 4 ++-- examples/{xx-bokeh => 45-bokeh}/bokeh_dof.sh | 0 .../{xx-bokeh => 45-bokeh}/fs_bokeh_copy.sc | 0 .../fs_bokeh_dof_combine.sc | 0 .../fs_bokeh_dof_debug.sc | 0 .../fs_bokeh_dof_downsample.sc | 0 .../fs_bokeh_dof_second_pass.sc | 0 .../fs_bokeh_dof_single_pass.sc | 0 .../fs_bokeh_forward.sc | 0 .../fs_bokeh_forward_grid.sc | 0 .../fs_bokeh_linear_depth.sc | 0 examples/{xx-bokeh => 45-bokeh}/makefile | 0 examples/{xx-bokeh => 45-bokeh}/parameters.sh | 0 .../{xx-bokeh => 45-bokeh}/varying.def.sc | 0 .../vs_bokeh_forward.sc | 0 .../vs_bokeh_screenquad.sc | 0 .../runtime/shaders/dx11/fs_bokeh_copy.bin | Bin 0 -> 358 bytes .../shaders/dx11/fs_bokeh_dof_combine.bin | Bin 0 -> 602 bytes .../shaders/dx11/fs_bokeh_dof_debug.bin | Bin 0 -> 935 bytes .../shaders/dx11/fs_bokeh_dof_downsample.bin | Bin 0 -> 759 bytes .../shaders/dx11/fs_bokeh_dof_second_pass.bin | Bin 0 -> 1970 bytes .../shaders/dx11/fs_bokeh_dof_single_pass.bin | Bin 0 -> 2494 bytes .../runtime/shaders/dx11/fs_bokeh_forward.bin | Bin 0 -> 2232 bytes .../shaders/dx11/fs_bokeh_forward_grid.bin | Bin 0 -> 1396 bytes .../shaders/dx11/fs_bokeh_linear_depth.bin | Bin 0 -> 467 bytes .../runtime/shaders/dx11/fs_denoise_txaa.bin | Bin 5225 -> 5069 bytes .../runtime/shaders/dx11/vs_bokeh_forward.bin | Bin 0 -> 1286 bytes .../shaders/dx11/vs_bokeh_screenquad.bin | Bin 0 -> 530 bytes .../runtime/shaders/glsl/fs_bokeh_copy.bin | Bin 0 -> 157 bytes .../shaders/glsl/fs_bokeh_dof_combine.bin | Bin 0 -> 457 bytes .../shaders/glsl/fs_bokeh_dof_debug.bin | Bin 0 -> 803 bytes .../shaders/glsl/fs_bokeh_dof_downsample.bin | Bin 0 -> 440 bytes .../shaders/glsl/fs_bokeh_dof_second_pass.bin | Bin 0 -> 2477 bytes .../shaders/glsl/fs_bokeh_dof_single_pass.bin | Bin 0 -> 3052 bytes .../runtime/shaders/glsl/fs_bokeh_forward.bin | Bin 0 -> 1936 bytes .../shaders/glsl/fs_bokeh_forward_grid.bin | Bin 0 -> 1091 bytes .../shaders/glsl/fs_bokeh_linear_depth.bin | Bin 0 -> 397 bytes .../runtime/shaders/glsl/fs_denoise_txaa.bin | Bin 6595 -> 6595 bytes .../runtime/shaders/glsl/vs_bokeh_forward.bin | Bin 0 -> 1035 bytes .../shaders/glsl/vs_bokeh_screenquad.bin | Bin 0 -> 317 bytes .../runtime/shaders/metal/fs_bokeh_copy.bin | Bin 0 -> 566 bytes .../shaders/metal/fs_bokeh_dof_combine.bin | Bin 0 -> 976 bytes .../shaders/metal/fs_bokeh_dof_debug.bin | Bin 0 -> 1292 bytes .../shaders/metal/fs_bokeh_dof_downsample.bin | Bin 0 -> 984 bytes .../metal/fs_bokeh_dof_second_pass.bin | Bin 0 -> 2639 bytes .../metal/fs_bokeh_dof_single_pass.bin | Bin 0 -> 2970 bytes .../shaders/metal/fs_bokeh_forward.bin | Bin 0 -> 2084 bytes .../shaders/metal/fs_bokeh_forward_grid.bin | Bin 0 -> 1204 bytes .../shaders/metal/fs_bokeh_linear_depth.bin | Bin 0 -> 727 bytes .../runtime/shaders/metal/fs_denoise_txaa.bin | Bin 8341 -> 8341 bytes .../shaders/metal/vs_bokeh_forward.bin | Bin 0 -> 1377 bytes .../shaders/metal/vs_bokeh_screenquad.bin | Bin 0 -> 699 bytes .../runtime/shaders/spirv/fs_bokeh_copy.bin | Bin 0 -> 864 bytes .../shaders/spirv/fs_bokeh_dof_combine.bin | Bin 0 -> 1458 bytes .../shaders/spirv/fs_bokeh_dof_debug.bin | Bin 0 -> 2343 bytes .../shaders/spirv/fs_bokeh_dof_downsample.bin | Bin 0 -> 1907 bytes .../spirv/fs_bokeh_dof_second_pass.bin | Bin 0 -> 3988 bytes .../spirv/fs_bokeh_dof_single_pass.bin | Bin 0 -> 4690 bytes .../shaders/spirv/fs_bokeh_forward.bin | Bin 0 -> 3626 bytes .../shaders/spirv/fs_bokeh_forward_grid.bin | Bin 0 -> 2480 bytes .../shaders/spirv/fs_bokeh_linear_depth.bin | Bin 0 -> 1369 bytes .../runtime/shaders/spirv/fs_denoise_txaa.bin | Bin 11172 -> 11172 bytes .../shaders/spirv/vs_bokeh_forward.bin | Bin 0 -> 2570 bytes .../shaders/spirv/vs_bokeh_screenquad.bin | Bin 0 -> 1078 bytes scripts/genie.lua | 1 + 65 files changed, 3 insertions(+), 2 deletions(-) rename examples/{xx-bokeh => 45-bokeh}/bokeh.cpp (99%) rename examples/{xx-bokeh => 45-bokeh}/bokeh_dof.sh (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_copy.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_dof_combine.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_dof_debug.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_dof_downsample.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_dof_second_pass.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_dof_single_pass.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_forward.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_forward_grid.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/fs_bokeh_linear_depth.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/makefile (100%) rename examples/{xx-bokeh => 45-bokeh}/parameters.sh (100%) rename examples/{xx-bokeh => 45-bokeh}/varying.def.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/vs_bokeh_forward.sc (100%) rename examples/{xx-bokeh => 45-bokeh}/vs_bokeh_screenquad.sc (100%) create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/dx11/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/dx11/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/dx11/vs_bokeh_screenquad.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/glsl/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/glsl/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/glsl/vs_bokeh_screenquad.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/metal/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/metal/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/metal/vs_bokeh_screenquad.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_copy.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_dof_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_dof_debug.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_dof_downsample.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_dof_second_pass.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_dof_single_pass.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_forward_grid.bin create mode 100644 examples/runtime/shaders/spirv/fs_bokeh_linear_depth.bin create mode 100644 examples/runtime/shaders/spirv/vs_bokeh_forward.bin create mode 100644 examples/runtime/shaders/spirv/vs_bokeh_screenquad.bin diff --git a/examples/xx-bokeh/bokeh.cpp b/examples/45-bokeh/bokeh.cpp similarity index 99% rename from examples/xx-bokeh/bokeh.cpp rename to examples/45-bokeh/bokeh.cpp index 22c88ec15..f05266f4a 100644 --- a/examples/xx-bokeh/bokeh.cpp +++ b/examples/45-bokeh/bokeh.cpp @@ -5,7 +5,7 @@ /* * Implement bokeh depth of field as described in the blog post here: -* https://blog.tuxedolabs.com/2018/05/04/bokeh-depth-of-field-in-single-pass.html +* https://web.archive.org/web/20201215123940/https://blog.tuxedolabs.com/2018/05/04/bokeh-depth-of-field-in-single-pass.html * * Additionally, implement the optimizations discussed in the closing paragraph. * Apply the effect in multiple passes. Calculate the circle of confusion and store @@ -973,4 +973,4 @@ public: } // namespace -ENTRY_IMPLEMENT_MAIN(ExampleBokeh, "xx-bokeh", "bokeh depth of field"); +ENTRY_IMPLEMENT_MAIN(ExampleBokeh, "45-bokeh", "Bokeh Depth of Field"); diff --git a/examples/xx-bokeh/bokeh_dof.sh b/examples/45-bokeh/bokeh_dof.sh similarity index 100% rename from examples/xx-bokeh/bokeh_dof.sh rename to examples/45-bokeh/bokeh_dof.sh diff --git a/examples/xx-bokeh/fs_bokeh_copy.sc b/examples/45-bokeh/fs_bokeh_copy.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_copy.sc rename to examples/45-bokeh/fs_bokeh_copy.sc diff --git a/examples/xx-bokeh/fs_bokeh_dof_combine.sc b/examples/45-bokeh/fs_bokeh_dof_combine.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_dof_combine.sc rename to examples/45-bokeh/fs_bokeh_dof_combine.sc diff --git a/examples/xx-bokeh/fs_bokeh_dof_debug.sc b/examples/45-bokeh/fs_bokeh_dof_debug.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_dof_debug.sc rename to examples/45-bokeh/fs_bokeh_dof_debug.sc diff --git a/examples/xx-bokeh/fs_bokeh_dof_downsample.sc b/examples/45-bokeh/fs_bokeh_dof_downsample.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_dof_downsample.sc rename to examples/45-bokeh/fs_bokeh_dof_downsample.sc diff --git a/examples/xx-bokeh/fs_bokeh_dof_second_pass.sc b/examples/45-bokeh/fs_bokeh_dof_second_pass.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_dof_second_pass.sc rename to examples/45-bokeh/fs_bokeh_dof_second_pass.sc diff --git a/examples/xx-bokeh/fs_bokeh_dof_single_pass.sc b/examples/45-bokeh/fs_bokeh_dof_single_pass.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_dof_single_pass.sc rename to examples/45-bokeh/fs_bokeh_dof_single_pass.sc diff --git a/examples/xx-bokeh/fs_bokeh_forward.sc b/examples/45-bokeh/fs_bokeh_forward.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_forward.sc rename to examples/45-bokeh/fs_bokeh_forward.sc diff --git a/examples/xx-bokeh/fs_bokeh_forward_grid.sc b/examples/45-bokeh/fs_bokeh_forward_grid.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_forward_grid.sc rename to examples/45-bokeh/fs_bokeh_forward_grid.sc diff --git a/examples/xx-bokeh/fs_bokeh_linear_depth.sc b/examples/45-bokeh/fs_bokeh_linear_depth.sc similarity index 100% rename from examples/xx-bokeh/fs_bokeh_linear_depth.sc rename to examples/45-bokeh/fs_bokeh_linear_depth.sc diff --git a/examples/xx-bokeh/makefile b/examples/45-bokeh/makefile similarity index 100% rename from examples/xx-bokeh/makefile rename to examples/45-bokeh/makefile diff --git a/examples/xx-bokeh/parameters.sh b/examples/45-bokeh/parameters.sh similarity index 100% rename from examples/xx-bokeh/parameters.sh rename to examples/45-bokeh/parameters.sh diff --git a/examples/xx-bokeh/varying.def.sc b/examples/45-bokeh/varying.def.sc similarity index 100% rename from examples/xx-bokeh/varying.def.sc rename to examples/45-bokeh/varying.def.sc diff --git a/examples/xx-bokeh/vs_bokeh_forward.sc b/examples/45-bokeh/vs_bokeh_forward.sc similarity index 100% rename from examples/xx-bokeh/vs_bokeh_forward.sc rename to examples/45-bokeh/vs_bokeh_forward.sc diff --git a/examples/xx-bokeh/vs_bokeh_screenquad.sc b/examples/45-bokeh/vs_bokeh_screenquad.sc similarity index 100% rename from examples/xx-bokeh/vs_bokeh_screenquad.sc rename to examples/45-bokeh/vs_bokeh_screenquad.sc diff --git a/examples/runtime/shaders/dx11/fs_bokeh_copy.bin b/examples/runtime/shaders/dx11/fs_bokeh_copy.bin new file mode 100644 index 0000000000000000000000000000000000000000..40c1b9428145680263ca26b892a0aa2d49ee0cc0 GIT binary patch literal 358 zcmZ<@_TbEyv$J6U0wxCb;`rqJoctmKMg|5T!r+6%T_T*EA3T5l`kc^%ZL+#L!r|

M4nW01RR2vAe7higOu zP!Y&IGC-Wg!N3>=az=sxSZjm?0}Dd|gdG~nz>p-sz-%NS0Jb9)sP2;jM9!6gq5BX6 ZLxXduC<9E)4XVzq4x$ETrX9qI3;@(cFW3M8 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 new file mode 100644 index 0000000000000000000000000000000000000000..aa4cc1efd54cb66acd533c25346ff020ee34b936 GIT binary patch literal 602 zcma)2!AiqW5Zts%+f#E9dXn6{c#t9@BE^~}Z3Uasq!Nl)X(^}(DJj;Ql;TYg|D!+P zO%VUXlOJGF&(7o}T0FUA@-{oOv-@JZwOp`T+7-l-WJcY7a2bRfng|}rkGjKfFg_2i zMy9H3QT@NV513T^ee?eK?e)FCR_L5ue?IhH4(LrTjdLBi1s;LATWvIPrhqK44KS#u zmXQZ4QKnw3M?4busM~bhx>t7^;#t1wIIW7zW-|xAoI@Rb4Iqg{U-WzBR@L&*I z6Aj$w5V**S*5MkbdeoZa^z;k(c|%oiw|~FM@w=x>x~S{X`~f`XhSHwls=TWua`!AU zG21IL7sc7J-o8Y1cX|u!a?iZ`-E+QkzxUlY1%LW#{iZVxj!wiM z*BVRBrOmB@UVszbTeX$?M!lJ`08WV?tv0sTQkG@n|MHm*AXlBte*2xiJz5$$Ubr*# za`OA9KjI}ECx(d^#Al-DPnBl)j1h6-J|RQ&qLtB4!2oZ)`?f5DQY) zVp7FsEoW43kZ$PxO66}XoW#pXbfl9>RnICtPHnASWtB$$Od%$b=x=bSq?lQFFFOn*7M18P%{&zgg_+ddtp<^bxL z9yX8qCw(^~0n|C}bO)neMv}t#U;Z`*6rEkoHtwIF_FmIpoyWWL2knD%F&C$Kjc`SH zAylkVwMH{hkO|uaZmef5w*^8`to(uZ1y2iWuURv#id`|Quysc>&3X~z@z|uid=Be4 zuSy78G%xw>LcOHhWU|V-Ga&=lGa?+zkoJLuaia=rg2n?btEGrIT=N;u5)v5r`;Ep= z%pAvu3gYXEBI@ZssI20 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/dx11/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..e74ed9ee663f837383be2ba1a1aa35cb06d45683 GIT binary patch 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& literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/dx11/fs_bokeh_dof_single_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..91698cb84ade5e1b0446a4ca64b22aada5d2b972 GIT binary patch literal 2494 zcma)6J5N+W6h8Z4AD19V)Clo$V@WIkjSphn3kwTGWevL!v=C7@QKNx?ufmv%vBFnJ zjKOvr{(zmv&cwpX#?Hb5#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`iW8hhDtN2#e?sEDtR!xsT=>F=$M*X+B`kU7UDvG9 zI1O3%t$%*L`_35Ompw_fJkRLix_~wJq<(7BHTSoQIzN2NcNeAm;kzu-Ul8jHJ+D0h zA2}Z4C?da$Z^PHZn)P>1pdc(VGn1O1x3SRK67U*3?=V+@CkJc18FY0WUSs49la}k; zfW;O>2BX@2*0%#oEx;Px%p=EVSF2wwIEYhzt{2j-wyVQFkl)nKclp={`q@8fVH_hH zVUcfgI=%_S>+mj9BlpVvkVE&Od}^{cSZo&m0N=I*8xz7Wj=W_l@&@o3Ugqw3z=T zr@j3IL9U@E`ajfrm<-sbV}VYdWQO+s=6G;=;B&+ jIX{gg1CgP(U&nO9Wp(*~_aFbk>5lWc-j0u%?fUWu9J9N> literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/dx11/fs_bokeh_forward_grid.bin new file mode 100644 index 0000000000000000000000000000000000000000..a85fbbf89552c8625b2b589320faad80030f3c56 GIT binary patch literal 1396 zcmaJ>&ubG=5T4z{rit1t@uXh%4-g7HsEBPgCfO#S*^tB%@lYx)NNXuXyvH6CLA(f_ zJj8=udhx2>gx)InH+Zm~Jb2Kn-}iPV*tI%jcIM5GZ|2QB68Brh!|%WL1?0);2dmpV z>l^pFYooR8`xRdVKWUv1X$-H`*KbbRw-?_XZf)(qI`jDLYfpVS$P3`l;5>}&{&MFf zbfn2Fcnl^np0T7d_^H#<5AF093L?)lcJ@F&?TjJuOfG9YV@R~+!L;{RR=Y{RJ!mH# z=_I`ywd*oy4(mzMYe<3~*)#FjV+b}P28lfaV^HfYHwUt}*Kak4R{`Fo4~d(z;@v{I z_*n=`I;%T@FjL-ZT<)YrpR5S(FQ6lNNRh8eCGI($WA5qfsCW08pdjI zvBqB(Ir&lbnS3yQsIh*eN-C-lRpwjlo4K^!g2-I%(tSw`z~MP)4{38_$>O$ z#v!*bGF+7}3hDg;U8K*05?9jubN=yeh;RBv5LwvOyx7-Rl?~K0-xZC)OdTfQrN#d& zr}a?7y;19lb*DbX%+@m;%H!%87X5!>@q7dewe_A({tt^Ym||&O5FVX_n-h9=b>QQE z9X@R4;~6ydard-&5%+emh@Jm6Ki(%hQ^w=pq|W_jegBT1M79fNa~Gr;?ZNKH9_)Qs k3@}Ssn;(hHzyG#mOf2>@3U#-Ne~~?^P5Z7cxu+D$Z_tN)h5!Hn literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_bokeh_linear_depth.bin b/examples/runtime/shaders/dx11/fs_bokeh_linear_depth.bin new file mode 100644 index 0000000000000000000000000000000000000000..4f726b0187cefc69dc4242123583285d4cdbcfca GIT binary patch literal 467 zcmZ<@_TbEyv$J6U0%it|()fbJqQu-{AzlUsAYx!Ij!#J~D9JEjWMBXy41Nz#&?Umj z`Deb!Jmuqg$74b)r*F&u&kRxvl4AzaIzZe4#5;i4GuYiP07x?dF$WM^05J%F)PvN5 z06!4BfLRa%Bo3AbGJ?b61N?(MLp=Tc7(!eloc;ZSTo_ibUhNMw7i14e9mre-Acg^C zbAkFp9E03lLx7rsJzOKs02P7UV+_Pu91M(+3=Ax8eF{Jx#H=Wgvl0Zr{0IpK7KQ={ zJ2aGmAxVIN*+@VDY-cJ^-6sWzTn5m4Aa}SjFmxYcU}$g-6=e`&fXKN))w|U}_%O49 p$~j?bxEKT)9Kkj+Fi15hKv@h7d_b?k>|jF@XM>t;2X^uW1^`o$IoJRI literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_denoise_txaa.bin b/examples/runtime/shaders/dx11/fs_denoise_txaa.bin index 3ca080abde9be58ce67f73e668adc19bf7c7b873..70da9caf9fb6f4a2044eac06c83d00e608d0230c 100644 GIT binary patch literal 5069 zcmb`K&ud&&6vywpOed46X@+1yv(Uk1aZyvPR@=-=(xeSaQ<_YPZem*p8i^!i+NvNL zOLsyA!9x27bYYev2!h6}6w-}FT9-h&iS72`El<% zZ!)`ZdT8yriQ`VI;`U!%zP8f*aIyJOb9Gdjg0Aw_<@F027d~i>4p-f<6oakhOKYoZ z8;4~DFw$CH-)LT2S-aYrPV@z@ue6r0HCNXztz7x|a3S(4xxUw2zjFC-VZfgMFRFi) z@5!a9>D4!Oe)#p5W7Ye6e|~nf^}-)yh;2afMO`;^eXnb7;nbP4l98^muGe(2z=LIt z=sM}|l0WFZT{jEom(R{G%q`B%pK*&bOVji7=T5q5BV#m47>Bd2~;S$?yil6;7dA59y zI#>Ei7-E-h)bux5(w8r$`Y2A7-J(1$J2}p}>gJ>*92Q5n-cHUBDuF%q33Hs14xD(r zy!A;U$q~Jl=c3nLTxm^NE^u%mbGQb{dtZvl%ej<|lj5^+z!3+Tjg!S%JY+xYAiQa9 z{jh2O{XS%|qVctI*44LUf0Qpi+5Esz3$ho_P{`Ax_h8^b_Tr)EVLtRE%;&oNS@3|p z)#^SEFR3oh47Nj(>@$+H@~U$~ocW6G?^?}Kf|->Bll5o+@W-c@zu#;5gUR}ne?NaP z#Lx3*zs+Co-9FA|cm^ydbYV>%(}R;eh7(LLe}8u54<=g^=b)dzKQlf2+5dk2{;UN4 zw(qYiZ&v8PBOUww&q!h`6_aNq`G@Dnuy)2CTuIJ6^MsnU%7(dnpfj6FPbZwRSFnS< zd$ZQ{u=LSpM;0s7pv?!H2S|FS-x=PvAOBQmQhV*^ zirM_W2xAhxRu^|TGqV0>Gnwaa?u)xbdHy6s{(1gpGnwb__q&I`*-Ym7+kD82 zZ#I*8{x%=-{LN-E&)=Ve9{HQiB>vj}3TNY~pl?y^+_9U#pRh}&_Br7fH~lp{Qu{Ov z2YlF&QT!-}Y<{l5@p2kB>myUwdQ;zqEVt#H^*wUr+qzwlSYFH?i%nmnI5#&xqx4&{ z>pZ8vz9!{7bX|3_#`OE|b4mCr!M!kLF!Wfnyp1WuQn<~!?1RQ(Gam_Fu`6baVkv|V zFT>k=VYwmg8)18+EZbb@SW)cUo!hr3?%aO1es6d8gj7`Hadsx)isDCcQv14i_bd;| z_HW?F)s<(XANO|Ono!N2SG4f@euXil?y^q;)UtjuzpQ6LUI{3ut+Ltqrolh9S@Rg~ z)z5YhLJoQ&zcx<47ur2Y;&*rkgnHf;2k=ihM{MTW-bAr;=Nkv>jmFnMAt8=p{c)Q= zI=9VUOLp?%ek|=V=PZpGCvrQs+QWWf+xq6v1nj3zL#cWHqrz5km)z3@|*7AEe(aa#8XnS6n1;k_JQvM z{GB}FpLxeDH<^7N7Rw}lX5$b#fMOKkK2+r#23v0<|qat8Bv@w>YDNagFpADz|0v+cRXM~8p9=YDo^9(d=G zrL=b9avsr9pJDXa#)cU4gNI%iUoQ;#^uyS9i`XF#`ItZT^F0X<{^Z0uC?5V#+o*MNfEeBNR7bxw!|D@0=6&}cCAQDl literal 5225 zcmb`KO>9+F5XVnnzg}O3zEnxH3w=vNSYYv!NPA1$2Sh^&ZAo=g5t@L(v}q}R#Fz(B z7n-n>2uqiCX(T2lT3xt;jT>1R6BE`361VvO&AroidbqE+@Fw@oxikOy&zw1P&S{&o zM+cUl9(y(DsfEGy#Y^Xx-kV!`f9b-oG+lbD>x(O=S5LpYHoU7Ic1h8{ws>aw!t&~V zSpf{KEv~FCT{^$KzBZZbyG&nOTfDS%VfoDYiy!Ros+dZyXO~tkp4;Em?ce_w)mM*) zFtu=a@`n#U{iAhu{r;VO)!S3g{(g`Qv2{!C)BB0u@AV#=J#zenWJPaP@5_35z=P!( z(mQ3N{0F_+HJClMcw%Pu*xa$1<6&-kVRB~Xp(m{5`1$$v zH$L$V-SyUlBpl5raxM+cPR@4+BYRKo6X$qX zJk+r%3I5tgxg$Z02D>QXCmpw1~)Dx2$|2GqmmDj%?Me(-=HKV&DK$6}r$zmx|I zJjj$sJ=04pYB18Sc|U!^>7<%lj-ROq(t1-v9=O4#HGEEU9hQwb?v?B68=wYzezA2ZZ0aF9*WBiQF43pltPST2u~L7xxh(UyHR#~)HkW1o zB-AOs+gz6UTc31@?>3iZ{(e4}&EIV<%lvJvJH&UJ%QAmIi_7A>%_aU?{~EpF=N*2P zEQD9C{&mP-slZvESbr%$$0N1QyWoJ2+9NC3!yK~Nc?HMwMcmX!rftt_x`R`0&pGuy zaNyfdLIQ^ZwZLbu*HYepg;P=2tsJAW)4__@B3sVKd8tIPM!gOU) zgx0w1{m$Wc2@0A$T`k?3a(1_FivWl7k1A>a_fHDXT&zl>tmX;@ro8+t5+OD>TUK3fO@>1 z^rhD<$}0y&bE~!5cP0EIt%hM3tDaUXY7leqEkFILCVKUE#8wUR_-&qU*`EnL-S`)r zLw@G^+ElU-PR;KbpP&EoC!}0LCDTu6{TRX~Yc1K%hw(^JWBRO!ndNdb^SKkx^TxLE z&E7Hg$f$B*k6i1`&*O@0ilg7ZCm8W)?t|2i{OMN=?O2;x9A74@HFt#c#;x8r={C-G za)A#CmRx?*7~Z~tIG60OR6Gj1IpOQT`3iqKkL+jmnCB+5<>9eh;^#K*2;#$`d6{&Z z<6VOFdVy!XuvN0Wma3<%l~i^PQZMG^^P}bu9y}OlUwSREQ3GuEdS1vJn_|cr%>AD4 z#@$CMn;-t@d@g+ZntOb7_!nz#XP4iP$i8Ck#HAn6F+Y07&jloU$B>izVdFc+5I@H7 z?O5mON-%tb0UKk;$NiZP7_gl%tj(h^e#h>_pv3_ZN3ViljQ5Wd)H>{JLxmAWu_sSpxV1_TU{($q9kiKDtQVG2VdXbDt`lye^Vj)_E7ehN z{moXo-rp_*qkE&?>&>xjuCP9F7XOr0+wo%y@Cs#7t2(pgilTHYaF7n#<);%|Xh zpo6ob>!$W9-h1Q^Z(QU7@>RFiYTq3s(I*&MJ<*Km?KF@O;i@hUBgu~cx;YDLsVki_ zwb3{vG5<|a;}`9{YjEC0MKRyhl2>T3^%d|Ar)^Kye6f0Ct#xe9ew!Gnx%-xbyY}>r z&Vq~lJK*b^MfQ#PHmaj|n@i`>yq+^ZkG_r7^3U_=+gKisSj>y`Ja!)bl0uEt?;_Sb u!fK(xsb%v3XsU-?){Sjlsljaa@PF@)=ez3e*q=G=|A2pM*TGVg%>M(kvwQOZ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/vs_bokeh_screenquad.bin b/examples/runtime/shaders/dx11/vs_bokeh_screenquad.bin new file mode 100644 index 0000000000000000000000000000000000000000..6c9e1ce72ee58fed1164690c36fc15f12549329c GIT binary patch literal 530 zcmWFw_TXdyf_ynU8%75H()ir`l+>KC%+&ILqWmltpbQ8lZS}|g&EkO_POyv^k7p53X5e@ nP&1+GfI=KFH^KD6%msyq83O|=%#ChPf7pS79_U&DU%C$-4PMFFbanyV~7GesdcF*8p=LzAnTOFToQ5QW`tqI%OCM6(2mSOl^o?WR@KeGXtD;v!2JBLjxC>J@tCjxC5tlv-ZQ zpWpX1J{&)u^!jyA@H~=L%L`p;Lmr5`_vI@`dO#bE?7iz6R;=ViqYCNKS0pzviUKa`R`7zU25 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/glsl/fs_bokeh_dof_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..1bdb83b4d2afd83346e1a6dce32dd3d4b72eed66 GIT binary patch literal 803 zcmaJ<-A;or6t43^CGi!^xoj7PKw(HWz0oY*dua^8jZG4u1Q_lodsbh?)512U#-?f7 zbJFjxoxD6>iJONp!EsJ5mq8vDVOsXC3BgG&%3vxIQIIntr##Q1y!zOmzj}n!VX=<0 z1=P{hhB~OC)l`ULW{$LF7SBbI%8mnj=vRxs9b09X=1El8PtY>`-BP3@trqbN(lE|| zGHt7YMCMS%S@kGY2G$5`^F)LdRB4XF0$W!0d$@<0sDPrxYFR``N?TUFE1Vgt^#&`5 zO-+My9dLEj${G7b!8;TjDW(Z}0!k?|15nE_Z|T82e>2vM$<6>e{S!sX>`z7N5`+FR zM}*oi9R^6C11?HgJV)l%FNZNIHyMMiqUz*?GFy8dS3|n9xo=ypC%2~UIj-s7Da;*2 zNg4eIVmjR7o;_@m@=eQETi3BHZ|F84Dy8E~p#s_!)NcgspQ_1OeVn%BbYgalPrQ$w qPipvTSWV*8emBfDW zd(T-c->%K=^CP2m!LC|aE33-p{Dv_KcG<|p6vnbM=ELWyuHEODJ1Ta{4tbS9r;{0U z(&;`i#-`Jlw^jaOZ0V5)7^&Z*`RV{Qs;mobXRokR`XAbe#=J9m3Z=>`5XiqdY?)nI zlLr~aR2c7JKdj*i$c$^PCVH{s5B^$2|Lmyki<(4IkSh>^_<)WmoZgGQ{rM^!5Mct_ v`jNuM=BWZAdZN3-4-mx~1DFtT0JPx=*rWH96>?!!_TvBFkFuZghjaD|2q}VZ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/glsl/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..7250a0db512ba7a6dd24b68deab66b5f8ed16bd8 GIT binary patch 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^SHlQ?;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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_forward.bin b/examples/runtime/shaders/glsl/fs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..d21059722450e9d253ade19f7d1150b62a5b2fad GIT binary patch literal 1936 zcmZ`)O;6iE5OwLHZKVE(J+2{G-nAWw5T~|LFO@3wh)}d(gCf~+>X={$_2>1s^ww*y zee3nwH&J#R%M$sDdcBn6~AsX;(Hs!g=~<*jl4y`d=;}yt=5dYla~oINf_`qwOK+_`&MQf zWVD17#_VTy&5Y}6pKzPGt33#VSJm)C`sGuRKsUFQos!&r7jCZtIX~b!WzzFqcFqL; z976U8wf$L?oWlyAI4{`&!Sq0!>yB6&#peTDT{T`!kK6PEQi=d^<3(Jd3bxS#8SO`) zkbpu1s*i!BEp$Xc(KwPR1Eh6;83D}3Q93|iBU})`1pu74Nrqm%uh^;elit3nb@6*U z9;hAerl7P`mxTV3(#s)za7f?8>*)jSKBk`&`Z=Y)=%JBUx$Ladec4-Pu#Ea7u&3Ri z3;!r7igARrHlz<}u1Z@z(d<)OS|Px?TJMr#n=~_6z1#LHG1zgu`lRq=A?zWs` z78sUd7}GZ~PkXB%W>nfZktq8i-y1m@{J#g!k9f(ZJChhXqM zOn|Vf!24MTp!uweb!YfG~|rNgXCzYhV*a<^_stXAbT7HJLd70ggCVH~;_u literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/glsl/fs_bokeh_forward_grid.bin new file mode 100644 index 0000000000000000000000000000000000000000..aaaba0f143ae97df639e3fec19c56a72aa6c6a7e GIT binary patch literal 1091 zcmah|!ET#C5G7GALFy0mG{+@zwhIOmDaxr*)MKR{s|amvY#{+_VaG9!@_GH1-g@n| zZ+C$%rBwjgqaEIxH#3iiFP|=d{QULZ!*%Apd&(-c%FEBPk=5?}-1G2w?=L*>Ae*+R zH+0CCb2?_%`Q zq8Zu$0GDPc>V3~LcNphjM2fM#8b8tvv4{)0BEX2cT2B50AsqzBPPt=;JDza2Z*aFX z;YN8mC{Ii$YZ~N2{(aw890c@YBzIa9)E7K8pjXPvT|Ui+JhFMsY`oEd7fvG!5Lv?% zryNtau^FoiNgYT!g0QhmLbGVhVzj{aWH)7O)v363C~x^QNJB10XK)Nox9XXgb_O#8 zU~D+(%ofZ{cUUZ((f?pzSN-%79W%j0*l1bGYD;XT_SE}gG3#GUK?R4+v=Z!J*Soe( zVTo~#DgAE>BaWO|Iu?$!`9alno?2>ht3i3P7_8TIBzT;dTg#e;cBY#$duZh5qy7jn Lu0PX#^?mO*g9to2 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_bokeh_linear_depth.bin b/examples/runtime/shaders/glsl/fs_bokeh_linear_depth.bin new file mode 100644 index 0000000000000000000000000000000000000000..0a3a571dcb3900f3ac40677fa3cbb90174fafcae GIT binary patch literal 397 zcmZ{eO^d=X5Qb;HsDb?p%N$!!SG#+w?nM#ro1HFn#T;iLjFzJf}0A#8M8~^|S diff --git a/examples/runtime/shaders/glsl/vs_bokeh_forward.bin b/examples/runtime/shaders/glsl/vs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..417e2ecf706f205e706a3dd51b89309c6aa25771 GIT binary patch literal 1035 zcmZ`&J#T|B6m*qHRlM{sc!a7U7c-8)9AlqHG~NoeFM;D`eGsQTBs^|y5E+O-d3 zgH36KqQv*!-M#Z;@$@)C@cH`w`5d585wf&gu=qH<&38thys+yrw!-X)}7%p%FZm^ z)of+MrX5pK{?p)V$k?FL5jw*~%AUa{Nut~*&G>)LMF>leuKE!b2Pkp21u~Wr%f@e* z)b8`-0JcMLLWufJ9<(H!)A>??kesh7z+F>Kog>tb9f(CcgC;mtgcY>ghjSS&AXewL z$gL`-c2~{Qn7tk~ud>)t6Zb6TeXZZuw3qIxmG$htK?AKd5YnzOXdtC6OYIaeQpdH) zeHBSPirf!SuGfxTVoS|$cnE|C+0?8X^cl-%Ud2RnIOz#zVumBKXjgOG#wLjLOP*@X r(;nujWY&g)spMMQWw26;Q<5gFj>1LzxmKOE4{d6F#Fp%X@@XAfR`DY8ukE%6HkMcg$Mt9vfXLotqWorNc literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_copy.bin b/examples/runtime/shaders/metal/fs_bokeh_copy.bin new file mode 100644 index 0000000000000000000000000000000000000000..45a5c98ec5f2c2848da1d404c2df58cce25875bc GIT binary patch literal 566 zcmZvZ%WA_g5JerjDAl60KTrm`vB9_@bQi~~61vGM-5FyPTXqGq6ePJALVvbDl8*c! z?qiSyni(BkU2XTTH|imYJ&Y^w*5ri}O7CfN6inYQ&gTUdrt}-@Y^&Lnz8<^p++mC_ z?0w|25N*jIZkVMaH?|b~kdRB>@TPonOZ1))(i$#nkhEduNDBu2sWlb9`Z32Jv% z>?oJHYArbtz^H_x_8AU!)#Y1F>lbS264JES?k|HZTa(ZKAzaQGEBMGQ>k6fG=>V-^ z+83&j7ebX(xK$bV(i0e+!?v;1s}8{o#!vO} z9~^Bc^licTg!!##4!F626TaM;guCdMLz{^k4LJYjcZVoEni&!dAk9#_bUbvG5YGee E8;LW#cK`qY 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 new file mode 100644 index 0000000000000000000000000000000000000000..cc75385e93c88b254edfdf79fe21ddb992b01262 GIT binary patch literal 976 zcmaJ<&uiN-6m}VGOo#or>^L3_h7GQlIK8AzL!qPW(o=T}L8!Kp31lfqa_g@2Z*QL* zh1hPWux0apeD8bTdsjDqKI-rDS%l|(^vTjfOKomgwUOL>J$imVLdVYhmp869d}sb< z>BjIop=*12AZzFzWPb>?zWCC3J`d1#_Mh*f=!Z~+tV<5FiaRE$b)^)ybF#NvQI)^^ zmHnF&Qd^mPdezV?!`8o< zVnNQJ5b{Zj(4)3T>X`%Mw-6^l z^L&bkm1ts5FKZtDr`|Z({1iQRC=5gAJsiV08>KMv7yczlV2Yh*gKawx iTj*1#S<~WAvxo3)>tW^l0AM)IUwH*_GYN^Ji|7U7F+YC* literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..8aa6b85d00f2e21cc194ca4c00ce65eff22b44f3 GIT binary patch literal 1292 zcmZ`&-)q}25O!hE%@1SSA20-iVGq~U5C4eUEKj4`OP{*85R76gsX?}bEthmZU} zDN5sIt&k16`}E!2cc-hHA8*=^v#A5?)Op+IMJwCxhSwV@y7woKk0;>Rn}3R}8agpD zmtv!C|3@415&HFzZ+OS+{=+NBf$f~yVDEHnSa3G?_U8&fpQ@&iLn+X-7K+QfSEa0$ zGxuQctGYbbzwmbExT{+a;IogNtCTWXn~A_Ib?- zTU@%o59qDr>RQQbUNw0;sDE!Q*Q;%Q)$#Q=t~f^Xxe?C8{^Dhlsu^=obeAi!E!ws# zHNnt}&XaA?95`0MUyDYeqg2LcZ|tiY1baU36<>?IY8HzC6>S4YAhFedMtQAdJ^*Yv ztX2?I2MiG8qPt7WsS##|Y<~b}T`vPo<3>PY82jBA?TPH1==63D%Xff{$7ux9Y`&Fl zTrD&O>F+CgfVMrgl%bqv6R?^(m{+#Sv$ce~So@>RC;-vIQ8WB-d;crgU&kS1STDi| zVVIIh93U`8#)w&*CN!NSnK2$CecvBthH^$yofz-c#YG`O2G8?Ih|#%iO87L5Y!Tl3 z=nPr6eH@1Z##%j7fbXL(&v8OsXAm$z@Uy9bgyGRRTkRsRuC|_5GeEtNqEMdI6o)us zgrzi2FzggF3K*?QhDnx?WD-%DWJZ)YA|y?sEX`O#qe(jPN7|;$tSF;2&2UUp%|cm5 zNt}SFBxN|-(O{ZJG0rA9fevI4GXq M;LW?PfjN5OoDo!3PBV05lR3N>G~aws2{;dqRavPvsUxmN#*>ksNzvJ1C_>;-8ms z)=SLNwGvA+^Ze%H&GqfKm-^juLGT=t7d_i>!#n%-IU)FwSC&;;YIDoGjTGk1(c|M$ z6|D#9u9{MXK6HOkX)*U!`7gNgpWSX{6@v6YP2}=I7-l{WYNn z$=!{UH@sC$_wL_Ut93K5Ys1%HxZ^V@ig8ZKEG-X{v?}H}gCER^q0-vao}jnFBvMyu z;%Jb+6UxC}DY2czu~q?oMPVIZ3)ZT#%%IW=O(Y53e*o4w$$EsX`li98K4At}ix=~( zUW|iTLeK|sA#@lx3Ks$ABct7J&5kIng)eU#2z(PP-ku2N+0rn&xLXtj{C@=xD4UlQ zt$a_JtDtid+R3-+c4jCl!@1>=9%(+@|IDD_)?Hjw66;NpWS-C9G)yo5yEf-#exJe# sgmBp6DNWqe6KT>EK0d{X*-tQG26!ES4C%IOBTzWyo5%g7l#t)#51>**f&c&j literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..21af1590cb36c85313372ba5ca27769bbe8508ed GIT binary patch literal 2639 zcmbVO+iu%N5T${jZ5W_P{Q<=S1q#Ym=;fV^9X%CkU-HuQO%Mo*q8tJg>5wa1wh^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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/metal/fs_bokeh_dof_single_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..561bbdcc862071d50136fda49cfdb1dbca9b4aff GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_forward.bin b/examples/runtime/shaders/metal/fs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..92f9a1d70e0857732412489f59f3a7b7d7cab522 GIT binary patch literal 2084 zcmZ`)%Wl&^6m{7YEFm6WFcK0Px2f?naoW-qDr_ntm0c8>iR~0ieiVCLoK$=s-@=Y9 z%X06GV^7lHritdxIrn*He0lxp+3!Dpe`)X>YA@=LWs4*(uUUSZCDp5ghlc~$>Fr;V zmN!+R*o(5tS@sw&?K}AAO_-N)l6__s%j?%qGz~u5(@oTum<2pwko1k=?oiX-q(zi9 zaYD}XgtIKHd7Pz-3w^NHX&%4BFZ0`lt~YgB+>nChNqx(rgb3D|uGhS3B2L1OS-D`D zeysR+~Z#7t<4y};@K5Ti?D3?w%5hY zvJEdQcJqO8W|7$}DzmbpmND-F>~WG7st=dkbsYhAQzsS8%BYYI`t%(D@uZE)vWhWE zkF!Of9_J}ITg5s5$2ls_?Gs-@QF#KL*{NS$Q*|#b2z+KU=;uumrp0_dB7J+ik-Q~g z&aFrha(o|y zMO9hXbPwEyrmPK2)%MjikvVpHCT@@Rq$TOQ#EA_=DncKLlFZg1$7lhU!U9d*B?Z0alSbbdrOxXq0*oS?1O-M$lqV(H3uOve(BHyH=+#P$Q|Ep&xirY$!t z+nZXpJ+>VfznoB%!9^lx1dT`G0c}Jq6UKvw5j+4CUq3GO;Yi73_j89{ZgtBMEj*U4 uRo^4x_+t^HufZ}sU;K>&Yidu&-o!D0GF%H)0+(!oR~EedbY0WFYX1Nnp?XaK literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_bokeh_forward_grid.bin b/examples/runtime/shaders/metal/fs_bokeh_forward_grid.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee413ef4670a7f936f7739cb2f22dd8bddfd0f7f GIT binary patch literal 1204 zcmZ`(!H&}~5Dkb6k+|>$BOxJYw>6H_r0p(UE@uOL5((9=~}r^Jbdcub*H3`u*ppgX@{|s)}>HNaYt%h`fCL+;MO_KVCS_ zn@lCLTBPtkPmPdqX%;e@-?&fqGRqh5?1O&0aowuS)C!cy({e466l$+)*DXy^B?jV8 zQqP5SA6>w;lvE2nN$>qNOef z^Jf1i$yApkfcseKA{P?9t1>N!)QM^cIw{`ACfy`j7Yo0O<8`33INrqthlG}xY@R9u zCv|ntqFf~{i> zsPQ3j4sj4gXchC4U{_GXOwmr!bhCrYreB=&8D)&KW{n49+>A$_=XDq@;Rp#WFWnqp z4E_DZwsR3c%*WQHX-Bq8n;e>Bmm84*3y+XZ{q%T}{2ASBchE-xk89cPS~`@1p3Kms zol3IS55&qr4!_O@VRaC%*SH0Q(^i?mFd79zKOA`;TmZph45>xw1A-XZ8lh|31uz<- zf-sq2wibvY{R2eX9_YabbQy+l1wQ5IYGW|!w_WkECB7f|+;&Zr=ISbuB43k*MsAe3 zS4)UlV=H^ez-;Wc!2t>D^sE5qeNQ^H|7-AC?#qU{%iRMWMsw*wxO1T2bDsI*+$x76tlO`=}4|`(kc1eqHDqIlNC>_lvFwUyKA{BYI?8P>W*19 zh9t?9P&yn(>Hj39>~l=ujapu3O6lAaIKy=)R3^6^1@c#1TG)}&kHdbglz>l?7|T|i zmNHF;kSU2FlC-zK1X@`^9m1BbC~&ABI0V$<{h8#m&0-eN`hmE%)B;W8Z&z>a_EVd} z1{Sqf?W@Bjf`8}mfot{_U=;6ca^Ct9HY(#Ed&X&8!wCM$zr$6hCT>K8zyHM{t|jiR WJBsTlY9wfmx0YTBnomd&jDv4fp6@6C literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_denoise_txaa.bin b/examples/runtime/shaders/metal/fs_denoise_txaa.bin index 2d39dc3e3a730e3c87eda79cb506b5c957b99c11..49aa21240ef63543524035abd78216a0c647e5df 100644 GIT binary patch delta 16 XcmbR0IMs2(ZVP7zqibs}kC@LP(`6Zg5#q3284;WVxwZj2yd4?9$y8|Hg%H z;l`CK<0h@MQK__1V#VWmGxOd|a{cAgIl=4qpTED($a70`z2Nd%@b9xif9rNWJniD? zliH4Z;`Zm33bk=w-45AVo;@byrBIo)3l8sdZkVK{Sx7Oz47|M*`QnXRqOX@hU`wG^ zpjgh!HOn~cP?I1iO<^+w^rO^sCWE^G@LEdE%y>J7L+VM}zAHT$#p&^rJ*i3X!zbBF zX0D99VnR`EO*7dDC|9PqnQ5WSXKU8h&<$0($eDyBu_Z4;sWUa`rOk}-QJCS|OzUDX zXd;LAk>iudVG|iY1Q|Dxqc(CS=}ecx2(8d>UB5a?|B*?k`zkT72{Wb;b8C3m5@igG z?n7f1@7IzbM!%+1-mzlrO4{%OU7*#u=00qm2?cm3Nom-MI7q`yy(5v!XC;12FI>hw= literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_bokeh_screenquad.bin b/examples/runtime/shaders/metal/vs_bokeh_screenquad.bin new file mode 100644 index 0000000000000000000000000000000000000000..c739d7e5915cfaaecae9363bdf0b726195b27f1b GIT binary patch literal 699 zcmaJ;O=|)%5RKxcxwOBa3>1nM*{XQ+gWlSUR48~^B*filQ?iLsOtz8*LL4QU$|Ip)?}L z)ab>Sm;ZB}rT4`Vy^c8#xwb2?GE@0lCJGL$0p~gTkRXUh;}+8JJqKD#<0SUCeK->^ z;GZRBYa~w4Or*BL1*}qgAe2SFn>uarIp8{=*a%eH#5tdKAdW+>eABqZc3SiKpi&f8 zMoe9JO{-~{OwR9h(_$3ivB6__DsG4VmdW5SADuLaDqN3PFd4j-Mqt&=s zebW|b$8nBwrG&Qgc^eXEDYPepZ$V^eL?GBAESF?Lp{sT5pqh;=h2k5*p0pHGp(v`l zGdkvq&ZY!+#{o9AjY>D7?e3!u-Kf(l)BQiD5%og}PB#7Uyu#pZp@v4nIjh&$6?L)Mv9gaNv;>=9s!R#W+-|Ec2Ch7;X z8@OG4A>P2;7~HoQNAXZB^RLR89n4G{a%Kgic_~NlT3yWjE~kdR8*%7<$l<9yk_!58 LKbmqcnAGeSP@hmd 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 new file mode 100644 index 0000000000000000000000000000000000000000..e46e15edfcab30ac3d19eb2931d3f3507eba6f9a GIT binary patch literal 1458 zcmZvaPft@(5XGl0Ek%?{NHA(bKv#-1RneHJ{0RnJkN~OCWmDnVkQ5(zEu&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~ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_debug.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_debug.bin new file mode 100644 index 0000000000000000000000000000000000000000..2d2668bb68374583e6c80be86e35ca8d4fe072f1 GIT binary patch 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|07b?{mI$^g}0|oSFBXZ_dn|>E!%$YqfXul1VbwvX$Q`)C!f& z?q)On?7(Jzv0ARy<_ndLas>q~<}!#Vf^*2Lks4t+-- zXr-{a4*pcykiL|5Di%(c$ZE2b&TmSd5*q&|rMm{i?HvbkY2#9l`wk;~$l>vUMEJ;G zd{2By_|5gz(rC$P0XfMY3RFOJ~E}A!II8ycKyfmF%R-l7xgfcHfe|V8#;TX2t0ELevh(} zx6f@sbjL9v)N@!^MrT%f)LOMs(Y_>f#wGYil$(3`hMf5A-e;$>@=xnT$bZrM%pZY2 z6PfNVczpUoLOk4|In_T1% zaX)2)6E~-Cnc*8LI5IAT`M#C%ChP}q!F;KQ_;*tH5c^(sJeJvq*blPdANsr66VYCg zBVZjKqmKJNu2UGXa1T7zEgPJi`!y+Q>5;FW_P`9D9c6DrZ5d(l+SbH{+FHcHhy1Ow z$p;>0^HK54775snY%qoW!9ID6U6@s6yvb)N-|tA_$v>(MVRztuDZ_b}Wz2p9H-E&b literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_second_pass.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_second_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..48fb6fd00575f5a48bea6f589d0ecd3f2349199f GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_dof_single_pass.bin b/examples/runtime/shaders/spirv/fs_bokeh_dof_single_pass.bin new file mode 100644 index 0000000000000000000000000000000000000000..cfd1267a6f0a71321645c1fdfba4714858a00a92 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_forward.bin b/examples/runtime/shaders/spirv/fs_bokeh_forward.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b5f9c10f9f55146f923b74758bd78e911b06f65 GIT binary patch literal 3626 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_bokeh_linear_depth.bin b/examples/runtime/shaders/spirv/fs_bokeh_linear_depth.bin new file mode 100644 index 0000000000000000000000000000000000000000..6bdc868a9473b693cd305ee78b13178d2f78c45a GIT binary patch literal 1369 zcmY+DOHWf#6opS8w}3<_8Z|!B6p4tBkeY}wQ3(pR)ewWJ%CNc8OC`44dRt5fI&$LA z;5Qg2J_b0`|HHtE!S$V<6R$g2oW0iGckg}nDb+@OA}%f8HL|>!>Ni_aZ}6%Sc6*&D znaLa-Wfbu8vuHTjOCm3i?=^d25_bD1ltkW``@CXS#7y=uZ%i&bH%9cB88^RBWiuvg z^CwNgp0)MH`eJ|3TD-YbAwFet95yzs?^MR38}96)^CuDB3q|D;R}*}2hnf~wPJI*$IJHi&}OfNgHT(jX?o_p$cHk|XXS4=&fMuZocM}B z{zIJwp(xbV$g3BB;>{W3b!=J^@brZ3-66Mo!r-ncA&Nhe1AJC4s=WfWgou}<>2yN^GS&z!`&&Zi&s;JlNMzi~eMBM#@?eEgk!{@eWbaNZH^mVPtz zX2%%XZz+M!ds5l;Wr01z+0Rvhy~63)7wGpwU$Mha0y%uQDUH6L1$1(sO5?8k0y=hI z3VZk>uq)mLuqXPE|5YIFbHB+?=dv@O`&~Zq53bjNe6)SxqtkxKr{;mMp$^RXQ$SB+ RSzBRW#Qtcjx9w(&<}V;4e`Ejv literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_denoise_txaa.bin b/examples/runtime/shaders/spirv/fs_denoise_txaa.bin index 370bc762a094d5b85df3e840468de785b009e609..8011ab5cc2565d12c504474f1897153f807ed40b 100644 GIT binary patch delta 19 acmZ1yz9f7@0TuD^%C^`_UxsnlJ>AT>-*Mquf5OF?yinnr}g#QkEw*KAIkPe zJ-vP1`QBrl#pp;?MJ81xYfa#V9k_NVn=cIGRaN0UGpQ_z%H=iARk%8ra<$@F3tXib z=jOO-|7_pWwWn>c)YGm<)U4n|~Jo@xTJfHOb^cyxT&l=BF&Tuvy)l0ZG z@vNkN^qR{SR4UhJ9KGkV1JPiy-yT=KMdu4YIdu@~ic% z##hoI%}#7iG#DacAX)8 z!LbLW^LJ9 zu|LJ|UEL;@m;niM0MmO(!oI=uG9qE0`xM0;IWNJ7W!wena4J8|T?`!cJHy#rl1@DS z*y(ep@^Y@1C7d;Pj@q2@6$$)=eCX|}gdFfzds6z}{ag!Nyr1iVi}!Ow9P#*LFZWaJ z`?)DhKfE(766@)fbZpksZRzBJ->bim%=C@~9%0c3bS|>nX`>dwU#gwznt3S1@K*1Yba;ei^=xjh#o@!ut%oBA+qK%bV9*;C@m(#MLYFEBHJc}+0)7KImdmZj8NOYx#?1WfFTN8cLD!qg@w`AX@m zaAh%No#bWyy%bkc4nKRqAL5_MrY`x22eS`2;-9BBJ>v(npWxq>&6gVPgV`4x_v@)0 z?t|GM{%yS{y)Xv?cPEDL_@!8Ku1o0$OpXmH^L`6P