diff --git a/graphics/composer/aidl/vts/Android.bp b/graphics/composer/aidl/vts/Android.bp index e60e1a7e65..d71999df6e 100644 --- a/graphics/composer/aidl/vts/Android.bp +++ b/graphics/composer/aidl/vts/Android.bp @@ -54,7 +54,6 @@ cc_test { "libgui", "libhidlbase", "libprocessgroup", - "libtinyxml2", "libvndksupport", ], header_libs: [ diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp index a83b833eeb..4b0f336d29 100644 --- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp +++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_ReadbackTest.cpp @@ -31,12 +31,6 @@ #include "RenderEngineVts.h" #include "VtsComposerClient.h" -// tinyxml2 does implicit conversions >:( -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wconversion" -#include -#pragma clang diagnostic pop - namespace aidl::android::hardware::graphics::composer3::vts { namespace { @@ -128,63 +122,6 @@ class GraphicsCompositionTestBase : public ::testing::Test { return {false, graphicBuffer}; } - // Gets the per-display XML config - std::unique_ptr getDisplayConfigXml(int64_t display) { - - if (auto document = getDisplayConfigXmlByStableId(getStableDisplayId(display)); - document != nullptr) { - return document; - } - - // Fallback to looking up a per-port config if no config exists for the full ID - if (auto document = getDisplayConfigXmlByPort(getPort(display)); document != nullptr) { - return document; - } - - return nullptr; - } - - // Gets the max display brightness for this display. - // If the display config xml does not exist, then assume that the display is not well-configured - // enough to provide a display brightness, so return nullopt. - std::optional getMaxDisplayBrightnessNits(int64_t display) { - const auto document = getDisplayConfigXml(display); - if (!document) { - // Assume the device doesn't support display brightness - return std::nullopt; - } - - const auto root = document->RootElement(); - if (!root) { - // If there's somehow no root element, then this isn't a valid config - return std::nullopt; - } - - const auto screenBrightnessMap = root->FirstChildElement("screenBrightnessMap"); - if (!screenBrightnessMap) { - // A valid display config must have a screen brightness map - return std::nullopt; - } - - auto point = screenBrightnessMap->FirstChildElement("point"); - float maxNits = -1.f; - while (point != nullptr) { - const auto nits = point->FirstChildElement("nits"); - if (nits) { - maxNits = std::max(maxNits, nits->FloatText(-1.f)); - } - point = point->NextSiblingElement("point"); - } - - if (maxNits < 0.f) { - // If we got here, then there were no point elements containing a nit value, so this - // config isn't valid - return std::nullopt; - } - - return maxNits; - } - void writeLayers(const std::vector>& layers) { for (const auto& layer : layers) { layer->write(*mWriter); @@ -242,53 +179,6 @@ class GraphicsCompositionTestBase : public ::testing::Test { } } } - - uint8_t getPort(int64_t display) { - const auto& [status, identification] = - mComposerClient->getDisplayIdentificationData(display); - EXPECT_TRUE(status.isOk()); - return static_cast(identification.port); - } - - uint64_t getStableDisplayId(int64_t display) { - const auto& [status, identification] = - mComposerClient->getDisplayIdentificationData(display); - EXPECT_TRUE(status.isOk()); - - if (const auto info = ::android::parseDisplayIdentificationData( - static_cast(identification.port), identification.data)) { - return info->id.value; - } - - return ::android::PhysicalDisplayId::fromPort(static_cast(identification.port)) - .value; - } - - std::unique_ptr loadXml(const std::string& path) { - auto document = std::make_unique(); - const tinyxml2::XMLError error = document->LoadFile(path.c_str()); - if (error != tinyxml2::XML_SUCCESS) { - ALOGD("%s: Failed to load config file: %s", __func__, path.c_str()); - return nullptr; - } - - ALOGD("%s: Successfully loaded config file: %s", __func__, path.c_str()); - return document; - } - - std::unique_ptr getDisplayConfigXmlByPort(uint8_t port) { - std::stringstream pathBuilder; - pathBuilder << "/vendor/etc/displayconfig/display_port_" << static_cast(port) - << ".xml"; - return loadXml(pathBuilder.str()); - } - - std::unique_ptr getDisplayConfigXmlByStableId(uint64_t stableId) { - std::stringstream pathBuilder; - pathBuilder << "/vendor/etc/displayconfig/display_id_" << stableId - << ".xml"; - return loadXml(pathBuilder.str()); - } }; class GraphicsCompositionTest : public GraphicsCompositionTestBase, @@ -990,32 +880,6 @@ TEST_P(GraphicsCompositionTest, SetLayerZOrder) { } TEST_P(GraphicsCompositionTest, SetLayerBrightnessDims) { - const auto& [status, capabilities] = - mComposerClient->getDisplayCapabilities(getPrimaryDisplayId()); - ASSERT_TRUE(status.isOk()); - - const bool brightnessSupport = std::find(capabilities.begin(), capabilities.end(), - DisplayCapability::BRIGHTNESS) != capabilities.end(); - - if (!brightnessSupport) { - GTEST_SUCCEED() << "Cannot verify dimming behavior without brightness support"; - return; - } - - const std::optional maxBrightnessNitsOptional = - getMaxDisplayBrightnessNits(getPrimaryDisplayId()); - - ASSERT_TRUE(maxBrightnessNitsOptional.has_value()); - - const float maxBrightnessNits = *maxBrightnessNitsOptional; - - // Preconditions to successfully run are knowing the max brightness and successfully applying - // the max brightness - ASSERT_GT(maxBrightnessNits, 0.f); - mWriter->setDisplayBrightness(getPrimaryDisplayId(), /*brightness*/ 1.f, maxBrightnessNits); - execute(); - ASSERT_TRUE(mReader.takeErrors().empty()); - for (ColorMode mode : mTestColorModes) { EXPECT_TRUE(mComposerClient ->setColorMode(getPrimaryDisplayId(), mode, RenderIntent::COLORIMETRIC) @@ -1032,11 +896,14 @@ TEST_P(GraphicsCompositionTest, SetLayerBrightnessDims) { const common::Rect redRect = {0, 0, getDisplayWidth(), getDisplayHeight() / 2}; const common::Rect dimmerRedRect = {0, getDisplayHeight() / 2, getDisplayWidth(), getDisplayHeight()}; + + static constexpr float kMaxBrightnessNits = 300.f; + const auto redLayer = std::make_shared(mComposerClient, getPrimaryDisplayId()); redLayer->setColor(RED); redLayer->setDisplayFrame(redRect); - redLayer->setWhitePointNits(maxBrightnessNits); + redLayer->setWhitePointNits(kMaxBrightnessNits); redLayer->setBrightness(1.f); const auto dimmerRedLayer = @@ -1046,7 +913,7 @@ TEST_P(GraphicsCompositionTest, SetLayerBrightnessDims) { // Intentionally use a small dimming ratio as some implementations may be more likely to // kick into GPU composition to apply dithering when the dimming ratio is high. static constexpr float kDimmingRatio = 0.9f; - dimmerRedLayer->setWhitePointNits(maxBrightnessNits * kDimmingRatio); + dimmerRedLayer->setWhitePointNits(kMaxBrightnessNits * kDimmingRatio); dimmerRedLayer->setBrightness(kDimmingRatio); const std::vector> layers = {redLayer, dimmerRedLayer};