0

Revert "media/gpu/vaapi: add Vaapi Vpp unittest"

This reverts commit 26cf966c83.

Reason for revert: BlitWithVAAllocatedSurfaces breaks in some cases
which blocks Chrome uprevs (b/188936977).

Original change's description:
> media/gpu/vaapi: add Vaapi Vpp unittest
>
> This CL adds a VaapiVppTest with a single parameterized test case
> to verify that the Video Processing Pipeline (Vpp) can be called
> to convert (scale in this case) formats that claim to support.
>
> Bug: b:187852384
> Test: vaapi_unittest --gtest_filter=*VaapiVppTest*  on volteer
>
> Change-Id: I4cd8fc6a20874bcb73298c27d1c389a157168fce
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2890850
> Commit-Queue: Miguel Casas <mcasas@chromium.org>
> Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#883539}

Bug: b:187852384, b:188936977
Change-Id: Ic21b5d28067f0340ec59392d3f4a3e885a3072b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2911106
Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Andres Calderon Jaramillo <andrescj@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#885720}
This commit is contained in:
Andres Calderon Jaramillo
2021-05-22 00:24:21 +00:00
committed by Chromium LUCI CQ
parent f065944d13
commit b381bee18c

@ -113,21 +113,6 @@ std::unique_ptr<base::test::ScopedFeatureList> CreateScopedFeatureList() {
/*disabled_features=*/{});
return scoped_feature_list;
}
unsigned int ToVaRTFormat(uint32_t va_fourcc) {
switch (va_fourcc) {
case VA_FOURCC_I420:
return VA_RT_FORMAT_YUV420;
case VA_FOURCC_YUY2:
return VA_RT_FORMAT_YUV422;
case VA_FOURCC_RGBA:
return VA_RT_FORMAT_RGB32;
case VA_FOURCC_P010:
return VA_RT_FORMAT_YUV420_10;
}
return kInvalidVaRtFormat;
}
} // namespace
class VaapiTest : public testing::Test {
@ -368,87 +353,6 @@ TEST_F(VaapiTest, LowQualityEncodingSetting) {
}
}
}
class VaapiVppTest
: public VaapiTest,
public testing::WithParamInterface<std::tuple<uint32_t, uint32_t>> {
public:
VaapiVppTest() = default;
~VaapiVppTest() override = default;
// Populate meaningful test suffixes instead of /0, /1, etc.
struct PrintToStringParamName {
template <class ParamType>
std::string operator()(
const testing::TestParamInfo<ParamType>& info) const {
std::stringstream ss;
ss << FourccToString(std::get<0>(info.param)) << "_to_"
<< FourccToString(std::get<1>(info.param));
return ss.str();
}
};
};
TEST_P(VaapiVppTest, BlitWithVAAllocatedSurfaces) {
const uint32_t va_fourcc_in = std::get<0>(GetParam());
const uint32_t va_fourcc_out = std::get<1>(GetParam());
if (!VaapiWrapper::IsVppFormatSupported(va_fourcc_in) ||
!VaapiWrapper::IsVppFormatSupported(va_fourcc_out)) {
GTEST_SKIP() << FourccToString(va_fourcc_in) << " -> "
<< FourccToString(va_fourcc_out) << " not supported";
}
constexpr gfx::Size kInputSize(640, 320);
constexpr gfx::Size kOutputSize(320, 180);
ASSERT_TRUE(VaapiWrapper::IsVppResolutionAllowed(kInputSize));
ASSERT_TRUE(VaapiWrapper::IsVppResolutionAllowed(kOutputSize));
auto wrapper =
VaapiWrapper::Create(VaapiWrapper::kVideoProcess, VAProfileNone,
EncryptionScheme::kUnencrypted, base::DoNothing());
ASSERT_TRUE(!!wrapper);
// Size is unnecessary for a VPP context.
ASSERT_TRUE(wrapper->CreateContext(gfx::Size()));
const unsigned int va_rt_format_in = ToVaRTFormat(va_fourcc_in);
ASSERT_NE(va_rt_format_in, kInvalidVaRtFormat);
const unsigned int va_rt_format_out = ToVaRTFormat(va_fourcc_out);
ASSERT_NE(va_rt_format_out, kInvalidVaRtFormat);
std::unique_ptr<ScopedVASurface> scoped_surface_in =
wrapper->CreateScopedVASurface(va_rt_format_in, kInputSize);
ASSERT_TRUE(!!scoped_surface_in);
std::unique_ptr<ScopedVASurface> scoped_surface_out =
wrapper->CreateScopedVASurface(va_rt_format_out, kOutputSize);
ASSERT_TRUE(!!scoped_surface_out);
scoped_refptr<VASurface> surface_in = base::MakeRefCounted<VASurface>(
scoped_surface_in->id(), kInputSize, va_rt_format_in, base::DoNothing());
scoped_refptr<VASurface> surface_out =
base::MakeRefCounted<VASurface>(scoped_surface_out->id(), kOutputSize,
va_rt_format_out, base::DoNothing());
ASSERT_TRUE(wrapper->BlitSurface(*surface_in, *surface_out,
gfx::Rect(kInputSize),
gfx::Rect(kOutputSize), VIDEO_ROTATION_0));
ASSERT_TRUE(wrapper->SyncSurface(scoped_surface_out->id()));
wrapper->DestroyContext();
}
// TODO(b/187852384): Consider adding more VaapiVppTest cases, e.g. crops.
// Note: vaCreateSurfaces() uses the RT version of the Four CC, so we don't need
// to consider swizzlings, since they'll end up mapped to the same RT format.
constexpr uint32_t kVAFourCCs[] = {VA_FOURCC_I420, VA_FOURCC_YUY2,
VA_FOURCC_RGBA, VA_FOURCC_P010};
INSTANTIATE_TEST_SUITE_P(,
VaapiVppTest,
::testing::Combine(::testing::ValuesIn(kVAFourCCs),
::testing::ValuesIn(kVAFourCCs)),
VaapiVppTest::PrintToStringParamName());
} // namespace media
int main(int argc, char** argv) {