[Lut VTS] add vts for getLuts()
Bug: 352585077
Test: this
Change-Id: I35ee2ec26c40c899afb67b65c91cab15b1c4efc1
diff --git a/graphics/composer/aidl/vts/VtsComposerClient.cpp b/graphics/composer/aidl/vts/VtsComposerClient.cpp
index 9b6a005..f09482c 100644
--- a/graphics/composer/aidl/vts/VtsComposerClient.cpp
+++ b/graphics/composer/aidl/vts/VtsComposerClient.cpp
@@ -696,4 +696,10 @@
return {mComposerClient->getMaxLayerPictureProfiles(display, &outMaxProfiles), outMaxProfiles};
}
+std::pair<ScopedAStatus, std::vector<Luts>> VtsComposerClient::getLuts(
+ int64_t display, const std::vector<Buffer>& buffers) {
+ std::vector<Luts> outLuts;
+ return {mComposerClient->getLuts(display, buffers, &outLuts), std::move(outLuts)};
+}
+
} // namespace aidl::android::hardware::graphics::composer3::vts
diff --git a/graphics/composer/aidl/vts/VtsComposerClient.h b/graphics/composer/aidl/vts/VtsComposerClient.h
index 53f5fae..f0dbe57 100644
--- a/graphics/composer/aidl/vts/VtsComposerClient.h
+++ b/graphics/composer/aidl/vts/VtsComposerClient.h
@@ -200,6 +200,9 @@
std::pair<ScopedAStatus, int32_t> getMaxLayerPictureProfiles(int64_t display);
+ std::pair<ScopedAStatus, std::vector<Luts>> getLuts(int64_t display,
+ const std::vector<Buffer>& buffers);
+
static constexpr int32_t kMaxFrameIntervalNs = 50000000; // 20fps
static constexpr int32_t kNoFrameIntervalNs = 0;
diff --git a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
index c1900d7..6b43cc8 100644
--- a/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
+++ b/graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp
@@ -3356,6 +3356,30 @@
}
}
+// @NonApiTest = check the status if calling getLuts
+TEST_P(GraphicsComposerAidlCommandV4Test, GetLuts) {
+ for (auto& display : mDisplays) {
+ int64_t displayId = display.getDisplayId();
+ auto& writer = getWriter(displayId);
+ const auto layer = createOnScreenLayer(display);
+ const auto buffer = allocate(::android::PIXEL_FORMAT_RGBA_8888);
+ ASSERT_NE(nullptr, buffer->handle);
+ writer.setLayerBuffer(displayId, layer, /*slot*/ 0, buffer->handle,
+ /*acquireFence*/ -1);
+ Buffer aidlbuffer;
+ aidlbuffer.handle = ::android::dupToAidl(buffer->handle);
+ std::vector<Buffer> buffers;
+ buffers.push_back(std::move(aidlbuffer));
+ const auto& [status, _] = mComposerClient->getLuts(displayId, buffers);
+ if (!status.isOk() && status.getExceptionCode() == EX_SERVICE_SPECIFIC &&
+ status.getServiceSpecificError() == IComposerClient::EX_UNSUPPORTED) {
+ GTEST_SKIP() << "getLuts is not supported";
+ return;
+ }
+ ASSERT_TRUE(status.isOk());
+ }
+}
+
TEST_P(GraphicsComposerAidlCommandV4Test, SetUnsupportedLayerLuts) {
auto& writer = getWriter(getPrimaryDisplayId());
const auto& [layerStatus, layer] =