Hash :
71c90dfd
Author :
Date :
2023-08-18T21:50:22
gtest: disable legacy test case API Remove APIs that upstream has deprecated so we make sure no one uses them anymore in new tests. Bug: chromium:1474588 Change-Id: Ic760439ec41131a5bb5a30a59e23b9166c7fd23d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4794112 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Mike Frysinger <vapier@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
//
// Copyright 2022 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// AstcDecompressorPerf: Performance test for the ASTC decompressor.
//
#include "ANGLEPerfTest.h"
#include <gmock/gmock.h>
#include "common/WorkerThread.h"
#include "image_util/AstcDecompressor.h"
#include "image_util/AstcDecompressorTestUtils.h"
using namespace testing;
namespace
{
using angle::AstcDecompressor;
using angle::WorkerThreadPool;
struct AstcDecompressorParams
{
AstcDecompressorParams(uint32_t width, uint32_t height) : width(width), height(height) {}
uint32_t width;
uint32_t height;
};
std::ostream &operator<<(std::ostream &os, const AstcDecompressorParams ¶ms)
{
os << params.width << "x" << params.height;
return os;
}
class AstcDecompressorPerfTest : public ANGLEPerfTest,
public WithParamInterface<AstcDecompressorParams>
{
public:
AstcDecompressorPerfTest();
void step() override;
std::string getName();
AstcDecompressor &mDecompressor;
std::vector<uint8_t> mInput;
std::vector<uint8_t> mOutput;
std::shared_ptr<WorkerThreadPool> mSingleThreadPool;
std::shared_ptr<WorkerThreadPool> mMultiThreadPool;
};
AstcDecompressorPerfTest::AstcDecompressorPerfTest()
: ANGLEPerfTest(getName(), "", "_run", 1, "us"),
mDecompressor(AstcDecompressor::get()),
mInput(makeAstcCheckerboard(GetParam().width, GetParam().height)),
mOutput(GetParam().width * GetParam().height * 4),
mSingleThreadPool(WorkerThreadPool::Create(1, ANGLEPlatformCurrent())),
mMultiThreadPool(WorkerThreadPool::Create(0, ANGLEPlatformCurrent()))
{}
void AstcDecompressorPerfTest::step()
{
mDecompressor.decompress(mSingleThreadPool, mMultiThreadPool, GetParam().width,
GetParam().height, 8, 8, mInput.data(), mInput.size(), mOutput.data());
}
std::string AstcDecompressorPerfTest::getName()
{
std::stringstream ss;
ss << UnitTest::GetInstance()->current_test_suite()->name() << "/" << GetParam();
return ss.str();
}
// Measures the speed of ASTC decompression on the CPU.
TEST_P(AstcDecompressorPerfTest, Run)
{
if (!mDecompressor.available())
skipTest("ASTC decompressor not available");
this->run();
}
INSTANTIATE_TEST_SUITE_P(,
AstcDecompressorPerfTest,
Values(AstcDecompressorParams(16, 16),
AstcDecompressorParams(256, 256),
AstcDecompressorParams(1024, 1024)),
PrintToStringParamName());
} // anonymous namespace