Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c06b365 authored by Peiyong Lin's avatar Peiyong Lin Committed by android-build-merger
Browse files

Merge "SF: Clean up name lookup in ComposerHal.{h,cpp}" into pi-dev

am: fb244816

Change-Id: I8760f6263161fdb5c9cad8b7bc7d0d5119a5326e
parents 229cf197 fb244816
Loading
Loading
Loading
Loading
+16 −25
Original line number Diff line number Diff line
@@ -32,11 +32,6 @@ namespace android {
using hardware::Return;
using hardware::hidl_vec;
using hardware::hidl_handle;
using namespace hardware::graphics::common;
using namespace hardware::graphics::composer;
using PerFrameMetadata = hardware::graphics::composer::V2_2::IComposerClient::PerFrameMetadata;
using PerFrameMetadataKey =
        hardware::graphics::composer::V2_2::IComposerClient::PerFrameMetadataKey;

namespace Hwc2 {

@@ -126,7 +121,7 @@ Composer::CommandWriter::~CommandWriter()
void Composer::CommandWriter::setLayerInfo(uint32_t type, uint32_t appId)
{
    constexpr uint16_t kSetLayerInfoLength = 2;
    beginCommand(static_cast<hardware::graphics::composer::V2_1::IComposerClient::Command>(
    beginCommand(static_cast<V2_1::IComposerClient::Command>(
                         IVrComposerClient::VrCommand::SET_LAYER_INFO),
                 kSetLayerInfoLength);
    write(type);
@@ -138,7 +133,7 @@ void Composer::CommandWriter::setClientTargetMetadata(
        const IVrComposerClient::BufferMetadata& metadata)
{
    constexpr uint16_t kSetClientTargetMetadataLength = 7;
    beginCommand(static_cast<hardware::graphics::composer::V2_1::IComposerClient::Command>(
    beginCommand(static_cast<V2_1::IComposerClient::Command>(
                         IVrComposerClient::VrCommand::SET_CLIENT_TARGET_METADATA),
                 kSetClientTargetMetadataLength);
    writeBufferMetadata(metadata);
@@ -149,7 +144,7 @@ void Composer::CommandWriter::setLayerBufferMetadata(
        const IVrComposerClient::BufferMetadata& metadata)
{
    constexpr uint16_t kSetLayerBufferMetadataLength = 7;
    beginCommand(static_cast<hardware::graphics::composer::V2_1::IComposerClient::Command>(
    beginCommand(static_cast<V2_1::IComposerClient::Command>(
                         IVrComposerClient::VrCommand::SET_LAYER_BUFFER_METADATA),
                 kSetLayerBufferMetadataLength);
    writeBufferMetadata(metadata);
@@ -171,7 +166,7 @@ Composer::Composer(const std::string& serviceName)
    : mWriter(kWriterInitialSize),
      mIsUsingVrComposer(serviceName == std::string("vr"))
{
    mComposer = IComposer::getService(serviceName);
    mComposer = V2_1::IComposer::getService(serviceName);

    if (mComposer == nullptr) {
        LOG_ALWAYS_FATAL("failed to get hwcomposer service");
@@ -189,7 +184,7 @@ Composer::Composer(const std::string& serviceName)
    }

    // 2.2 support is optional
    sp<V2_2::IComposer> composer_2_2 = V2_2::IComposer::castFrom(mComposer);
    sp<IComposer> composer_2_2 = IComposer::castFrom(mComposer);
    if (composer_2_2 != nullptr) {
        mClient_2_2 = IComposerClient::castFrom(mClient);
        LOG_ALWAYS_FATAL_IF(mClient_2_2 == nullptr, "IComposer 2.2 did not return IComposerClient 2.2");
@@ -271,7 +266,7 @@ Error Composer::createVirtualDisplay(uint32_t width, uint32_t height,
                });
    } else {
        mClient->createVirtualDisplay(width, height,
                static_cast<V1_0::PixelFormat>(*format), bufferSlotCount,
                static_cast<types::V1_0::PixelFormat>(*format), bufferSlotCount,
                [&](const auto& tmpError, const auto& tmpDisplay,
                    const auto& tmpFormat) {
                    error = tmpError;
@@ -368,7 +363,7 @@ Error Composer::getColorModes(Display display,
                    if (error != Error::NONE) {
                        return;
                    }
                    for (V1_0::ColorMode colorMode : tmpModes) {
                    for (types::V1_0::ColorMode colorMode : tmpModes) {
                        outModes->push_back(static_cast<ColorMode>(colorMode));
                    }
                });
@@ -533,7 +528,7 @@ Error Composer::setClientTarget(Display display, uint32_t slot,
            .height = target->getHeight(),
            .stride = target->getStride(),
            .layerCount = target->getLayerCount(),
            .format = static_cast<V1_0::PixelFormat>(target->getPixelFormat()),
            .format = static_cast<types::V1_0::PixelFormat>(target->getPixelFormat()),
            .usage = target->getUsage(),
        };
        mWriter.setClientTargetMetadata(metadata);
@@ -556,7 +551,7 @@ Error Composer::setColorMode(Display display, ColorMode mode,
        ret = mClient_2_2->setColorMode_2_2(display, mode, renderIntent);
    } else {
        ret = mClient->setColorMode(display,
                static_cast<V1_0::ColorMode>(mode));
                static_cast<types::V1_0::ColorMode>(mode));
    }
    return unwrapRet(ret);
}
@@ -577,15 +572,12 @@ Error Composer::setOutputBuffer(Display display, const native_handle_t* buffer,
    return Error::NONE;
}

Error Composer::setPowerMode(Display display, IComposerClient::PowerMode mode)
{
    hardware::Return<Error> ret(Error::UNSUPPORTED);
Error Composer::setPowerMode(Display display, IComposerClient::PowerMode mode) {
    Return<Error> ret(Error::UNSUPPORTED);
    if (mClient_2_2) {
        ret = mClient_2_2->setPowerMode_2_2(display, mode);
    } else if (mode != IComposerClient::PowerMode::ON_SUSPEND) {
        ret = mClient->setPowerMode(display,
                                    static_cast<hardware::graphics::composer::V2_1::
                                                        IComposerClient::PowerMode>(mode));
        ret = mClient->setPowerMode(display, static_cast<V2_1::IComposerClient::PowerMode>(mode));
    }

    return unwrapRet(ret);
@@ -663,7 +655,7 @@ Error Composer::setLayerBuffer(Display display, Layer layer,
            .height = buffer->getHeight(),
            .stride = buffer->getStride(),
            .layerCount = buffer->getLayerCount(),
            .format = static_cast<V1_0::PixelFormat>(buffer->getPixelFormat()),
            .format = static_cast<types::V1_0::PixelFormat>(buffer->getPixelFormat()),
            .usage = buffer->getUsage(),
        };
        mWriter.setLayerBufferMetadata(metadata);
@@ -731,7 +723,8 @@ Error Composer::setLayerHdrMetadata(Display display, Layer layer, const HdrMetad
    mWriter.selectDisplay(display);
    mWriter.selectLayer(layer);

    std::vector<PerFrameMetadata> composerMetadata;
    std::vector<IComposerClient::PerFrameMetadata> composerMetadata;
    using PerFrameMetadataKey = IComposerClient::PerFrameMetadataKey;
    if (metadata.validTypes & HdrMetadata::SMPTE2086) {
        composerMetadata
                .insert(composerMetadata.end(),
@@ -1007,9 +1000,7 @@ Error CommandReader::parse()
    uint16_t length = 0;

    while (!isEmpty()) {
        auto command_2_1 =
                reinterpret_cast<hardware::graphics::composer::V2_1::IComposerClient::Command*>(
                        &command);
        auto command_2_1 = reinterpret_cast<V2_1::IComposerClient::Command*>(&command);
        if (!beginCommand(command_2_1, &length)) {
            break;
        }
+29 −28
Original line number Diff line number Diff line
@@ -37,32 +37,32 @@ namespace android {

namespace Hwc2 {

using android::frameworks::vr::composer::V1_0::IVrComposerClient;

using android::hardware::graphics::common::V1_0::ColorTransform;
using android::hardware::graphics::common::V1_0::Hdr;
using android::hardware::graphics::common::V1_0::Transform;
using android::hardware::graphics::common::V1_1::ColorMode;
using android::hardware::graphics::common::V1_1::Dataspace;
using android::hardware::graphics::common::V1_1::PixelFormat;
using android::hardware::graphics::common::V1_1::RenderIntent;

using android::hardware::graphics::composer::V2_1::Config;
using android::hardware::graphics::composer::V2_1::Display;
using android::hardware::graphics::composer::V2_1::Error;
using android::hardware::graphics::composer::V2_1::IComposer;
using android::hardware::graphics::composer::V2_1::IComposerCallback;
using android::hardware::graphics::composer::V2_1::Layer;
using android::hardware::graphics::composer::V2_2::IComposerClient;

using android::hardware::graphics::composer::V2_2::CommandReaderBase;
using android::hardware::graphics::composer::V2_2::CommandWriterBase;

using android::hardware::kSynchronizedReadWrite;
using android::hardware::MessageQueue;
using android::hardware::MQDescriptorSync;
using android::hardware::hidl_vec;
using android::hardware::hidl_handle;
using frameworks::vr::composer::V1_0::IVrComposerClient;

namespace types = hardware::graphics::common;

namespace V2_1 = hardware::graphics::composer::V2_1;
namespace V2_2 = hardware::graphics::composer::V2_2;

using types::V1_0::ColorTransform;
using types::V1_0::Hdr;
using types::V1_0::Transform;

using types::V1_1::ColorMode;
using types::V1_1::Dataspace;
using types::V1_1::PixelFormat;
using types::V1_1::RenderIntent;

using V2_1::Config;
using V2_1::Display;
using V2_1::Error;
using V2_1::IComposerCallback;
using V2_1::Layer;

using V2_2::CommandReaderBase;
using V2_2::CommandWriterBase;
using V2_2::IComposer;
using V2_2::IComposerClient;

class Composer {
public:
@@ -396,8 +396,9 @@ private:
    // this function to execute the command queue.
    Error execute();

    sp<IComposer> mComposer;
    sp<hardware::graphics::composer::V2_1::IComposerClient> mClient;
    sp<V2_1::IComposer> mComposer;

    sp<V2_1::IComposerClient> mClient;
    sp<IComposerClient> mClient_2_2;

    // 64KiB minus a small space for metadata such as read/write pointers