diff options
author | Sebastian Ramacher <sramacher@debian.org> | 2024-12-29 12:50:37 +0000 |
---|---|---|
committer | Sebastian Ramacher <sramacher@debian.org> | 2024-12-29 12:50:37 +0000 |
commit | 873c687c09e0a1a78a8f3601d31330ad1897e484 (patch) | |
tree | ff2fa2e2d27b55c002a6d46d50aab2c66e0bf21a /src/film_grain_test.cc | |
parent | 395b1f6877fbc2666383f3428f17400c35aa52a4 (diff) | |
parent | b9ae809f200982119d16ec9613f3db95eca923b9 (diff) | |
download | libgav1-873c687c09e0a1a78a8f3601d31330ad1897e484.tar.gz libgav1-873c687c09e0a1a78a8f3601d31330ad1897e484.tar.bz2 libgav1-873c687c09e0a1a78a8f3601d31330ad1897e484.zip |
Merge branch 'master' into 'scrub-obsolete'
# Conflicts:
# debian/changelog
Diffstat (limited to 'src/film_grain_test.cc')
-rw-r--r-- | src/film_grain_test.cc | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/film_grain_test.cc b/src/film_grain_test.cc index d5854e0..fc1f1b1 100644 --- a/src/film_grain_test.cc +++ b/src/film_grain_test.cc @@ -2190,8 +2190,10 @@ class BlendNoiseTest : public testing::TestWithParam<std::tuple<int, int>> { static_assert(bitdepth >= kBitdepth8 && bitdepth <= LIBGAV1_MAX_BITDEPTH, ""); using GrainType = typename std::conditional<bitdepth == 8, int8_t, int16_t>::type; + ~BlendNoiseTest() override = default; - BlendNoiseTest() { + protected: + void SetUp() override { test_utils::ResetDspTable(bitdepth); FilmGrainInit_C(); const dsp::Dsp* const dsp = dsp::GetDspTable(bitdepth); @@ -2204,6 +2206,7 @@ class BlendNoiseTest : public testing::TestWithParam<std::tuple<int, int>> { FilmGrainInit_NEON(); #endif } else if (absl::StartsWith(test_case, "SSE41/")) { + if ((GetCpuInfo() & kSSE4_1) == 0) GTEST_SKIP() << "No SSE4.1 support!"; FilmGrainInit_SSE4_1(); } const BlendNoiseTestParam test_param(GetParam()); @@ -2236,9 +2239,7 @@ class BlendNoiseTest : public testing::TestWithParam<std::tuple<int, int>> { dest_plane_v_ = dest_plane_u_ + uv_stride_ * uv_height_ + kBorderPixelsFilmGrain; } - ~BlendNoiseTest() override = default; - protected: void TestSpeed(int num_runs); private: @@ -2298,15 +2299,15 @@ void BlendNoiseTest<bitdepth, Pixel>::ConvertScalingLut10bpp( template <int bitdepth, typename Pixel> void BlendNoiseTest<bitdepth, Pixel>::TestSpeed(const int num_runs) { if (blend_chroma_func_ == nullptr || blend_luma_func_ == nullptr) return; - ASSERT_TRUE(noise_image_[kPlaneY].Reset(height_, - width_ + kBorderPixelsFilmGrain, - /*zero_initialize=*/false)); - ASSERT_TRUE(noise_image_[kPlaneU].Reset(uv_height_, - uv_width_ + kBorderPixelsFilmGrain, - /*zero_initialize=*/false)); - ASSERT_TRUE(noise_image_[kPlaneV].Reset(uv_height_, - uv_width_ + kBorderPixelsFilmGrain, - /*zero_initialize=*/false)); + // Allow optimized code to read into the border without generating MSan + // warnings. This matches the behavior in FilmGrain::AllocateNoiseImage(). + constexpr bool zero_initialize = LIBGAV1_MSAN == 1; + ASSERT_TRUE(noise_image_[kPlaneY].Reset(height_, width_ + kNoiseImagePadding, + zero_initialize)); + ASSERT_TRUE(noise_image_[kPlaneU].Reset( + uv_height_, uv_width_ + kNoiseImagePadding, zero_initialize)); + ASSERT_TRUE(noise_image_[kPlaneV].Reset( + uv_height_, uv_width_ + kNoiseImagePadding, zero_initialize)); libvpx_test::ACMRandom rnd(libvpx_test::ACMRandom::DeterministicSeed()); // Allow any valid grain values. const int grain_max = GetGrainMax<bitdepth>(); @@ -2533,7 +2534,10 @@ template <int bitdepth, typename Pixel> class FilmGrainSpeedTest : public testing::TestWithParam<int> { public: static_assert(bitdepth >= kBitdepth8 && bitdepth <= LIBGAV1_MAX_BITDEPTH, ""); - FilmGrainSpeedTest() { + ~FilmGrainSpeedTest() override = default; + + protected: + void SetUp() override { test_utils::ResetDspTable(bitdepth); FilmGrainInit_C(); @@ -2545,6 +2549,7 @@ class FilmGrainSpeedTest : public testing::TestWithParam<int> { FilmGrainInit_NEON(); #endif } else if (absl::StartsWith(test_case, "SSE41/")) { + if ((GetCpuInfo() & kSSE4_1) == 0) GTEST_SKIP() << "No SSE4.1 support!"; FilmGrainInit_SSE4_1(); } uv_width_ = (width_ + subsampling_x_) >> subsampling_x_; @@ -2566,9 +2571,7 @@ class FilmGrainSpeedTest : public testing::TestWithParam<int> { const int num_threads = GetParam(); thread_pool_ = ThreadPool::Create(num_threads); } - ~FilmGrainSpeedTest() override = default; - protected: void TestSpeed(int num_runs); private: |