summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hwc3/ComposerClient.cpp5
-rw-r--r--hwc3/ComposerClient.h4
-rw-r--r--hwc3/ComposerCommandEngine.cpp109
-rw-r--r--hwc3/ComposerCommandEngine.h104
-rw-r--r--hwc3/impl/HalImpl.cpp6
-rw-r--r--hwc3/impl/HalImpl.h2
-rw-r--r--hwc3/include/IComposerHal.h50
7 files changed, 131 insertions, 149 deletions
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp
index c0ed7fd..ea2dbcf 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -106,9 +106,8 @@ ndk::ScopedAStatus ComposerClient::destroyVirtualDisplay(int64_t display) {
return TO_BINDER_STATUS(err);
}
-ndk::ScopedAStatus ComposerClient::executeCommands(
- const std::vector<command::CommandPayload>& commands,
- std::vector<command::CommandResultPayload>* results) {
+ndk::ScopedAStatus ComposerClient::executeCommands(const std::vector<DisplayCommand>& commands,
+ std::vector<CommandResultPayload>* results) {
DEBUG_FUNC();
auto err = mCommandEngine->execute(commands, results);
mCommandEngine->reset();
diff --git a/hwc3/ComposerClient.h b/hwc3/ComposerClient.h
index 8e274b1..dead8a4 100644
--- a/hwc3/ComposerClient.h
+++ b/hwc3/ComposerClient.h
@@ -64,8 +64,8 @@ class ComposerClient : public BnComposerClient {
VirtualDisplay* display) override;
ndk::ScopedAStatus destroyLayer(int64_t display, int64_t layer) override;
ndk::ScopedAStatus destroyVirtualDisplay(int64_t display) override;
- ndk::ScopedAStatus executeCommands(const std::vector<command::CommandPayload>& commands,
- std::vector<command::CommandResultPayload>* results) override;
+ ndk::ScopedAStatus executeCommands(const std::vector<DisplayCommand>& commands,
+ std::vector<CommandResultPayload>* results) override;
ndk::ScopedAStatus getActiveConfig(int64_t display, int32_t* config) override;
ndk::ScopedAStatus getColorModes(int64_t display, std::vector<ColorMode>* colorModes) override;
ndk::ScopedAStatus getDataspaceSaturationMatrix(common::Dataspace dataspace,
diff --git a/hwc3/ComposerCommandEngine.cpp b/hwc3/ComposerCommandEngine.cpp
index f28c385..82d63c0 100644
--- a/hwc3/ComposerCommandEngine.cpp
+++ b/hwc3/ComposerCommandEngine.cpp
@@ -25,12 +25,11 @@
// and adapt to aidl structures.
namespace aidl::android::hardware::graphics::composer3::impl {
-#define DISPATCH_LAYER_COMMAND(layerCmd, field, funcName) \
- do { \
- if (layerCmd.field) { \
- executeSetLayer##funcName(layerCmd.display, \
- layerCmd.layer, *layerCmd.field); \
- } \
+#define DISPATCH_LAYER_COMMAND(display, layerCmd, field, funcName) \
+ do { \
+ if (layerCmd.field) { \
+ executeSetLayer##funcName(display, layerCmd.layer, *layerCmd.field); \
+ } \
} while (0)
#define DISPATCH_DISPLAY_COMMAND(displayCmd, field, funcName) \
@@ -52,23 +51,11 @@ bool ComposerCommandEngine::init() {
return (mWriter != nullptr);
}
-int32_t ComposerCommandEngine::execute(const std::vector<command::CommandPayload>& commands,
- std::vector<command::CommandResultPayload>* result) {
+int32_t ComposerCommandEngine::execute(const std::vector<DisplayCommand>& commands,
+ std::vector<CommandResultPayload>* result) {
mCommandIndex = 0;
for (const auto& command : commands) {
- switch (command.getTag()) {
- case command::CommandPayload::displayCommand:
- dispatchDisplayCommand(command.get<command::CommandPayload::displayCommand>());
- break;
-
- case command::CommandPayload::layerCommand:
- dispatchLayerCommand(command.get<command::CommandPayload::layerCommand>());
- break;
-
- default:
- LOG(WARNING) << "unsupported command type " << command.toString();
- break;
- }
+ dispatchDisplayCommand(command);
++mCommandIndex;
}
@@ -76,7 +63,11 @@ int32_t ComposerCommandEngine::execute(const std::vector<command::CommandPayload
return 0;
}
-void ComposerCommandEngine::dispatchDisplayCommand(const command::DisplayCommand& command) {
+void ComposerCommandEngine::dispatchDisplayCommand(const DisplayCommand& command) {
+ for (const auto& layerCmd : command.layers) {
+ dispatchLayerCommand(command.display, layerCmd);
+ }
+
DISPATCH_DISPLAY_COMMAND(command, colorTransform, SetColorTransform);
DISPATCH_DISPLAY_COMMAND(command, clientTarget, SetClientTarget);
DISPATCH_DISPLAY_COMMAND(command, virtualDisplayOutputBuffer, SetOutputBuffer);
@@ -88,28 +79,28 @@ void ComposerCommandEngine::dispatchDisplayCommand(const command::DisplayCommand
DISPATCH_DISPLAY_BOOL_COMMAND(command, presentOrValidateDisplay, PresentOrValidateDisplay);
}
-void ComposerCommandEngine::dispatchLayerCommand(const command::LayerCommand &command) {
- DISPATCH_LAYER_COMMAND(command, cursorPosition, CursorPosition);
- DISPATCH_LAYER_COMMAND(command, buffer, Buffer);
- DISPATCH_LAYER_COMMAND(command, damage, SurfaceDamage);
- DISPATCH_LAYER_COMMAND(command, blendMode, BlendMode);
- DISPATCH_LAYER_COMMAND(command, color, Color);
- DISPATCH_LAYER_COMMAND(command, floatColor, FloatColor);
- DISPATCH_LAYER_COMMAND(command, composition, Composition);
- DISPATCH_LAYER_COMMAND(command, dataspace, Dataspace);
- DISPATCH_LAYER_COMMAND(command, displayFrame, DisplayFrame);
- DISPATCH_LAYER_COMMAND(command, planeAlpha, PlaneAlpha);
- DISPATCH_LAYER_COMMAND(command, sidebandStream, SidebandStream);
- DISPATCH_LAYER_COMMAND(command, sourceCrop, SourceCrop);
- DISPATCH_LAYER_COMMAND(command, transform, Transform);
- DISPATCH_LAYER_COMMAND(command, visibleRegion, VisibleRegion);
- DISPATCH_LAYER_COMMAND(command, z, ZOrder);
- DISPATCH_LAYER_COMMAND(command, colorTransform, ColorTransform);
+void ComposerCommandEngine::dispatchLayerCommand(int64_t display, const LayerCommand& command) {
+ DISPATCH_LAYER_COMMAND(display, command, cursorPosition, CursorPosition);
+ DISPATCH_LAYER_COMMAND(display, command, buffer, Buffer);
+ DISPATCH_LAYER_COMMAND(display, command, damage, SurfaceDamage);
+ DISPATCH_LAYER_COMMAND(display, command, blendMode, BlendMode);
+ DISPATCH_LAYER_COMMAND(display, command, color, Color);
+ DISPATCH_LAYER_COMMAND(display, command, floatColor, FloatColor);
+ DISPATCH_LAYER_COMMAND(display, command, composition, Composition);
+ DISPATCH_LAYER_COMMAND(display, command, dataspace, Dataspace);
+ DISPATCH_LAYER_COMMAND(display, command, displayFrame, DisplayFrame);
+ DISPATCH_LAYER_COMMAND(display, command, planeAlpha, PlaneAlpha);
+ DISPATCH_LAYER_COMMAND(display, command, sidebandStream, SidebandStream);
+ DISPATCH_LAYER_COMMAND(display, command, sourceCrop, SourceCrop);
+ DISPATCH_LAYER_COMMAND(display, command, transform, Transform);
+ DISPATCH_LAYER_COMMAND(display, command, visibleRegion, VisibleRegion);
+ DISPATCH_LAYER_COMMAND(display, command, z, ZOrder);
+ DISPATCH_LAYER_COMMAND(display, command, colorTransform, ColorTransform);
// TODO: (b/196171661) add support for mixed composition
- // DISPATCH_LAYER_COMMAND(command, whitePointNits, WhitePointNits);
- DISPATCH_LAYER_COMMAND(command, genericMetadata, GenericMetadata);
- DISPATCH_LAYER_COMMAND(command, perFrameMetadata, PerFrameMetadata);
- DISPATCH_LAYER_COMMAND(command, perFrameMetadataBlob, PerFrameMetadataBlobs);
+ // DISPATCH_LAYER_COMMAND(display, command, whitePointNits, WhitePointNits);
+ DISPATCH_LAYER_COMMAND(display, command, genericMetadata, GenericMetadata);
+ DISPATCH_LAYER_COMMAND(display, command, perFrameMetadata, PerFrameMetadata);
+ DISPATCH_LAYER_COMMAND(display, command, perFrameMetadataBlob, PerFrameMetadataBlobs);
}
int32_t ComposerCommandEngine::executeValidateDisplayInternal(int64_t display) {
@@ -137,7 +128,7 @@ int32_t ComposerCommandEngine::executeValidateDisplayInternal(int64_t display) {
}
void ComposerCommandEngine::executeSetColorTransform(int64_t display,
- const command::ColorTransformPayload& command) {
+ const ColorTransformPayload& command) {
auto err = mHal->setColorTransform(display, command.matrix, command.hint);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -145,8 +136,7 @@ void ComposerCommandEngine::executeSetColorTransform(int64_t display,
}
}
-void ComposerCommandEngine::executeSetClientTarget(int64_t display,
- const command::ClientTarget& command) {
+void ComposerCommandEngine::executeSetClientTarget(int64_t display, const ClientTarget& command) {
bool useCache = !command.buffer.handle;
buffer_handle_t handle = useCache
? nullptr
@@ -168,8 +158,7 @@ void ComposerCommandEngine::executeSetClientTarget(int64_t display,
}
}
-void ComposerCommandEngine::executeSetOutputBuffer(uint64_t display,
- const command::Buffer& buffer) {
+void ComposerCommandEngine::executeSetOutputBuffer(uint64_t display, const Buffer& buffer) {
bool useCache = !buffer.handle;
buffer_handle_t handle = useCache
? nullptr
@@ -200,8 +189,7 @@ void ComposerCommandEngine::executePresentOrValidateDisplay(int64_t display) {
if (mHal->hasCapability(Capability::SKIP_VALIDATE)) {
err = executePresentDisplay(display);
if (!err) {
- mWriter->setPresentOrValidateResult(display,
- command::PresentOrValidate::Result::Presented);
+ mWriter->setPresentOrValidateResult(display, PresentOrValidate::Result::Presented);
return;
}
}
@@ -209,7 +197,7 @@ void ComposerCommandEngine::executePresentOrValidateDisplay(int64_t display) {
// Fallback to validate
err = executeValidateDisplayInternal(display);
if (!err) {
- mWriter->setPresentOrValidateResult(display, command::PresentOrValidate::Result::Validated);
+ mWriter->setPresentOrValidateResult(display, PresentOrValidate::Result::Validated);
}
}
@@ -245,7 +233,7 @@ void ComposerCommandEngine::executeSetLayerCursorPosition(int64_t display, int64
}
void ComposerCommandEngine::executeSetLayerBuffer(int64_t display, int64_t layer,
- const command::Buffer& buffer) {
+ const Buffer& buffer) {
bool useCache = !buffer.handle;
buffer_handle_t handle = useCache
? nullptr
@@ -276,7 +264,7 @@ void ComposerCommandEngine::executeSetLayerSurfaceDamage(int64_t display, int64_
}
void ComposerCommandEngine::executeSetLayerBlendMode(int64_t display, int64_t layer,
- const command::ParcelableBlendMode& blendMode) {
+ const ParcelableBlendMode& blendMode) {
auto err = mHal->setLayerBlendMode(display, layer, blendMode.blendMode);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -294,7 +282,7 @@ void ComposerCommandEngine::executeSetLayerColor(int64_t display, int64_t layer,
}
void ComposerCommandEngine::executeSetLayerComposition(int64_t display, int64_t layer,
- const command::ParcelableComposition& composition) {
+ const ParcelableComposition& composition) {
auto err = mHal->setLayerCompositionType(display, layer, composition.composition);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -303,7 +291,7 @@ void ComposerCommandEngine::executeSetLayerComposition(int64_t display, int64_t
}
void ComposerCommandEngine::executeSetLayerDataspace(int64_t display, int64_t layer,
- const command::ParcelableDataspace& dataspace) {
+ const ParcelableDataspace& dataspace) {
auto err = mHal->setLayerDataspace(display, layer, dataspace.dataspace);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -321,8 +309,8 @@ void ComposerCommandEngine::executeSetLayerDisplayFrame(int64_t display, int64_t
}
void ComposerCommandEngine::executeSetLayerPlaneAlpha(int64_t display, int64_t layer,
- const command::PlaneAlpha& planeAlpha) {
- auto err = mHal->setLayerPlaneAlpha(display, layer, planeAlpha.alpha);
+ const PlaneAlpha& planeAlpha) {
+ auto err = mHal->setLayerPlaneAlpha(display, layer, planeAlpha.alpha);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
mWriter->setError(mCommandIndex, err);
@@ -356,7 +344,7 @@ void ComposerCommandEngine::executeSetLayerSourceCrop(int64_t display, int64_t l
}
void ComposerCommandEngine::executeSetLayerTransform(int64_t display, int64_t layer,
- const command::ParcelableTransform& transform) {
+ const ParcelableTransform& transform) {
auto err = mHal->setLayerTransform(display, layer, transform.transform);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -374,7 +362,7 @@ void ComposerCommandEngine::executeSetLayerVisibleRegion(int64_t display, int64_
}
void ComposerCommandEngine::executeSetLayerZOrder(int64_t display, int64_t layer,
- const command::ZOrder& zOrder) {
+ const ZOrder& zOrder) {
auto err = mHal->setLayerZOrder(display, layer, zOrder.z);
if (err) {
LOG(ERROR) << __func__ << ": err " << err;
@@ -419,8 +407,7 @@ void ComposerCommandEngine::executeSetLayerPerFrameMetadataBlobs(int64_t display
}
void ComposerCommandEngine::executeSetLayerGenericMetadata(int64_t display, int64_t layer,
- const command::GenericMetadata& metadata) {
-
+ const GenericMetadata& metadata) {
auto err =
mHal->setLayerGenericMetadata(display, layer, metadata);
if (err) {
diff --git a/hwc3/ComposerCommandEngine.h b/hwc3/ComposerCommandEngine.h
index ad46889..e55be65 100644
--- a/hwc3/ComposerCommandEngine.h
+++ b/hwc3/ComposerCommandEngine.h
@@ -30,69 +30,67 @@ class ComposerCommandEngine {
: mHal(hal), mResources(resources) {}
bool init();
- int32_t execute(const std::vector<command::CommandPayload>& commands,
- std::vector<command::CommandResultPayload> *result);
+ int32_t execute(const std::vector<DisplayCommand>& commands,
+ std::vector<CommandResultPayload>* result);
void reset() {
mWriter->reset();
}
private:
- void dispatchDisplayCommand(const command::DisplayCommand& displayCommand);
- void dispatchLayerCommand(const command::LayerCommand& displayCommand);
+ void dispatchDisplayCommand(const DisplayCommand& displayCommand);
+ void dispatchLayerCommand(int64_t display, const LayerCommand& displayCommand);
- void executeSetColorTransform(int64_t display, const command::ColorTransformPayload& command);
- void executeSetClientTarget(int64_t display, const command::ClientTarget& command);
- void executeSetOutputBuffer(uint64_t display, const command::Buffer& buffer);
- void executeValidateDisplay(int64_t display);
- void executePresentOrValidateDisplay(int64_t display);
- void executeAcceptDisplayChanges(int64_t display);
- int executePresentDisplay(int64_t display);
+ void executeSetColorTransform(int64_t display, const ColorTransformPayload& command);
+ void executeSetClientTarget(int64_t display, const ClientTarget& command);
+ void executeSetOutputBuffer(uint64_t display, const Buffer& buffer);
+ void executeValidateDisplay(int64_t display);
+ void executePresentOrValidateDisplay(int64_t display);
+ void executeAcceptDisplayChanges(int64_t display);
+ int executePresentDisplay(int64_t display);
- void executeSetLayerCursorPosition(int64_t display, int64_t layer,
- const common::Point& cursorPosition);
- void executeSetLayerBuffer(int64_t display, int64_t layer,
- const command::Buffer& buffer);
- void executeSetLayerSurfaceDamage(int64_t display, int64_t layer,
- const std::vector<std::optional<common::Rect>>& damage);
- void executeSetLayerBlendMode(int64_t display, int64_t layer,
- const command::ParcelableBlendMode& blendMode);
- void executeSetLayerColor(int64_t display, int64_t layer, const Color& color);
- void executeSetLayerComposition(int64_t display, int64_t layer,
- const command::ParcelableComposition& composition);
- void executeSetLayerDataspace(int64_t display, int64_t layer,
- const command::ParcelableDataspace& dataspace);
- void executeSetLayerDisplayFrame(int64_t display, int64_t layer,
- const common::Rect& rect);
- void executeSetLayerPlaneAlpha(int64_t display, int64_t layer,
- const command::PlaneAlpha& planeAlpha);
- void executeSetLayerSidebandStream(int64_t display, int64_t layer,
- const AidlNativeHandle& sidebandStream);
- void executeSetLayerSourceCrop(int64_t display, int64_t layer,
- const common::FRect& sourceCrop);
- void executeSetLayerTransform(int64_t display, int64_t layer,
- const command::ParcelableTransform& transform);
- void executeSetLayerVisibleRegion(int64_t display, int64_t layer,
- const std::vector<std::optional<common::Rect>>& visibleRegion);
- void executeSetLayerZOrder(int64_t display, int64_t layer,
- const command::ZOrder& zOrder);
- void executeSetLayerPerFrameMetadata(int64_t display, int64_t layer,
- const std::vector<std::optional<PerFrameMetadata>>& perFrameMetadata);
- void executeSetLayerFloatColor(int64_t display, int64_t layer,
- const FloatColor& floatColor);
- void executeSetLayerColorTransform(int64_t display, int64_t layer,
- const std::vector<float>& colorTransform);
- void executeSetLayerPerFrameMetadataBlobs(int64_t display, int64_t layer,
- const std::vector<std::optional<PerFrameMetadataBlob>>& perFrameMetadataBlob);
- void executeSetLayerGenericMetadata(int64_t display, int64_t layer,
- const command::GenericMetadata& genericMetadata);
+ void executeSetLayerCursorPosition(int64_t display, int64_t layer,
+ const common::Point& cursorPosition);
+ void executeSetLayerBuffer(int64_t display, int64_t layer, const Buffer& buffer);
+ void executeSetLayerSurfaceDamage(int64_t display, int64_t layer,
+ const std::vector<std::optional<common::Rect>>& damage);
+ void executeSetLayerBlendMode(int64_t display, int64_t layer,
+ const ParcelableBlendMode& blendMode);
+ void executeSetLayerColor(int64_t display, int64_t layer, const Color& color);
+ void executeSetLayerComposition(int64_t display, int64_t layer,
+ const ParcelableComposition& composition);
+ void executeSetLayerDataspace(int64_t display, int64_t layer,
+ const ParcelableDataspace& dataspace);
+ void executeSetLayerDisplayFrame(int64_t display, int64_t layer, const common::Rect& rect);
+ void executeSetLayerPlaneAlpha(int64_t display, int64_t layer, const PlaneAlpha& planeAlpha);
+ void executeSetLayerSidebandStream(int64_t display, int64_t layer,
+ const AidlNativeHandle& sidebandStream);
+ void executeSetLayerSourceCrop(int64_t display, int64_t layer,
+ const common::FRect& sourceCrop);
+ void executeSetLayerTransform(int64_t display, int64_t layer,
+ const ParcelableTransform& transform);
+ void executeSetLayerVisibleRegion(
+ int64_t display, int64_t layer,
+ const std::vector<std::optional<common::Rect>>& visibleRegion);
+ void executeSetLayerZOrder(int64_t display, int64_t layer, const ZOrder& zOrder);
+ void executeSetLayerPerFrameMetadata(
+ int64_t display, int64_t layer,
+ const std::vector<std::optional<PerFrameMetadata>>& perFrameMetadata);
+ void executeSetLayerFloatColor(int64_t display, int64_t layer, const FloatColor& floatColor);
+ void executeSetLayerColorTransform(int64_t display, int64_t layer,
+ const std::vector<float>& colorTransform);
+ void executeSetLayerPerFrameMetadataBlobs(
+ int64_t display, int64_t layer,
+ const std::vector<std::optional<PerFrameMetadataBlob>>& perFrameMetadataBlob);
+ void executeSetLayerGenericMetadata(int64_t display, int64_t layer,
+ const GenericMetadata& genericMetadata);
- int32_t executeValidateDisplayInternal(int64_t display);
+ int32_t executeValidateDisplayInternal(int64_t display);
- IComposerHal* mHal;
- IResourceManager* mResources;
- std::unique_ptr<CommandWriterBase> mWriter;
- int32_t mCommandIndex;
+ IComposerHal* mHal;
+ IResourceManager* mResources;
+ std::unique_ptr<CommandWriterBase> mWriter;
+ int32_t mCommandIndex;
};
} // namespace aidl::android::hardware::graphics::composer3::impl
diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp
index a6a797c..2626a28 100644
--- a/hwc3/impl/HalImpl.cpp
+++ b/hwc3/impl/HalImpl.cpp
@@ -731,9 +731,9 @@ int32_t HalImpl::setLayerFloatColor([[maybe_unused]] int64_t display,
return HWC2_ERROR_UNSUPPORTED;
}
-int32_t HalImpl::setLayerGenericMetadata(
- [[maybe_unused]] int64_t display, [[maybe_unused]] int64_t layer,
- [[maybe_unused]] const command::GenericMetadata& metadata) {
+int32_t HalImpl::setLayerGenericMetadata([[maybe_unused]] int64_t display,
+ [[maybe_unused]] int64_t layer,
+ [[maybe_unused]] const GenericMetadata& metadata) {
return HWC2_ERROR_UNSUPPORTED;
}
diff --git a/hwc3/impl/HalImpl.h b/hwc3/impl/HalImpl.h
index 865b87a..2108241 100644
--- a/hwc3/impl/HalImpl.h
+++ b/hwc3/impl/HalImpl.h
@@ -113,7 +113,7 @@ class HalImpl : public IComposerHal {
const common::Rect& frame) override;
int32_t setLayerFloatColor(int64_t display, int64_t layer, FloatColor color) override;
int32_t setLayerGenericMetadata(int64_t display, int64_t layer,
- const command::GenericMetadata& metadata) override;
+ const GenericMetadata& metadata) override;
int32_t setLayerPerFrameMetadata(int64_t display, int64_t layer,
const std::vector<std::optional<PerFrameMetadata>>& metadata) override;
int32_t setLayerPerFrameMetadataBlobs(int64_t display, int64_t layer,
diff --git a/hwc3/include/IComposerHal.h b/hwc3/include/IComposerHal.h
index 086d11d..87dc41d 100644
--- a/hwc3/include/IComposerHal.h
+++ b/hwc3/include/IComposerHal.h
@@ -20,8 +20,6 @@
* However current patten is the HWC lib does not own buffer resources (HWC lib
* does own the fences).
*/
-#include <cutils/native_handle.h>
-
#include <aidl/android/hardware/common/NativeHandle.h>
#include <aidl/android/hardware/graphics/common/BlendMode.h>
#include <aidl/android/hardware/graphics/common/Dataspace.h>
@@ -30,53 +28,53 @@
#include <aidl/android/hardware/graphics/common/Point.h>
#include <aidl/android/hardware/graphics/common/Rect.h>
#include <aidl/android/hardware/graphics/common/Transform.h>
+#include <aidl/android/hardware/graphics/composer3/Buffer.h>
#include <aidl/android/hardware/graphics/composer3/Capability.h>
+#include <aidl/android/hardware/graphics/composer3/ChangedCompositionTypes.h>
+#include <aidl/android/hardware/graphics/composer3/ClientTarget.h>
#include <aidl/android/hardware/graphics/composer3/ClientTargetProperty.h>
+#include <aidl/android/hardware/graphics/composer3/ClientTargetPropertyWithNits.h>
#include <aidl/android/hardware/graphics/composer3/Color.h>
#include <aidl/android/hardware/graphics/composer3/ColorMode.h>
+#include <aidl/android/hardware/graphics/composer3/ColorTransformPayload.h>
+#include <aidl/android/hardware/graphics/composer3/CommandError.h>
+#include <aidl/android/hardware/graphics/composer3/CommandResultPayload.h>
#include <aidl/android/hardware/graphics/composer3/Composition.h>
#include <aidl/android/hardware/graphics/composer3/ContentType.h>
-#include <aidl/android/hardware/graphics/composer3/command/Buffer.h>
-#include <aidl/android/hardware/graphics/composer3/command/ChangedCompositionTypes.h>
-#include <aidl/android/hardware/graphics/composer3/command/ClientTarget.h>
-#include <aidl/android/hardware/graphics/composer3/command/ClientTargetPropertyWithNits.h>
-#include <aidl/android/hardware/graphics/composer3/command/ColorTransformPayload.h>
-#include <aidl/android/hardware/graphics/composer3/command/CommandPayload.h>
-#include <aidl/android/hardware/graphics/composer3/command/CommandResultPayload.h>
-#include <aidl/android/hardware/graphics/composer3/command/DisplayCommand.h>
-#include <aidl/android/hardware/graphics/composer3/command/DisplayRequest.h>
-#include <aidl/android/hardware/graphics/composer3/command/Error.h>
-#include <aidl/android/hardware/graphics/composer3/command/GenericMetadata.h>
-#include <aidl/android/hardware/graphics/composer3/command/LayerCommand.h>
-#include <aidl/android/hardware/graphics/composer3/command/ParcelableBlendMode.h>
-#include <aidl/android/hardware/graphics/composer3/command/ParcelableComposition.h>
-#include <aidl/android/hardware/graphics/composer3/command/ParcelableDataspace.h>
-#include <aidl/android/hardware/graphics/composer3/command/ParcelableTransform.h>
-#include <aidl/android/hardware/graphics/composer3/command/PlaneAlpha.h>
-#include <aidl/android/hardware/graphics/composer3/command/PresentFence.h>
-#include <aidl/android/hardware/graphics/composer3/command/PresentOrValidate.h>
-#include <aidl/android/hardware/graphics/composer3/command/ReleaseFences.h>
-#include <aidl/android/hardware/graphics/composer3/command/WhitePointNits.h>
-#include <aidl/android/hardware/graphics/composer3/command/ZOrder.h>
#include <aidl/android/hardware/graphics/composer3/DisplayAttribute.h>
#include <aidl/android/hardware/graphics/composer3/DisplayCapability.h>
+#include <aidl/android/hardware/graphics/composer3/DisplayCommand.h>
#include <aidl/android/hardware/graphics/composer3/DisplayConnectionType.h>
#include <aidl/android/hardware/graphics/composer3/DisplayContentSample.h>
#include <aidl/android/hardware/graphics/composer3/DisplayContentSamplingAttributes.h>
#include <aidl/android/hardware/graphics/composer3/DisplayIdentification.h>
+#include <aidl/android/hardware/graphics/composer3/DisplayRequest.h>
#include <aidl/android/hardware/graphics/composer3/FloatColor.h>
#include <aidl/android/hardware/graphics/composer3/FormatColorComponent.h>
+#include <aidl/android/hardware/graphics/composer3/GenericMetadata.h>
#include <aidl/android/hardware/graphics/composer3/HdrCapabilities.h>
+#include <aidl/android/hardware/graphics/composer3/LayerCommand.h>
#include <aidl/android/hardware/graphics/composer3/LayerGenericMetadataKey.h>
+#include <aidl/android/hardware/graphics/composer3/ParcelableBlendMode.h>
+#include <aidl/android/hardware/graphics/composer3/ParcelableComposition.h>
+#include <aidl/android/hardware/graphics/composer3/ParcelableDataspace.h>
+#include <aidl/android/hardware/graphics/composer3/ParcelableTransform.h>
#include <aidl/android/hardware/graphics/composer3/PerFrameMetadata.h>
#include <aidl/android/hardware/graphics/composer3/PerFrameMetadataBlob.h>
#include <aidl/android/hardware/graphics/composer3/PerFrameMetadataKey.h>
+#include <aidl/android/hardware/graphics/composer3/PlaneAlpha.h>
#include <aidl/android/hardware/graphics/composer3/PowerMode.h>
+#include <aidl/android/hardware/graphics/composer3/PresentFence.h>
+#include <aidl/android/hardware/graphics/composer3/PresentOrValidate.h>
#include <aidl/android/hardware/graphics/composer3/ReadbackBufferAttributes.h>
+#include <aidl/android/hardware/graphics/composer3/ReleaseFences.h>
#include <aidl/android/hardware/graphics/composer3/RenderIntent.h>
+#include <aidl/android/hardware/graphics/composer3/VirtualDisplay.h>
#include <aidl/android/hardware/graphics/composer3/VsyncPeriodChangeConstraints.h>
#include <aidl/android/hardware/graphics/composer3/VsyncPeriodChangeTimeline.h>
-#include <aidl/android/hardware/graphics/composer3/VirtualDisplay.h>
+#include <aidl/android/hardware/graphics/composer3/WhitePointNits.h>
+#include <aidl/android/hardware/graphics/composer3/ZOrder.h>
+#include <cutils/native_handle.h>
// avoid naming conflict
using AidlPixelFormat = aidl::android::hardware::graphics::common::PixelFormat;
@@ -181,7 +179,7 @@ class IComposerHal {
const common::Rect& frame) = 0;
virtual int32_t setLayerFloatColor(int64_t display, int64_t layer, FloatColor color) = 0;
virtual int32_t setLayerGenericMetadata(int64_t display, int64_t layer,
- const command::GenericMetadata& metadata) = 0;
+ const GenericMetadata& metadata) = 0;
virtual int32_t setLayerPerFrameMetadata(int64_t display, int64_t layer,
const std::vector<std::optional<PerFrameMetadata>>& metadata) = 0;
virtual int32_t setLayerPerFrameMetadataBlobs(int64_t display, int64_t layer,