From f24e1d8a48b16a0740f90000282868c1763fb041 Mon Sep 17 00:00:00 2001 From: Matthieu Bouron Date: Thu, 19 Oct 2023 20:49:30 +0200 Subject: [PATCH] tests: add fast gaussian blur test The test tolerance is set to 5% to allow OpenGL/Vulkan software implementations to pass. --- tests/blur.py | 22 ++++++++++++++++++++++ tests/meson.build | 1 + tests/refs/blur_fast_gaussian.ref | 10 ++++++++++ 3 files changed, 33 insertions(+) create mode 100644 tests/refs/blur_fast_gaussian.ref diff --git a/tests/blur.py b/tests/blur.py index f1350fb33..3e2d6b9e7 100644 --- a/tests/blur.py +++ b/tests/blur.py @@ -44,3 +44,25 @@ def blur_gaussian(cfg: ngl.SceneCfg): ), ) return ngl.Group(children=(blur, ngl.RenderTexture(blurred_texture))) + + +@test_fingerprint(keyframes=10, tolerance=5) +@ngl.scene() +def blur_fast_gaussian(cfg: ngl.SceneCfg): + cfg.aspect_ratio = (1, 1) + cfg.duration = 10 + + noise = ngl.RenderNoise(type="blocky", octaves=3, scale=(9, 9)) + noise_texture = ngl.Texture2D(data_src=noise) + blurred_texture = ngl.Texture2D() + blur = ngl.FastGaussianBlur( + source=noise_texture, + destination=blurred_texture, + bluriness=ngl.AnimatedFloat( + [ + ngl.AnimKeyFrameFloat(0, 0), + ngl.AnimKeyFrameFloat(cfg.duration, 1), + ] + ), + ) + return ngl.Group(children=(blur, ngl.RenderTexture(blurred_texture))) diff --git a/tests/meson.build b/tests/meson.build index 83c589ff7..655491785 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -88,6 +88,7 @@ foreach backend : backends tests_blur = [ 'gaussian', + 'fast_gaussian', ] tests_color = [ diff --git a/tests/refs/blur_fast_gaussian.ref b/tests/refs/blur_fast_gaussian.ref new file mode 100644 index 000000000..31867e681 --- /dev/null +++ b/tests/refs/blur_fast_gaussian.ref @@ -0,0 +1,10 @@ +D1F7C0A0777038F3FA181A85868C977F D1F7C0A0777038F3FA181A85868C977F D1F7C0A0777038F3FA181A85868C977F 00000000000000000000000000000000 +C1F7C0A0F5F03873FA1C0A85868D97FF C1F7C0A0F5F03873FA1C0A85868D97FF C1F7C0A0F5F03873FA1C0A85868D97FF 00000000000000000000000000000000 +E1F7E0A0E5E0B870F81C8A85878D97FD E1F7E0A0E5E0B870F81C8A85878D97FD E1F7E0A0E5E0B870F81C8A85878D97FD 00000000000000000000000000000000 +E1F5E0A0E5E0F870F8149285878D95ED E1F5E0A0E5E0F870F8149285878D95ED E1F5E0A0E5E0F870F8149285878D95ED 00000000000000000000000000000000 +A1F5E0A0E1E0F870F8149285878D95ED A1F5E0A0E1E0F870F8149285878D95ED A1F5E0A0E1E0F870F8149285878D95ED 00000000000000000000000000000000 +A1E5E1E0E1E0F070F8158205878D95AD A1E5E1E0E1E0F070F8158205878D95AD A1E5E1E0E1E0F070F8158205878D95AD 00000000000000000000000000000000 +A1E0A1E0E170F050F005800586A595AD A1E0A1E0E170F050F005800586A595AD A1E0A1E0E170F050F005800586A595AD 00000000000000000000000000000000 +A1E0A1E0E170F050F005800584A585AD A1E0A1E0E170F050F005800584A585AD A1E0A1E0E170F050F005800584A585AD 00000000000000000000000000000000 +A1A0A1E0E160F050F005800584A585AD A1A0A1E0E160F050F005800584A585AD A1A0A1E0E160F050F005800584A585AD 00000000000000000000000000000000 +A0A0E160E160F010E005800584A585AD A0A0E160E160F010E005800584A585AD A0A0E160E160F010E005800584A585AD 00000000000000000000000000000000