Fix composer@2.3 VTS tests.

Some required APIs must be implemented, and thus passthrough will always assume
the function pointers exist.

BUG: 130195295
Test: atest VtsHalGraphicsComposerV2_3Target
Change-Id: Ic2790363fcb116e66438697b1a2e64e71ffc8ac6
diff --git a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
index 1b40795..3792c2e 100644
--- a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
+++ b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h
@@ -22,7 +22,6 @@
 
 #include <android/hardware/graphics/composer/2.3/IComposerClient.h>
 #include <composer-hal/2.2/ComposerResources.h>
-#include <composer-hal/2.3/ComposerClient.h>
 #include <composer-hal/2.3/ComposerCommandEngine.h>
 #include <composer-hal/2.3/ComposerHal.h>
 
diff --git a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
index e2bed95..4829e24 100644
--- a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
+++ b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h
@@ -221,10 +221,6 @@
 
     Error getDisplayCapabilities(
         Display display, hidl_vec<IComposerClient::DisplayCapability>* outCapabilities) override {
-        if (!mDispatch.getDisplayCapabilities) {
-            return Error::UNSUPPORTED;
-        }
-
         uint32_t count = 0;
         int32_t error = mDispatch.getDisplayCapabilities(mDevice, display, &count, nullptr);
         if (error != HWC2_ERROR_NONE) {
diff --git a/graphics/composer/2.3/utils/vts/ComposerVts.cpp b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
index 4de85d6..b763209 100644
--- a/graphics/composer/2.3/utils/vts/ComposerVts.cpp
+++ b/graphics/composer/2.3/utils/vts/ComposerVts.cpp
@@ -177,13 +177,17 @@
     return error;
 }
 
-std::vector<IComposerClient::DisplayCapability> ComposerClient::getDisplayCapabilities(
-    Display display) {
+Error ComposerClient::getDisplayCapabilities(
+        Display display, std::vector<IComposerClient::DisplayCapability>* outCapabilities) {
     std::vector<IComposerClient::DisplayCapability> capabilities;
-    mClient->getDisplayCapabilities(
-        display, [&](const auto&, const auto& tmpCapabilities) { capabilities = tmpCapabilities; });
+    Error error = Error::NONE;
+    mClient->getDisplayCapabilities(display,
+                                    [&](const auto& tmpError, const auto& tmpCapabilities) {
+                                        error = tmpError;
+                                        *outCapabilities = tmpCapabilities;
+                                    });
 
-    return capabilities;
+    return error;
 }
 
 bool ComposerClient::getDisplayBrightnessSupport(Display display) {
diff --git a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
index a0e764d..0d4e5b8 100644
--- a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
+++ b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h
@@ -95,7 +95,9 @@
 
     bool getClientTargetSupport_2_3(Display display, uint32_t width, uint32_t height,
                                     PixelFormat format, Dataspace dataspace);
-    std::vector<IComposerClient::DisplayCapability> getDisplayCapabilities(Display display);
+    Error getDisplayCapabilities(
+            Display display,
+            std::vector<IComposerClient::DisplayCapability>* outDisplayCapabilities);
 
     std::vector<IComposerClient::PerFrameMetadataKey> getPerFrameMetadataKeys_2_3(Display display);
 
diff --git a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp
index b983e42..56b2e33 100644
--- a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp
+++ b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp
@@ -565,16 +565,19 @@
  * Test some constraints.
  */
 TEST_F(GraphicsComposerHidlTest, getDisplayCapabilitiesBasic) {
-    auto capabilities = mComposerClient->getDisplayCapabilities(mPrimaryDisplay);
-    bool hasDozeSupport = std::find(capabilities.begin(), capabilities.end(),
-                                    IComposerClient::DisplayCapability::DOZE) != capabilities.end();
+    std::vector<IComposerClient::DisplayCapability> capabilities;
+    const auto error = mComposerClient->getDisplayCapabilities(mPrimaryDisplay, &capabilities);
+    ASSERT_EQ(Error::NONE, error);
+    const bool hasDozeSupport =
+            std::find(capabilities.begin(), capabilities.end(),
+                      IComposerClient::DisplayCapability::DOZE) != capabilities.end();
     EXPECT_EQ(mComposerClient->getDozeSupport(mPrimaryDisplay), hasDozeSupport);
 }
 
 TEST_F(GraphicsComposerHidlTest, getDisplayCapabilitiesBadDisplay) {
-    mComposerClient->getRaw()->getDisplayCapabilities(
-        mInvalidDisplayId,
-        [&](const auto& tmpError, const auto&) { EXPECT_EQ(Error::BAD_DISPLAY, tmpError); });
+    std::vector<IComposerClient::DisplayCapability> capabilities;
+    const auto error = mComposerClient->getDisplayCapabilities(mInvalidDisplayId, &capabilities);
+    EXPECT_EQ(Error::BAD_DISPLAY, error);
 }
 
 TEST_F(GraphicsComposerHidlTest, SetLayerPerFrameMetadataBlobs) {
@@ -604,7 +607,9 @@
  * Test that getDisplayBrightnessSupport works as expected.
  */
 TEST_F(GraphicsComposerHidlTest, getDisplayBrightnessSupport) {
-    auto capabilities = mComposerClient->getDisplayCapabilities(mPrimaryDisplay);
+    std::vector<IComposerClient::DisplayCapability> capabilities;
+    const auto error = mComposerClient->getDisplayCapabilities(mPrimaryDisplay, &capabilities);
+    ASSERT_EQ(Error::NONE, error);
     bool brightnessSupport =
             std::find(capabilities.begin(), capabilities.end(),
                       IComposerClient::DisplayCapability::BRIGHTNESS) != capabilities.end();
@@ -616,9 +621,9 @@
  */
 TEST_F(GraphicsComposerHidlTest, setDisplayBrightness) {
     if (!mComposerClient->getDisplayBrightnessSupport(mPrimaryDisplay)) {
-        EXPECT_EQ(mComposerClient->getRaw()->setDisplayBrightness(mPrimaryDisplay, 0.5f),
-                  Error::UNSUPPORTED);
+        EXPECT_EQ(mComposerClient->setDisplayBrightness(mPrimaryDisplay, 0.5f), Error::UNSUPPORTED);
         GTEST_SUCCEED() << "Brightness operations are not supported";
+        return;
     }
 
     EXPECT_EQ(mComposerClient->setDisplayBrightness(mPrimaryDisplay, 0.0f), Error::NONE);