From 4760628bb137736507f4a805ec44735ac42bd84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 2 Jan 2021 10:46:43 -0800 Subject: [PATCH] 43-denoise: Added shaders. --- examples/{xx-denoise => 43-denoise}/denoise.cpp | 14 +++++++------- .../fs_denoise_apply_lighting.sc | 0 .../fs_denoise_copy.sc | 0 .../fs_denoise_deferred_combine.sc | 0 .../fs_denoise_gbuffer.sc | 0 .../fs_denoise_spatial_3x3.sc | 0 .../fs_denoise_spatial_5x5.sc | 0 .../fs_denoise_spatial_implementation.sh | 0 .../fs_denoise_temporal.sc | 0 .../fs_denoise_txaa.sc | 0 examples/{xx-denoise => 43-denoise}/makefile | 0 .../normal_encoding.sh | 0 .../{xx-denoise => 43-denoise}/parameters.sh | 0 .../shared_functions.sh | 0 .../{xx-denoise => 43-denoise}/varying.def.sc | 0 .../vs_denoise_gbuffer.sc | 0 .../vs_denoise_screenquad.sc | 0 .../shaders/dx11/fs_denoise_apply_lighting.bin | Bin 0 -> 688 bytes .../runtime/shaders/dx11/fs_denoise_copy.bin | Bin 0 -> 358 bytes .../dx11/fs_denoise_deferred_combine.bin | Bin 0 -> 1409 bytes .../runtime/shaders/dx11/fs_denoise_gbuffer.bin | Bin 0 -> 2158 bytes .../shaders/dx11/fs_denoise_spatial_3x3.bin | Bin 0 -> 2193 bytes .../shaders/dx11/fs_denoise_spatial_5x5.bin | Bin 0 -> 2241 bytes .../shaders/dx11/fs_denoise_temporal.bin | Bin 0 -> 2755 bytes .../runtime/shaders/dx11/fs_denoise_txaa.bin | Bin 0 -> 5225 bytes .../runtime/shaders/dx11/vs_denoise_gbuffer.bin | Bin 0 -> 1539 bytes .../shaders/dx11/vs_denoise_screenquad.bin | Bin 0 -> 530 bytes .../shaders/glsl/fs_denoise_apply_lighting.bin | Bin 0 -> 402 bytes .../runtime/shaders/glsl/fs_denoise_copy.bin | Bin 0 -> 157 bytes .../glsl/fs_denoise_deferred_combine.bin | Bin 0 -> 1548 bytes .../runtime/shaders/glsl/fs_denoise_gbuffer.bin | Bin 0 -> 2191 bytes .../shaders/glsl/fs_denoise_spatial_3x3.bin | Bin 0 -> 2068 bytes .../shaders/glsl/fs_denoise_spatial_5x5.bin | Bin 0 -> 2136 bytes .../shaders/glsl/fs_denoise_temporal.bin | Bin 0 -> 3723 bytes .../runtime/shaders/glsl/fs_denoise_txaa.bin | Bin 0 -> 6595 bytes .../runtime/shaders/glsl/vs_denoise_gbuffer.bin | Bin 0 -> 1540 bytes .../shaders/glsl/vs_denoise_screenquad.bin | Bin 0 -> 317 bytes .../shaders/metal/fs_denoise_apply_lighting.bin | Bin 0 -> 862 bytes .../runtime/shaders/metal/fs_denoise_copy.bin | Bin 0 -> 566 bytes .../metal/fs_denoise_deferred_combine.bin | Bin 0 -> 1694 bytes .../shaders/metal/fs_denoise_gbuffer.bin | Bin 0 -> 2299 bytes .../shaders/metal/fs_denoise_spatial_3x3.bin | Bin 0 -> 3630 bytes .../shaders/metal/fs_denoise_spatial_5x5.bin | Bin 0 -> 3676 bytes .../shaders/metal/fs_denoise_temporal.bin | Bin 0 -> 3812 bytes .../runtime/shaders/metal/fs_denoise_txaa.bin | Bin 0 -> 8341 bytes .../shaders/metal/vs_denoise_gbuffer.bin | Bin 0 -> 1720 bytes .../shaders/metal/vs_denoise_screenquad.bin | Bin 0 -> 699 bytes .../shaders/spirv/fs_denoise_apply_lighting.bin | Bin 0 -> 1533 bytes .../runtime/shaders/spirv/fs_denoise_copy.bin | Bin 0 -> 864 bytes .../spirv/fs_denoise_deferred_combine.bin | Bin 0 -> 2986 bytes .../shaders/spirv/fs_denoise_gbuffer.bin | Bin 0 -> 3900 bytes .../shaders/spirv/fs_denoise_spatial_3x3.bin | Bin 0 -> 4308 bytes .../shaders/spirv/fs_denoise_spatial_5x5.bin | Bin 0 -> 4420 bytes .../shaders/spirv/fs_denoise_temporal.bin | Bin 0 -> 4738 bytes .../runtime/shaders/spirv/fs_denoise_txaa.bin | Bin 0 -> 11172 bytes .../shaders/spirv/vs_denoise_gbuffer.bin | Bin 0 -> 3399 bytes .../shaders/spirv/vs_denoise_screenquad.bin | Bin 0 -> 1078 bytes scripts/genie.lua | 1 + 58 files changed, 8 insertions(+), 7 deletions(-) rename examples/{xx-denoise => 43-denoise}/denoise.cpp (99%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_apply_lighting.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_copy.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_deferred_combine.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_gbuffer.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_spatial_3x3.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_spatial_5x5.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_spatial_implementation.sh (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_temporal.sc (100%) rename examples/{xx-denoise => 43-denoise}/fs_denoise_txaa.sc (100%) rename examples/{xx-denoise => 43-denoise}/makefile (100%) rename examples/{xx-denoise => 43-denoise}/normal_encoding.sh (100%) rename examples/{xx-denoise => 43-denoise}/parameters.sh (100%) rename examples/{xx-denoise => 43-denoise}/shared_functions.sh (100%) rename examples/{xx-denoise => 43-denoise}/varying.def.sc (100%) rename examples/{xx-denoise => 43-denoise}/vs_denoise_gbuffer.sc (100%) rename examples/{xx-denoise => 43-denoise}/vs_denoise_screenquad.sc (100%) create mode 100644 examples/runtime/shaders/dx11/fs_denoise_apply_lighting.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_copy.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_deferred_combine.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_spatial_3x3.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_spatial_5x5.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_temporal.bin create mode 100644 examples/runtime/shaders/dx11/fs_denoise_txaa.bin create mode 100644 examples/runtime/shaders/dx11/vs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/dx11/vs_denoise_screenquad.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_apply_lighting.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_copy.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_deferred_combine.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_spatial_3x3.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_spatial_5x5.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_temporal.bin create mode 100644 examples/runtime/shaders/glsl/fs_denoise_txaa.bin create mode 100644 examples/runtime/shaders/glsl/vs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/glsl/vs_denoise_screenquad.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_apply_lighting.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_copy.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_deferred_combine.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_spatial_3x3.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_spatial_5x5.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_temporal.bin create mode 100644 examples/runtime/shaders/metal/fs_denoise_txaa.bin create mode 100644 examples/runtime/shaders/metal/vs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/metal/vs_denoise_screenquad.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_apply_lighting.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_copy.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_deferred_combine.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_spatial_3x3.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_spatial_5x5.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_temporal.bin create mode 100644 examples/runtime/shaders/spirv/fs_denoise_txaa.bin create mode 100644 examples/runtime/shaders/spirv/vs_denoise_gbuffer.bin create mode 100644 examples/runtime/shaders/spirv/vs_denoise_screenquad.bin diff --git a/examples/xx-denoise/denoise.cpp b/examples/43-denoise/denoise.cpp similarity index 99% rename from examples/xx-denoise/denoise.cpp rename to examples/43-denoise/denoise.cpp index e7abb1ee7..8d0680a82 100644 --- a/examples/xx-denoise/denoise.cpp +++ b/examples/43-denoise/denoise.cpp @@ -286,7 +286,7 @@ public: // Create program from shaders. m_gbufferProgram = loadProgram("vs_denoise_gbuffer", "fs_denoise_gbuffer"); // Fill gbuffer m_combineProgram = loadProgram("vs_denoise_screenquad", "fs_denoise_deferred_combine"); // Compute lighting from gbuffer - m_copyProgram = loadProgram("vs_denoise_screenquad", "fs_denoise_copy"); + m_copyProgram = loadProgram("vs_denoise_screenquad", "fs_denoise_copy"); m_denoiseTemporalProgram = loadProgram("vs_denoise_screenquad", "fs_denoise_temporal"); m_denoiseSpatialProgram3x3 = loadProgram("vs_denoise_screenquad", "fs_denoise_spatial_3x3"); m_denoiseSpatialProgram5x5 = loadProgram("vs_denoise_screenquad", "fs_denoise_spatial_5x5"); @@ -319,7 +319,7 @@ public: m_recreateFrameBuffers = false; createFramebuffers(); - + // Vertex decl PosTexCoord0Vertex::init(); @@ -519,7 +519,7 @@ public: lastTex = m_temporaryColor.m_texture; } - + // denoise spatial passes if (0 < m_denoisePasses) { @@ -532,7 +532,7 @@ public: m_temporaryColor.m_buffer, m_currentColor.m_buffer }; - + uint32_t denoisePasses = bx::min(DENOISE_MAX_PASSES, m_denoisePasses); for (uint32_t i = 0; i < denoisePasses; ++i) { @@ -638,7 +638,7 @@ public: bgfx::submit(view, m_txaaProgram); ++view; } - + // Copy txaa result to previous { bgfx::setViewName(view, "copy2previous"); @@ -715,7 +715,7 @@ public: // update previous status m_havePrevious = true; - } + } // Copy matrices for next time mat4Set(m_worldToViewPrev, m_view); @@ -1072,4 +1072,4 @@ public: } // namespace -ENTRY_IMPLEMENT_MAIN(ExampleDenoise, "xx-denoise", "Denoise."); +ENTRY_IMPLEMENT_MAIN(ExampleDenoise, "43-denoise", "Denoise."); diff --git a/examples/xx-denoise/fs_denoise_apply_lighting.sc b/examples/43-denoise/fs_denoise_apply_lighting.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_apply_lighting.sc rename to examples/43-denoise/fs_denoise_apply_lighting.sc diff --git a/examples/xx-denoise/fs_denoise_copy.sc b/examples/43-denoise/fs_denoise_copy.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_copy.sc rename to examples/43-denoise/fs_denoise_copy.sc diff --git a/examples/xx-denoise/fs_denoise_deferred_combine.sc b/examples/43-denoise/fs_denoise_deferred_combine.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_deferred_combine.sc rename to examples/43-denoise/fs_denoise_deferred_combine.sc diff --git a/examples/xx-denoise/fs_denoise_gbuffer.sc b/examples/43-denoise/fs_denoise_gbuffer.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_gbuffer.sc rename to examples/43-denoise/fs_denoise_gbuffer.sc diff --git a/examples/xx-denoise/fs_denoise_spatial_3x3.sc b/examples/43-denoise/fs_denoise_spatial_3x3.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_spatial_3x3.sc rename to examples/43-denoise/fs_denoise_spatial_3x3.sc diff --git a/examples/xx-denoise/fs_denoise_spatial_5x5.sc b/examples/43-denoise/fs_denoise_spatial_5x5.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_spatial_5x5.sc rename to examples/43-denoise/fs_denoise_spatial_5x5.sc diff --git a/examples/xx-denoise/fs_denoise_spatial_implementation.sh b/examples/43-denoise/fs_denoise_spatial_implementation.sh similarity index 100% rename from examples/xx-denoise/fs_denoise_spatial_implementation.sh rename to examples/43-denoise/fs_denoise_spatial_implementation.sh diff --git a/examples/xx-denoise/fs_denoise_temporal.sc b/examples/43-denoise/fs_denoise_temporal.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_temporal.sc rename to examples/43-denoise/fs_denoise_temporal.sc diff --git a/examples/xx-denoise/fs_denoise_txaa.sc b/examples/43-denoise/fs_denoise_txaa.sc similarity index 100% rename from examples/xx-denoise/fs_denoise_txaa.sc rename to examples/43-denoise/fs_denoise_txaa.sc diff --git a/examples/xx-denoise/makefile b/examples/43-denoise/makefile similarity index 100% rename from examples/xx-denoise/makefile rename to examples/43-denoise/makefile diff --git a/examples/xx-denoise/normal_encoding.sh b/examples/43-denoise/normal_encoding.sh similarity index 100% rename from examples/xx-denoise/normal_encoding.sh rename to examples/43-denoise/normal_encoding.sh diff --git a/examples/xx-denoise/parameters.sh b/examples/43-denoise/parameters.sh similarity index 100% rename from examples/xx-denoise/parameters.sh rename to examples/43-denoise/parameters.sh diff --git a/examples/xx-denoise/shared_functions.sh b/examples/43-denoise/shared_functions.sh similarity index 100% rename from examples/xx-denoise/shared_functions.sh rename to examples/43-denoise/shared_functions.sh diff --git a/examples/xx-denoise/varying.def.sc b/examples/43-denoise/varying.def.sc similarity index 100% rename from examples/xx-denoise/varying.def.sc rename to examples/43-denoise/varying.def.sc diff --git a/examples/xx-denoise/vs_denoise_gbuffer.sc b/examples/43-denoise/vs_denoise_gbuffer.sc similarity index 100% rename from examples/xx-denoise/vs_denoise_gbuffer.sc rename to examples/43-denoise/vs_denoise_gbuffer.sc diff --git a/examples/xx-denoise/vs_denoise_screenquad.sc b/examples/43-denoise/vs_denoise_screenquad.sc similarity index 100% rename from examples/xx-denoise/vs_denoise_screenquad.sc rename to examples/43-denoise/vs_denoise_screenquad.sc diff --git a/examples/runtime/shaders/dx11/fs_denoise_apply_lighting.bin b/examples/runtime/shaders/dx11/fs_denoise_apply_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..9b13db3bd1ecb2fa219cac1e790d8b6046a6e82b GIT binary patch literal 688 zcmbVJJx{_=6g@2}XiV&4qJxIj#0YUP4u~kUPzOqAF^vlfqQ+oqU^n=&`3Ia`9Qp^0 zqqF`GXJ-e`eWglROuXsod+*$jbMJeWTbT})^EuEaknA_xK{x1SHGm&d{pL}()j1Bb znx=?91AHAQ`Mbr+<7s>AYsr0DyESur7b{XtdV`zx>7F#O#Q^@#^9Qq81HIkgjbwi0N&qb3o(RT1SZGh#`Q&KRA2Jq pxv7&J&$smd^_F@0$j1-~)!XoHq^8&g`@I=*T0xk>c0PJad;@aHRVM%d literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_denoise_copy.bin b/examples/runtime/shaders/dx11/fs_denoise_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_denoise_deferred_combine.bin b/examples/runtime/shaders/dx11/fs_denoise_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..1b2c4923773d648f6d65ba654cc36e1ac246b229 GIT binary patch literal 1409 zcmZ`&OKVe65dL!WFiomS3xZaNm%6eDY8JJXlH9you)U>ukm@2PD2P}aT6`@EL3E|K zaN$Zp&|Ut3xKQaY=&It@AK=1Y;5X+HE@>SyXHI6mne)w@bF1~`iS0~o36wD6k2?MC zPIqf}`Xs;~;=7%P+dEs`2UkKNgpPA8M1gXH<|n@PZXdaZ}b?wTfTGxv950>wbNuvEr|xQE8Waf1`}yaOktH zoTEt6x>PHpx^ytVQP`+e8ceD$SK3b_fbhvM@qQekO(0Tz9oSixxF;P@?Z9MnfKS#v3qP+d|3`P3+;;yTzY^c)$zFCLkT!f)lxNe zQ$S+c!jASH}~Ck~~*Y6nM79wPG44^9lF{#3*q*ZMn)$6fsl#+%a`7 zvWKGKFlVgrlRL;THfww{V;FLe+q^{JeoSvU;cVl!E;%Oyz7c1W;|1#o*8o=9fE(ar zYg%69dxWcYN3ytK5nsMu;t32|)yx4o)4cqpF@)U>f+P3zNh`{>y-q~?yR Z`;3{|t*HJ#&zjFoOy>>qIrSV5@DG2Rbt3=( literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_denoise_gbuffer.bin b/examples/runtime/shaders/dx11/fs_denoise_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..de874793df51b8fb10753042e0ebe6a5a742a6c4 GIT binary patch literal 2158 zcmah~OKVe65T4vT+lq-n!MG|ex)LlwL<%-HHc4BoO=;2)MW`)FQK?oUK9C}@D?t$i zDe78u5pf~ixDvWfMeqkGt^{`?uKm7q&NP>(IB@RFnddii&b_x(nHu=;_;W)*Q5m|i zc=J;8R<(J%xtfM1gq66yxU{<5Y^;r9=M-1hT341?i7yXdeSh-l zUFOaGtw>{i=O@$A76v=xu07R>S#i$s6=l9CW!SkXMGr#&7Q>GbJ6 z?89)N-qhsYt>lo^(}zTT1S{$Ca8DwSVkNOEwZ*w|Wx6_Do|W11{F(fWREzbAa(TWW zWne$={E2-IOG$Gv2lYWLlvN+ZLfO@<=I1AiRq1ppQ^opg42L;72)vw-&{@DPJsO6_ z<~>Kq7gA=gGHcWiqP=TYzp&8T)5d*cSR&b!wNtm8l5h)qm1!d;>fb_UPwK1=4 zOaVFyecHtylAitqu7~Oeot<@ex_kT#u=LxqA_M(8`hVkLoINlHYy3*O`M5Z>g<-=y zOr4Pd>x*6ncWXziZWEkXI6LBITrfv1>hil>w0(6rUJhDY4EdSEoCR!@M=~}a?*r$c zbrqA=pq&`li`s%XiQVLLJt$7bah6%sqpbIX=fzsV{$uKc9;l~}_Mq6=C-c^{c+-74ohR+YX*hai9koH+#ic&McZ4%A z_yX?;^Y9%ZN59EkALr}&Fo^KUWytf%+VAb6{BI1b7n~#KM;+(KnmR{(w|a9_oQ}gS z5txU$e~b40(UFCg;YyBz?#A3>eSv4eO|l^`1Y=`)fi&AW+wq*8m>a3kZpns+-kO@VB_YOl#<`W5w4X0 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_denoise_spatial_3x3.bin b/examples/runtime/shaders/dx11/fs_denoise_spatial_3x3.bin new file mode 100644 index 0000000000000000000000000000000000000000..99927b4750a0394c22ae8c19d0bb7998feb968a0 GIT binary patch literal 2193 zcmb7FOKTHR6h4`>d6l+9prQrq=tii5p%fJ@ZTiTxanY0}l_)~28fc|8C9&#CLUAX! z)Bm7x<*IHh3W5vW`2z(1K@rz}-^@M9bx_2CGxywczVp2I%=qP{bYpCKO7Ns)V7K;Q zv;MGBe^lSfLK35Nx3;t1T;FbG2VEJ2Ala(jZfrH0IcNhwt9Gx^++N?x#bSW~fIIb_ z`y08Kqx=6e_>mM@sLsv5IsWczXK?Dur_bNtJ|DR8lF_J(V?7Ic0@?=^%Ztk^SRGIb zbP>ddcw+esgBAiVd{G|g!IZDoR!Ze!rC3^)N})PmDy=R^r_(9HFXIGNV)a1!*nVMO znO$8hRA5wIDpV(tBlGzJ!@DVoT@&f^pLv1l5Z>3B)=f9qE6*6pvySRf>64uhv$odT z6KC&<<^Gl{@d?)ra;?Mvp%>b2pe<=&Hjx9CpdVxkB2PbvwCC4GVbnX%>ct9Zo9bbB-u_QuHr0ADsSr#X|;sFjD! zPhx-+Gj6bq^ZMiI3y9y(IB|IPO&rSD3p*dmvXJo{P41EddlJ4+8F|Li(_dWr;-g09 z{RPKfoPlrVN8joLY>+c$%()l0eSq^$GiJY~V;tr?YVMQPm4J+OF(1k_&LxA_T6_Mb zTNkm6L9FVvF6Km?XY!2VSQjX$fjaGj+MPgel#k}XIxx<$5s>!A_D{9urarg4ef;af=@a*;W7y{F1gyprRG(DuPf2LlG6VHT{uodud9Ow$V$hHqc6ILSogEgyKaC zUIf8^!TJaEW)-~nA9xeId+4EOzi;`LLtyZ?rl|Cqvt?J|YX1$q%H2}1#PwUOC)y-Ti7AOE% zt2Lgj=VFeo|Igu4N@Th+IpzKOJ^Ot{8oTe#eR#8bw9IU@#W7#Sc#W}-F;|+IU%>2O zz$~{g_z+Jlp8<^NKnh>f2X+XhezQ?a$qDoYPJu&-<1e>@V}MX6$i#6d1~W z+rvA25=Q1py&;mw<~(D;KISR5$80@08~wPgXWUSKa7@pAKMBvC8vPi!Wja0W4}0n4 z0T6fG9;{)~)G%c6w&m-%aEci*Smyck?eb0V?PVTv@=YG<*t;%&m;8IP&~-VA$mqPk;F#kIVv`?ZYYd11XX?n=%6owGk!DWjP#g0w){r@WT2}%( z*2Vg$(>%8gUTd}Dcj_XRIfzxe*2TP(J;O7K3wmeSv=8cc9=%aH%7I*Q{bPd|+8aAQ z&B{$3mux$~SEp*7-ksf{$Id_QzY)@b& z4}60=cIv+vJ$ueL;FnZ?_Mbl7qdOn>?~z;7X5$%yc=f~i=`-^I;zP($4Q2_9?0VG5roC3>F_!g!n0c00-c? ADF6Tf literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/fs_denoise_temporal.bin b/examples/runtime/shaders/dx11/fs_denoise_temporal.bin new file mode 100644 index 0000000000000000000000000000000000000000..528198e68cf4aec47584c0d405f24a640e865f6e GIT binary patch literal 2755 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/dx11/vs_denoise_screenquad.bin b/examples/runtime/shaders/dx11/vs_denoise_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&DUe?53=O-Cizl8!-Rau+^sA+6)7*A+$H{SkyW6HjSazojs(8E*mF&R~KLC zDrimBl-9+caM63*I!hiyMDRfmsPI{6M5NfrD8B7#eU15jgH=zyg zL6~hT1O@7L&XT*h*hkkfrSgOkkOcg*Zb;`~_bf?}P2WVU;t0YgB`L|!8msC1=|=FV Xl+s7fOTBa^U-(s1^e|n*e>rD=&Qo)j literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_denoise_copy.bin b/examples/runtime/shaders/glsl/fs_denoise_copy.bin new file mode 100644 index 0000000000000000000000000000000000000000..664d50ec08e53d34beb4914710f3d36ad3a8cc13 GIT binary patch literal 157 zcmZ<@_TbEyv$J6U0!9Y*;`rqJoctmn6NDJ5fVeENs4_DzU7;*B*+`)*z9h9GIX}NB z#lV`YG%qtPzbIFsI5D>%C$-4PMFFbanyV~7GesdcF*8p=LzAnTOFbpDH67C3K3kQ+PqNVS!Kv6TX_szu zVtnv-K(x+^w4y_v$T{BBFFlYHh(NSm6Jt_Dbl-^}pTwDSQg`j`YPSc`Bv5yV>>F^_ zWxA*sJ8W~NO+?G00_G-59?Nv|LunE9nQn+Fg)Ed4;g3j0vG6$!`%!DoM>-Kq1|put zvk^^aA_zmyHMqJk38&FaL=oo=7o*2gY7QI8<}7T^v{dT`y}kg35$Pm_kmNV1A$p}% zc36GnVzLL9k4Wf%y~{c_0$xrtN|9GKv6BYXv6_GtV{ouJCh8~nOk-k!@R1)#FUoiM zKhrJ2%JDHpQke`ms-i&qST(SW7s6ZytsSVvv?b|jiL92UCTVhK5AYYd+QvrP)z)U} z6v06=RKAdi-T`sP&S+J}TY{~X*HY=V!qnn-n*rHmAn` zZsLq2LqRu={^}8&DT2mxhOmna6Hcs|DXp7fLsZ9dg_&n|=rJ_y;@}v!7gb*5L){oF z?#*0%cb( zNUA1dQCqit@l4KrM3D>|o|wgi)z&F0Qj>7w|<FuB2eKE4R^+{xv{Ksm{-YuOV06=OU{7~xSJre0CN$SPg#~nPS4{Z55MXWcazgTc?M(& z;t@o(^BlwUu#0oCCWiIPzLsB>L?jK9J)!pG=Y+`8f*kVroMfltm-T%Bgp}1KI_GnE z2!KjsE7AkB7`W14ekUKvA-fP7J{~DFT%7V4_)tS=hPriZR#vqQCKwwPOw5S+X4^v$ z4}o|9qWL6sOwGJi3ZeROU8Pq{!zi!qX( zfl^HK_Dhto9HX=eu0dF#gcT%E+EkjesxHaY#CfbPD>?bj4+iXq@Udh#ELtl}?qC3~ z58w|06k-S9%kUQf)Os|WImZC2E_uO9o4jwi1Ch3|CAdaP=W4-BRdKZ{OypYCN>_c} zWnp24$nlzT7s@94bDSSzCEGMC300yszr|=iAKh0ShVlT@v?I7!TBzm zFd4k-pS!AiBR>*c2Z1Qls4vSE~l6eY6phpRx0}h&2=;lbuI}AOL?v*_lF*XE2XFwW;AGgv-pzL va?(;s00&6$ttU{}SNYnMHVF6f-?^3(`iBe#d8~TxJ>rG+%YntO$;A2xNj{;x literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_denoise_spatial_3x3.bin b/examples/runtime/shaders/glsl/fs_denoise_spatial_3x3.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a39f363f8669ab8c85512a7f62218f430253f82 GIT binary patch literal 2068 zcmah~+fLg+5Ot9%+Eo38YM#)VTxvT|S_OEaLVYh%A5gSfoF!Ow?8ukI2JuDx$6?5oh)Q{^v1IAW4+7yRwQDR9(}Yd z{8+~+_v0{5RFo1@9>vKCwXR`3)I9WN1Q62@4 zSgs;x(CXidXcqVGeA$FjvDt<)@xDVvYB;3%4abP;Vzi5c6>LNh0kcOhBY?*+78wZN z&o_A}GWkme>!*x+3ycxhCUm3Z;BytxRcn!_X&@q9lk&5BMcPDHJAU3;<@`%)rG(=b zY6F|hK{MxHs|^oOxf`V%|E9K@6?g}M|YjA3GyClZBX=C~&90((}J&u|Lf%&}n# zE`BL|5{F+PL=;f>0vGB$uYZ7`@oj2Byhy2`2JoKFs>v!v-X zmn)8Ii6s?N8)Mse4-FAN#2XjbD$anJy9p7y4%dN6U#o#z#-89DI}^Hbs;(2fEn0k@ z@eNLg29XT0#8`hAmE6ll*}uC)@-~FBFzeU9((={5BD5f@(*`^kb9r=>jt@_RU0<*JT zUt$*`EAh_d%-Ol+=I4(O(dVm613&MKj~USId~obJOq)Og6nzN zHVfQT{1X1=G3Cwzb;Pw+UCVUvnbat+jhiKj?}o}J;b(VqB(1gUJ)bvD89#5FWa9XR z6kw1UDCYcYDR2NYcP%r=ze!Pjf@M3cP`RRpF*HoGSYV=@L;6n2^`Xw1TYO$##Zrqf!Xt2MRG9m-_a zz*YvYsU4-BUA*Ex`?vd9JG?4-y4_)ya~pda3!@M6id}jbe+YeIx^JhmBuJ|OG=S{_ zAYc{r2t~Ip!c-=bB+eZ$KTM%0xGfX9P;ZwoS8t<{3D0N{G22gW*t9#j|*^yfR0h^Tq!POGxW(@~$9}D-liVyIjU&w8RnYo43{7)XDT!dzXJyvNyWIvck1O$HK%?)fLN4z;9xALr@4*n^*sWFN1;c7aO&9 A+5i9m literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_denoise_temporal.bin b/examples/runtime/shaders/glsl/fs_denoise_temporal.bin new file mode 100644 index 0000000000000000000000000000000000000000..0ea5bf97013533f90fed9cbdb7c1bd79b4902b2f GIT binary patch literal 3723 zcmcInOK;Oa5H?&2K?r^U+N0fu5U=y9+HwI^oO%Exjw{P?gC!@fZ0FUg|Ck@a%&d34 zcDAM}YE`B2Ja^`s`PRMs@$Gf?;q$ozKSxe)EjCHK{T@f<%NLFVzs?&e`Wf%yRLPDC z5oKwXqXF8yD#R+wmtm>|y+Ul_G>ejQuSD+(ag)cJBwH6>OyBpl{HhV-&s)dYg!w*M zE!ZZGINOLa-bGoK&xdEd^(wgrbJUDjeQK+M&R%PZaCwu)IseM4GVCf@kzJ>Xvuhi5 zcALnO&w86InX_e>teETd?s|+}r&(CCFpAd8bsCoO{8yYTewV^O10@x0=%}HBS1Qh^ zNrf1Spe^#ns4e1R+!h65f+Bea3MR8-$ms(bU(6oRaB=#8CJ;VAN%aIw_FMRMg*0Qr zS9Oh8xx9gi5I&WqAJ_$h!6?^x43N4NrhRi2&}7W>}0T`JWVee5M?s6dF{!o zJ#lEM+@{bI^?i0|4O3`Z!#TR`VKz;BGx}s;ISo#%>CjBjaH0J}TYdI1J88qG5hjj; z*{Vw_1T3rF-`DVW`om`1{b_t4h*wXTEkDqJ-JkMz_!B=VlxX?&0|0UXlS^w~3->nR ztxdSCg@*(PIvo?Y(y&nUS-Z>G+)7&IbfCt#aw4KC9{0gu;1_Qs-|G-bq7j+8ihaOqr);ETs>*kJQdXf9&8V-sFJbBp0d-O8d mY3A~SzIlc!55A>J{-P^rk&4SaT#yowi|`*odcnW%^_;)?ta*L_ literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/fs_denoise_txaa.bin b/examples/runtime/shaders/glsl/fs_denoise_txaa.bin new file mode 100644 index 0000000000000000000000000000000000000000..5be4fec280060d2daf5a83b7be6302498e825f37 GIT binary patch literal 6595 zcmb_hS#R4$5LWZhLq*Z&z7+dNDzYN(QWxw71yUG&Yk}r12nf}dT>+BiQiml4`R|>X zy=HltF)A3gxW_l&%+9s+^}3 zE`Jk-ZuL~ayn2aMqI#C}x$GV`%UiLYFCRn{cRzInl2(H3^v8aeC6_RCx7y5iBF`i~ z(EM6v%0DDo>KRr}nIvBO+1AKu^G zW)m|YfgTt-o4RKMI%5K6gA<4t4&XSP(AnS!W9&c%$09_+*C)dY5Ev|?oJuHUHp41O zKxh;(4-psE471pOPljG&yOk{N9tKC$$vy@$hj2Clgn60xo+fcSToAmxSE4v>>oTW9X)pAnHqSnsAx$|&vMz8Wiig?Rs zTFYnp<$SnB8Y%D`lR!ejh^z>O*_TrYOyW2|D7fzxCXqZ}Nk~oAd|;-|QNkm#sg~s# z%0bIJNMY9U3c#*hC_w6oWAO>ntPmC3DR+EErwuSLHm}_JW(W%RG6V)!TL_BRG6cp? zTL=ovG6Xt*TL_A$G6ec-TL=n)G6ectTL^OD5(K$OO9<_C1Ob^#T33*~B*~xW$k%gkdroeUi&IMp4a8H4lmH21NsbE zXKzT33Ok8LOufQmnjK}#9$dl_{n3-$ zF^iMD4_3UID7r)iDLl9VSEO>D?(J2$?>mm;3Hss_c2^O#E|Gm*@L~87CZI3o1Lvn0 zSM`FT1KVQ+Im2QM8qzONftNBRA#&$`Z(Sb+I=wN%xBuq5Xgxo|oeZwu5tO?=-d*We z47yPiU%+3C|DF~GvNfe-kivKDu-N4rvxEs`n^!=YDRcVUEw z6NoO%pZfv;NHWMIq5AEBh2UjZVOG1{>|FMth=NPL)={B)WBg@mLWsmmtir5ENKD0g zAb3@Q`U6uqnFwvJkJyp)w;q+E6=OIF(v;Q(Is;3)jg}%`s0yUIk%NDF_ywr6$CXJn0p%#6jPWxeI~4e&RJ$Eoiq$)cw08*jcHv@Wf*l~q@dBnG0MbQa6js6@ zO7H7!^i}E?Qa%5FqmqOMhSV04Ud_3Kiw@L1v3fG zY-tU`8ork^VGYEWfnW(T_R(#wPNXjfVZG+dL0FIV zVi4W{wE(e|*u|Q6DLDNgoYRUh2^SZ$ rPvEjpTiJ_97{oRRUxmRxSlmAj?pN7$KEHp5gD`0W1K>V)yPf|4-mQvV literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/glsl/vs_denoise_gbuffer.bin b/examples/runtime/shaders/glsl/vs_denoise_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b88fa296f20b5fa93953fccdb35358139cfaa97 GIT binary patch literal 1540 zcmZ`(U5?W*5H_d?HWK0reoPTmaekUa74JN*gtRZ!Dhk`MGHQ}4n`D0whu{(%hbwRu z#*XdGlx$^Ht-qOXX1?*v)tAo~3_gE;{XMMM#Zbs*ypq-Z>IGwP*z2LF+e39+amL`V zcjmvcx$N5S*6z(voXW1O?_R!T3=aGKim|fqJNb3!D?U~?5ig6T?dtNl^9T?FaBA;l zFWcq}3IXb?hnu$T4#CbF%kEJ&w-ejw*wA&z$7dX3ga|@~k?>h0+Id4Gzd-@KF8i1} zrT)9udhMg|dKt0G%_xYY_$K}KA_B*;l?R9;8}6^YA0D4d?&}lOT0r`o+u!^Xl5g|y z_@qG1Xe^*4XB}?t!Cq`YOLPZLaBB$_bbBl=O-BIn&w9?^TjOx8thFA-9b|IM(LT5a zcUPGz41t1xF$F^cCKQYaxYZy|B1UoIvm{bX74K;h83kz)IR$AFBG4!nK0#R|3&JO= zTW7-SIWbahk^dI8K^5dWkgS(_o+8(DA#_SZ>qt2D4EbjZ{+aRjZP(|7(#3>wM3`&B zfIPz768d&Y0Asib*8HP-uKJnTfd?t3JtChf-@Z*EO0IJ-PHumIAK4}_CT>>QWw26;Q<5gFj>1LzxmKOE4{d6F#Fp%X@@XAfR`DY8ukE%6HkMcg$Mt9vfXLotqWorNc literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_denoise_apply_lighting.bin b/examples/runtime/shaders/metal/fs_denoise_apply_lighting.bin new file mode 100644 index 0000000000000000000000000000000000000000..d007881c51072985ab47278019f28d52f8e7f0b2 GIT binary patch literal 862 zcmZuv$xg#C5KTF-_`vc5$P$+XRUu7xwT(ESic3%BR#lOkxFwQfSFrBJd0AgNzE2F}E}{WRLk!0;7Kr#>eKw0S}TIdHMahc_K- zxg3G7;~){OW4Q3m7dQ(TOF{*Za-5ii1+>CgOZ*tqe^lz!%sS18LisKhT%Zm1Bf4BR zq3ofQcf)Z`-Gf?6nWjTI>!XRqj%t}LIbRdOZ89 zmRrq&Lfdq0*U7EZ?+x1hR(D`oRn)ON-TdhdoMCI&>-1d}ZP|`hOqXD}BC3Xzmj?jD Hcr<@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_denoise_deferred_combine.bin b/examples/runtime/shaders/metal/fs_denoise_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec9a74449bf7c4502808d0f26d7a43643d58cac2 GIT binary patch literal 1694 zcmaJ?U2mH(6ir{I4o&;|0h6Uklj$h44FqV@>|s;4mp*lGQG^H~84`gA%tluAw|DoN zuQbbQ<;(WD$M>FlOs;RgKhNJyCnFfoMlZ`C%G12K4L92~F5a9xJein9>(dj(dd1WMQOE+$z&7DFbzt% zOq0b_8`jHYv;2e~=Fh37Rb`T`NfvJ6avMf5QBjwgR?4D^BniHy`65iUJB`3trFkfA z(j_wE*8EbtAJBCg${U&9gh>|Um3$nvSg-2fx(L@_Lm4tMn<=d*)93#uNwR$oL4E}? zuA@9JmPk;QaY55O$_9=V@NeQwl7m$C=X8HB$q2k=vr>lZI7qVj+#pe&!4yc^>OYWR zBh#P)*rHmk;7~l!Adm|-R4gY-m?`NR0>E~Ua)m4#NA!TU<#=wh)8blz*QpZf3l<8P zZC)la$ssqrm1DmG5Srloirhgf`Zkfkc6l>TR)liXA(OTab7&x+n>$?vH66xq3{dI z;(DgAEXKIYV9T~#N7s=Ge|e^3k3Cp{{Fw<~pW%y<3&Ks-)OW86h|@AYs6-`*^@s+D z)u9+b^RyTU90b7`l7J|Rky4su2a4>-IiUjbIzvoeJl1Om%b2?=O6VZoKLquY1a(iK zldCHg-FWhGFBJ)NqtD_v2$K<*jXvnoh=`^3LgM783cd1(7y?`440<e*k0L+c6Y{XZbCnAuZRJ)ntRt?2k-rX@<3`G6jR(5xSMqbv*Ochk0zU(1BTrX==is%VG{90&L*Hj=_>MJpZHtew zvk=VuX1MOy_JrdJjvLfbjoIeE6@x(>ZowJK6DVDC7+huZ;8EGy&W11#F3bMskYo|V RvnazS0X&j54gL;J{sOl3+?)Ua literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_denoise_gbuffer.bin b/examples/runtime/shaders/metal/fs_denoise_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..bc7d7c2d76c0f3066afc3bfc44eb985c26f4da9d GIT binary patch literal 2299 zcmaJ?+iu%N5LKRKmC`^@O(4-zKxS&ou&1=q`WJ#=Eof`x*YbKK_tr_poNgPY6u0pB~TrfjHoSK{+1{Z=TL( zKj+n^=+lh7D6=jp;2XkQ77Gk8RV|4e*oUpRof+1rvN^SLoZ;zv5&N;0}Vyez3z(FNnXWu z-<<|r@3uqys!4XgCtbqX&CRAR>c-~I?d_F$@CnWvao$&PV#EoF`vR%FGCBF|gBBOw zeVa9QQE#dpUi1mn5gbZaT9I+m8{z!Zak;)88pXq6?ZF4WL z82)c=P@i2E=hf})oQ>tu)%}IVWmm*KVC#OnMY5FWoFO-AVv)X(g}-LU4g^r|eHp1* z(?F6abJnVX8AIuTAcks3N1SjcgJa-SJl&GJLiW!~Dg`iib(?p2jcgrVRZ|o6AETG* z&{2N$?K0%B-qrVZvTp5Tx~?KKt~KX5ly#?yamO9@2WPH_z!t9H@>zsI5jqj)F+%Ku370$UQqdB&hm}DCu_I#9zHd6( z12C;Sn@&VJb9pqroKp{05uBv>z6NV7`C$CrgFYn&)I9)92N?$=tANwV={6ly>f~ixX=Y6;msq+(-Wg7ZOUz97!!)L|Gh_vFr|wAIAg z$04Jcn}&wFi>3SvBEIrg!6Fn6cE1vm}$vW~1vdI2WwU2b;UmNtM@9+MeIWd3 z;YG`Es8ZQZ^AI4tBx$*e YUcs9_w8?PgS9Cq%r`@tD} zsLVHfEy|o%<{yh7N%NRR4R~#D;E`s*GjZF1SLO!#Ss7$3XL0fB`OA~%mi`T7V*3EJ@r!}oNVKR@(1&8aH3l;^1SVZA$Y}ku1Uc93p=XTs` zl_U!Zi+PbD1;|xbt(M@pB~0*Za)zeirVT}S&jSH}m+`n&h`gK&D6+eMl7cPy?|IHP zt%nxia|1l$F;7G>K`i`AE8r5k(k!ZzB z+&RaZNVWoq)U=-^a-JrI;Oi_0InpEtbxh!qY7)NScOjy7j`T4J{*2NYi}d+e zMky10FdB?H7`0t>qDj}o(l%Jucp^WD=mQIrAT7l%+ibO52k)`f{J{isVKR}e)pG6W z(mMhG2bn7E=&ObCX+(26%WE>I&G_i zNkyfzat1*xqM$_BtXwWplmy#=zEJ<~Ev{u^#-O_|;`G$hKy_0X$nH~=vR@m(o&*-^ zN~$FF9fB}Dp_R9=ovX>fDcvp3ypjwUsoHuo%>3at1O5L34_FA)0CkZBgTVl;)dl1z z1*>}hsQhnZ_8ntaZG*#uVBmL=!y+zcy}5_C&~scHI!eT|y7*?S=;Ml^D^+C}TTwHr zLz)nH7b7Gf9%pS(L(q47G$AX&sV?J5w>Ndx=vQs8@8rGZ!{e53l=|)krYfxs-WWX{ zbQOd~6L*UAuG1SBwyv_7rrs`0ZWhMYrM;3oxCWyk#_BrM7~dNj`M^~B-i6k}5iZx& zzfHRN?X;J4QbF08L1w2mR7K?Xb&Qo0{hoFL?_(>ZGwORjMSi75*Wk$!ITYaPHkl>2 z-|xv6|NPu;G-m|Ly{$u}I;PcJNKa`*Pq+ljLZ>J+Z)C&S8Pu=7t)f!M=1Q`XgDNXJhZR&$$`Ys(ZcgGQ zBf_NQ+wf>sea}=lxj{X0j1J)Lsoq^j5Ii$Y5Sq?0Jjr9J_&PubTvm$P(+7QD&yzuU z?w*S0Z1z<)yDC0)lda0|F%|3vF4dET_p@bn*sQQ*o9JN4AM7(2g=af!+lF_rWQDlA zjM>^6IV1TD`$KPdF&uP#-f>;3ghzVI#_TQCwTnGxgQRaEOFvnP7(d?Q%vz)Zo28Fc zUpLzAaoo89WT}yJPjpqgjm^Yu%hWvX*}e1tGl8vwwyW+N_~K6+c{FMd^H2F~?pD7l zKiZ$Kv=W(DN(}NCLaHFuFWyN`~Ri!!|szFSb_DANEL$-#o3> J$;of0{{eIH9}55g literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_denoise_spatial_5x5.bin b/examples/runtime/shaders/metal/fs_denoise_spatial_5x5.bin new file mode 100644 index 0000000000000000000000000000000000000000..a97049585a6b2c627cbf3f22fc9d8059c0705754 GIT binary patch literal 3676 zcmbVPZExE)5Kca=^U$vA4;T(D5J-)!%GQhXHg5xlZeO}D&9D!KA<#DM2+$iODzy{z zw|93WWz$ORE)`lsJU)D$yW{bwy#M&u_xaDGt0R1VIC@bo}7JOrG;gM#}3vtteH|7@lSsfLuWNG#4`OBl{bavTjHHo2I5(qC zrzTm*SjwvcDL}5e>~sXjEn$LRkux+6*IlUMJ01!6yG}=)N|g0XKvmrSlT~cNe=ke6 z?%a0(pKIU=PkAP)F=F9YS^*c(pIpjm`6F&h&gO7^0(rqpCh`)-6R@;Ikykb-h(s%1 z;x0MXM79+`q^A8Wk+VFj1YZ>;$Tv-LP{#y5QBA_<{5Hna9STK3o=Dyf<$vg?P`*j+ z(d*Ao2fqSBi^zK1fd|gq+_HDYK@f_)668)LvQO|wdhox<>tnfsB5XlD?XHi~@UAF0Rv5MYftNDWo=E8U^TdU>T zll>%dW^xSRHo~Jb%ky$h1a-wrE6HcsmSaJ!3=cN6TrtO%ITvSu|Hk7=uqBV;Y%=Mp zgGoiDvvLAaDw3#1*tA|OP?Q9_fWA=wAIz_0Vn(35FXHsnexSN33}k;FrR>)Ra3Fz| zx{?}6eTN`SPiW;WZ0Bk+a7uTJGp{5AMyj^n3^RYY%|QQufqN_jYJj>(q97cgwYh*C zrC>GVkIMfpX5TS()iyXhK#nuyu!zf9t?%G13>?>no)Yn_K8}nPKCT!JrK${LD{4k{ zNE0IO+(!c9aaIO3M7~SRsuG;$G9LE_6K92fZS0#nxxKtk>Da)U6SRN%TB+||V5-u( z5RA~%AXE@~8@m&vcO5qz1ctS*tUI=WvUx)j=sg1T+mv!^F%ttB3aKI&#;)FWvK9Ki zF~*Gv{YDPo&{cg_wp(O=X+78?QbAcA8In^jH-@IS?ty>M+ft5C+=wjS=yIr+kw(!@qFj zUkHtVN-yxFOG+mg$U)fnM>O}+Q+lH(UVvrcPRYQig&;D(hVpZ%3s+cuWO*N1y7+!rR=kdTd%*vZ?g2Geojd398TvzScs30BA@8|vh?_6(q}@)mHan5gV%A9d7K;3n zrHJuUKP{|zE~vF))o&~|P51`fPQ zE00F)Vg4zf?cEBR@}vFvN-L3hrNkhQA*2dY{o)Pgw7yT|sR?K+c4Ot5#JMEz(|+L*t?cK_F;pr4Zl?yGuuQ zkpI?ymd-wCE=k+5BP2F8GvCZNvopi>tG9oBQ#@YG2lzP}e9xkFkrwoAoRuk|M+cui z9iXBXpOHPUD5=FiuqZER7N;HaYk9~1h(#A9E!GLY>>vzH2lFF~N=h!0qGG?_z^tq8 zpnq!6Z*F4R(|7Pz6r?#uam5MTXp!04j_lToX`J!kyR!{nibAD%X zDrjx`z$B%)I_VuPs`AcAhTQ|hNOrxp_FQg&f`?i$2Kiu9ze6F z)LgX0a#x*NhL1hY<7=M2j*~npD&F>WzT57jSGZ{YhevQ?u@o((Yw`@D zjHgkBX6My*i$O)eAs`p=-tsqdS(gRqeT{Znb-ST@!x@&N+g#S~HpAAx&9=4r4Z!$w z0QF8V5P?K6^}?`9rOK_bY^BsUSDE$ARYHAxk(Z;J z%IpJdR}lYyfe+Y=VvXxwk0zmyQhl_pie$GhG(+qm*XT{B<6%0I9#nA}7p-F5161Fr5J3&x zWd|pMN}N`-uLx?IhY&0v8qdZGE1s6#N&=AAr}6A4rKBj2lv3r zxr8VT^~uz88isXg@CnaJ$+0Kv!4MFXqd=8mix)ba4qWr09C7bdJN z@p1DV?;4F@k3WY`?; zi6=j!(aiT|{>dzKG-(x_q>OYNMGvF3NI^`H5mLi_#YRG BgbV-x literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/fs_denoise_txaa.bin b/examples/runtime/shaders/metal/fs_denoise_txaa.bin new file mode 100644 index 0000000000000000000000000000000000000000..2d39dc3e3a730e3c87eda79cb506b5c957b99c11 GIT binary patch literal 8341 zcmcgxOK;;w5>}8yvI>ybVUHUE0Rkz}Fzn{5nVB^Z>>|k}r|iuz2->D60`zc1Y9f1( z|CWE2{i?djZa!qmi%p0bQz~|URrOU>cQy6hPe1%^`;UuP6I>ro-rwi<#jaRapT7I? zA_fxUHUzNL0-udGXSB$asepfc)zgPMF zu6(oH?yG-|%<4bx&Hkjy-;}HE&9Z*zsdJw6=D@z&^1lALH=z;tM!#pg`Is2M^-<5> zMn1KcG$Kr8Ma}nbKbuTGUv6$z``glcwJz&ol~?ucYI%Jzweo7YzWtj1_&;Avr~7KT zdF^eAby?jPH>Jn3UQVY~z1!c^UjF@RdtI!iZ>JuvyVbU+BhQJ+%dT7p?^1+UFQ>m* zl*6j1f2>zO7Ryb(-Pc{T>(_UO{JUN8`rk!e1m5K(2X_|Cua1K(H!g+gOY{;IGR~?e$D?zt7xf%Z-PBmzPytye{+Q=IUzU-E24b3J}A}7hb-u zSNR^puJ?C$P)Z6H9&Diul((;#unW(G7~{;N;{!Xn>P!&Fkel>$#>!)3Ia{28ArGu{ z9W_>(w8b#vEgMHanK?HBcVmQ9^639Ry|+j~5Em6VH5=kue zm@tMoq;Vt^rOL@jL{j$kONu*~P+3PmgK{KJfOgI6qld=3Om)yH&QUbtok_T!cS%4- zo-l+F`}!m89RP;<;~1d*IJX(kJP$H1;c%U{B#!%*B$Obz0Km|agjnhl=^fE8$>`Ji zlccYoO9lF6Jk-zYOrME164Zc^lc;P6X6D6>d#V%fqZ-7k#*KuUO#*0Vsx`D}37cWT|FBL8xvRUKx14HXp zVm9WcDX=?JBQb5l!mBJPo#>_b1}9YHDn;UIr5rtM*lvcg;#Ai}r+Km3JL1-aS-

eoU#*O~=zpkLYxBm#Iv2OOy&UA_FQ@q5F$x zsiH(C_lBx8l>i-6C8_^A6}3K%D*D5SQr?ZAG(v;XQA*Jj3HdiO7obo$j1-}zLKF5*K2amPZ9kHQZ#zS0D}xrihH z`gED21I=ZZiL)=gneYQp=aAOYmkUr#$433(0VLXCTK2er>Hs#l+GxC>s=VFSM6HP0 z4Lb0{fGmJQdxQfs{yE(6kaM0A$*q|F4pe zmTDpi%e2K$?=b>*Zmv z!wc;2&c52b@w)PHc4uH$73vH2n~GcBA)A{0*vyld=Uu?$V9qZv-tyn}RR$1Keq}(G z2p`=W=+;*hN>pqVXvf3IsO?Uryr8Ksz{ztbXS5Vj4D5T14tQoZ3XG%bNV7y!=new? z0HKGvl*a~1k(zfGG?PgpFtl@&>@6Rb85#y!Q-Y>dMo6768E$NeLh@1qC9Obl-R1)J zaP?!>3!wl{#mV#SL`a4c;Q%1aBS4eNc8c};x7OTpRh8|RuI*en>_KQ}_I-x}>pMN{ zVvvM5puT`t+83NDC*8K5X(B=d*ErH})Vj(fksYn4L}~=u1~U>(&dfg3@G^1-cfGY- zkux2>NO0U=nEVt{lNwBq9ca}V{)N(A6=xFflL=p`NWw6cfvH-urJcbCb*c$UO^a=x z>*KS+ILZ#(#|G*BR^dQ$Y!Ga6)a#lc(33Sm`Y9itQxm##pjpqW2{`a4)I@9 z&#Vc4b;RyGSre_>XVgUNDwA|hO(0r-RZWn;XVe6zCKAgbcvur?5rIafL&=G@;ABl? z+%oH$h^Q9|<51xwrjnp}v+I^nhSraE1e!+KkGlw+$M6Y!FOzX6iH{(32%X z+ZtuZGfD*Z{BPR^9QYGT#PsGwD_ySdXO>8N;COP|ux_7GBCV@umk6TuSCt6)dq#;+ zYEbSw1P@9CT{<7eDgREC2%z|VDs^D(#VtB#HTECQDoD&p2i2z;A(1|?xT2;SoKfaj z(;3AR$;=i@pRGC~eMIVr^m)jL+OrDYaq&(`rYU;jL!{66_FuSGBA literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_denoise_gbuffer.bin b/examples/runtime/shaders/metal/vs_denoise_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9149950701dc56451a14761f70ae4c54092646e GIT binary patch literal 1720 zcmb7F-EPw`6i!D4U3LMFU-{`F_pb)IUR$rjD8>I@>{p_zSo7_ zp2iE3ldL#8`Pn-G;7M%=22N>ktT7YIlGg1wYvl7|$9c}glt*F>wHzN3}+q(e@{9(WH0zQ4a5=~E=c{sq`p1vQUY5>?B z^}IbHS25Saa*9F-7rm_ViM%rS0UE;EFSD@{X*=0ebp-VQCANSOU>`34aW~hB3Aw%x z-at*aY1G(x3--1J3x;XmsOmjHl<$ q4Bg0B|34TRpsMTA)=OFHe*(>^(zz(70j>(ybsil#9p{;|===pEvN&A; literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/metal/vs_denoise_screenquad.bin b/examples/runtime/shaders/metal/vs_denoise_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?+k#Xo(THF|K$n_Q{~<=LB@%E!A_RkR)jVjeCdFskYPxizD^1j` zeiA=|Q8zC9^9hJMqYGkU@ceG?=z~e7@1Aq!&di;AyRdqFFrKJfcCwrs?$kEoR@`2V zHXpPa?UB^ZPD+B&Hygd~!*;{yVy70h)*JPBPxwE6PkcUPFS{z`(gU`??B+aiH|ty` zeIoB%%I$XpZj9ox5tkO@+>l!2ySTKvRO)o=rE}-Y=)*3<$7@CH+ov_Y8Qr@N|6Kl3 z{ziUKv1lryRmQ2L`=z8=vB^DI)tZ*Jdm_Z;+?oG;IAWil@%*lt`1sibZyU%%U(Hr+ zp&d1^#c{hXsQ9e!^--Ew&*m>!R_QD%5b>*avyHK~Kq zt8(J$IjMuuSAtIONga$n7j(`rBrgWcoG0WM`RUv6A>CtIc*;*+FF@;Y{pR#NB91$m zl#jVV-D3ZaQu-#%@ThWAmp$YG9|)Lx1RoBV*D)zv(ifxNrGS|qhJL!g^tI8!%nP%4 z=7X8eJg{Txe_mhuKB>L*bzA=7eW7YN5}tm$RWbZj*ty47sr^hV&c+$Y4Q94*=r6*W zGoyoBP)pRKfIQZv0X4k$CeNy*Osd95Hfii{Za=MJ)5v^Yd>H z%$d*1nU(1mv}RVOU(}jefjPq~IsLCGD|6eDlY_js#Bq-Aa(H5Is0wFzCx^!|weEYh zJU@h~MSaWjQ)~ESo{z%tIA(bYVOHCLV+O<)bfeV&9r$s5iD9Ns)Gyj6IsFl1d9u>U zO&)a1lMg(3h~W-al!tfoS&ohw_eE>lW8BxkaaYUQ$;`gV*-tz=Z>*vlL)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_denoise_deferred_combine.bin b/examples/runtime/shaders/spirv/fs_denoise_deferred_combine.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa6ea8b9b33aa84595d18bb7f463be9ebb622897 GIT binary patch literal 2986 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_denoise_spatial_3x3.bin b/examples/runtime/shaders/spirv/fs_denoise_spatial_3x3.bin new file mode 100644 index 0000000000000000000000000000000000000000..6ab12ddecbfa8648e23587b75ce38aceceb83fa9 GIT binary patch literal 4308 zcmaKuS!|Y75Qe|Dv}}a}6+twF+bCCX>IS?(%I27y5iiq3W$Jj?%3Y9wWlNCy56?U-926Hon__& zc$q!htnb*;cYB$6z-87$wzh3)?`iMq9W!E7Hp1|>wr$(gaVKUSonr{g$Ofl?8?wb{ zS>=!jsUd610St1V4Ow%pe_5AhRh3f*yL?zSBs)+koMof4%6!A&Sxr7KUEaEUR&U?> zS##z#$dAmboN}&?b%T%{UG1ATi_amNMn(%`6t;3WL8{8CnNNUMgBI6Rcwk_#t-`LXK-Lt-gSLgZK*4EdteVu4SZfpM5 zZrrdvx4xmhubu2KC2QtsiVOKdpNzaB>E^4*tIIEDXm8$%yt@3##GAh&uP)z|c=K4~ z)#Xv1BopZ4Z9^m=x6-^qD}mV8VAF~*C*tldeBOR}LIUqPr9#4ej2l%{udxgf0=&iZhzbN!IxnAJt4*&NfR}}OI zki8rIA7s{6%=L$oE*|GQjGSft3qwDW>sfw&{U2o%<9P$!{VxJN#vE~+F4*aF7(u=K z;k5bsy&BmV&5P$$x8}v<=O@`(lvno+@XO?z5%d}B)qN9UGpRglawkEyGRK(5TQzR$ z*iYL(LG0=JFc%xx!&t9Jw|=KHtX*|$WG2H}4c_-^tp-0E*;);L9d?T{8s_xmY z!Jp^4l_*-!rxBn&^t&3&^Gyd6*EZ}L(DkMNu$v7guH8*UYYy%~7I*le<~caP-tzOn zwXx=RC9Dxl-28>VMaahPdBR^4n7IB{vevxqM;7;M0k9;Bw*TF=W?@H{rV; z+sBcu6W1=Jiqw5G!9S6B&nvI)8w&o(#QToq)r;$&Dy)yVo(2<-J)Zd&n`gnqBlhQz zT_^5+TT3q>TTgO-Q3)?G`v#m(awFR8f!EG=u@89^L(co!oz}|TTj1;qyU@*v+?d3@ zj%H7Ih5h916{ooS`oyDVXVB$eWr!P(vhlsftnM5!=+`*3xsSP)5wRPu@yqQmaK^V6 z-T352CNAPT1|}cz)g?aSlYf&TZam5_rn9|;>|MJ)u(uQDnV(N~?|^A5cba=Y&K zy~_}De`U|_+0@0m)0=q@Szo?a@8o@SG5cKDe1NX+u=xmGOq-~WkI`N0TZ;Gl39|3m zZ%5kyQ*?3dSMg5mTX(Uyc-Y3CpMmMicN2Slp6r+g_WS}xT>IFwpFPFhn`xl;EJH8v zi8q3YyC!H!|M%_i*yH>8<^M%rBe3a9{a2>uvZf@5gJw#64@| z{zuk``$aAM1ZJO>tK~k8`)6c+R9KeD-;E^x3$k3q|0{Aa{$lU^4Ng96fBzrbKj7q} zZcZS(UOdi!5}9BA_t*bBXtOWn{uHvYX%lBSjm(e#)6ruPV(&A^a^^Go=ikWoaNkkn z|17$A*qlo?zN4_QP{d>J3Ut?r2UdlwPr2y3HOSViobSp$I|SK&B^PgPII{gsyW;zg z9_O9d^R%%?Xn&kJ`ky_|J>}eAt{;E)KYO0%wO18;t36HKK5wsajy3ji&mU{z?}dFj u?rAJCZt{DwFMC%js2U?cj)U;?yXV;1; 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 KwPk+AHupbAxJy9* literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/fs_denoise_txaa.bin b/examples/runtime/shaders/spirv/fs_denoise_txaa.bin new file mode 100644 index 0000000000000000000000000000000000000000..370bc762a094d5b85df3e840468de785b009e609 GIT binary patch literal 11172 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 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_denoise_gbuffer.bin b/examples/runtime/shaders/spirv/vs_denoise_gbuffer.bin new file mode 100644 index 0000000000000000000000000000000000000000..436c6db437170b1c15f3d8e96abd5e1f1527f0fe GIT binary patch literal 3399 zcmaKv+izP%5XLugoY+aB1;ph6f)i6nn<#`!OQ95!hLV6PHK?MG7-Ku=w2n`3>{1Yy zK*bXmQHhJh<&8e@H}F63Mk|VFc?1b0kdQ!?kobNlGtLsKY&6~ZzPaq|?(DI8;`m}Q zXncF_N_`;g>{eFNdZT$FX}rADPEQW>%@zh^Ep#iZ)pm7dt$$>_Fd|~e9OV#jD0VAJ z>oj2leIa9h+7UvozdRH|UlNPd(2A^B7Cm*lD>r@uU$7RoC+j?Zh|M`U}pl`N<2mBY=n zc1lp}29Ms`OvdLke`>Z(%X28>`Zqa0v0ff_;io25b>zaMC>nYFv5#t{r4p)5=h#=Z zvYM_Xog~$6@nfIWN~dwAmZt6cjF{nU-?NQYr~S%OnzTB{x}DW-XZpovWvLe`zhZVa z|MxrHTa{d#-L-r+SEP>N?0mQLyH9!W;|{j-yWjk{r|tY6kbOZn_mJj6d<{Qrc$ely z*||#wcf6>Z5%ZTeSR&Nwi3?g2aT;2RB->t^9`%_Rx-O&aFx z920w&gn=ErJ45S_yZ?kR`5f<&&U%jbN~a#jlhXNaIKEdpgL?L9E&(*KgZE2HlG}yp zQ}zhw_5;$dlVGQBITN^1Rmz&UrYl zNssNz!o<5hkzR~2AEaT!|Ho_YWYrcpM<-mb})Slhy8og$$=eA zAG`fW)9D55;LDNyXX)IZ$Ajr}IP(8$x~~tW@7?~p>7F0VJHXC*aC?9GoOD6~XoT`}@w_7@K zyeGu>akqGE?sre*$6Is13Gvw6Z%^dM8+5iNB3T-*mWam3?~eWMQsRYwSQVa}v1;hRTooMS^gHt&UH>Ewa; zniA>o4ChW72kqP`tJ@anR0vVO*T|OL4^G zkDa`a>1)jIMOhe~-v-VCo!=Ug{tIu9 BO}hX9 literal 0 HcmV?d00001 diff --git a/examples/runtime/shaders/spirv/vs_denoise_screenquad.bin b/examples/runtime/shaders/spirv/vs_denoise_screenquad.bin new file mode 100644 index 0000000000000000000000000000000000000000..da03129e904007f4d090b2cef7fe39af075608ee GIT binary patch literal 1078 zcmZXSO;1x%5Qe8;fF%(L0bx^HSrSW?j}X8X*t820YluWdy=mHNF0?(Q+zRge3I13Y zY)pKg<2^=kn(3MMojLP$?&(SEfk|AczMrwVNi=l5{@^t3-?Yc>BA+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