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

Unverified Commit 2a6684e3 authored by Michael Bestas's avatar Michael Bestas
Browse files

Revert "Partial revert "Remove mapper from composer2.1 VTS""

This reverts commit 416b0c30.

Reason for revert: Breaks tensor Pixel and likely more.

Change-Id: I7275ab2fac5349467b619a37bbf2838033d9331a
parent 5143e924
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -30,20 +30,15 @@ cc_library {
    vendor_available: true,
    shared_libs: [
        "android.hardware.graphics.composer@2.1",
        "android.hardware.graphics.mapper@2.0",
        "android.hardware.graphics.mapper@3.0",
        "android.hardware.graphics.mapper@4.0",
        "libcutils",
        "libhardware", // TODO remove hwcomposer2.h dependency
        "libhidlbase",
        "liblog",
        "libui",
        "libutils",
    ],
    export_shared_lib_headers: [
        "android.hardware.graphics.composer@2.1",
        "android.hardware.graphics.mapper@2.0",
        "android.hardware.graphics.mapper@3.0",
        "android.hardware.graphics.mapper@4.0",
        "libhardware",
        "libhidlbase",
        "liblog",
+11 −56
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@

#include "composer-resources/2.1/ComposerResources.h"

#include <ui/GraphicBufferMapper.h>

namespace android {
namespace hardware {
namespace graphics {
@@ -25,24 +27,11 @@ namespace composer {
namespace V2_1 {
namespace hal {

bool ComposerHandleImporter::init() {
    mMapper4 = mapper::V4_0::IMapper::getService();
    if (mMapper4) {
        return true;
    }
    ALOGI_IF(!mMapper4, "failed to get mapper 4.0 service, falling back to mapper 3.0");
ComposerHandleImporter::ComposerHandleImporter() : mMapper{GraphicBufferMapper::get()} {}

    mMapper3 = mapper::V3_0::IMapper::getService();
    if (mMapper3) {
bool ComposerHandleImporter::init() {
    return true;
}
    ALOGI_IF(!mMapper3, "failed to get mapper 3.0 service, falling back to mapper 2.0");

    mMapper2 = mapper::V2_0::IMapper::getService();
    ALOGE_IF(!mMapper2, "failed to get mapper 2.0 service");

    return mMapper2 != nullptr;
}

Error ComposerHandleImporter::importBuffer(const native_handle_t* rawHandle,
                                           const native_handle_t** outBufferHandle) {
@@ -51,51 +40,17 @@ Error ComposerHandleImporter::importBuffer(const native_handle_t* rawHandle,
        return Error::NONE;
    }

    const native_handle_t* bufferHandle;
    if (mMapper2) {
        mapper::V2_0::Error error;
        mMapper2->importBuffer(rawHandle, [&](const auto& tmpError, const auto& tmpBufferHandle) {
            error = tmpError;
            bufferHandle = static_cast<const native_handle_t*>(tmpBufferHandle);
        });
        if (error != mapper::V2_0::Error::NONE) {
            return Error::NO_RESOURCES;
        }
    }
    if (mMapper3) {
        mapper::V3_0::Error error;
        mMapper3->importBuffer(rawHandle, [&](const auto& tmpError, const auto& tmpBufferHandle) {
            error = tmpError;
            bufferHandle = static_cast<const native_handle_t*>(tmpBufferHandle);
        });
        if (error != mapper::V3_0::Error::NONE) {
            return Error::NO_RESOURCES;
        }
    }
    if (mMapper4) {
        mapper::V4_0::Error error;
        mMapper4->importBuffer(rawHandle, [&](const auto& tmpError, const auto& tmpBufferHandle) {
            error = tmpError;
            bufferHandle = static_cast<const native_handle_t*>(tmpBufferHandle);
        });
        if (error != mapper::V4_0::Error::NONE) {
    status_t status = mMapper.importBufferNoValidate(rawHandle, outBufferHandle);
    if (status == STATUS_OK) {
        return Error::NONE;
    } else {
        return Error::NO_RESOURCES;
    }
}

    *outBufferHandle = bufferHandle;
    return Error::NONE;
}

void ComposerHandleImporter::freeBuffer(const native_handle_t* bufferHandle) {
    if (bufferHandle) {
        if (mMapper2) {
            mMapper2->freeBuffer(static_cast<void*>(const_cast<native_handle_t*>(bufferHandle)));
        } else if (mMapper3) {
            mMapper3->freeBuffer(static_cast<void*>(const_cast<native_handle_t*>(bufferHandle)));
        } else if (mMapper4) {
            mMapper4->freeBuffer(static_cast<void*>(const_cast<native_handle_t*>(bufferHandle)));
        }
        mMapper.freeBuffer(bufferHandle);
    }
}

+3 −6
Original line number Diff line number Diff line
@@ -27,12 +27,10 @@

#include <android/hardware/graphics/composer/2.1/types.h>

#include <android/hardware/graphics/mapper/2.0/IMapper.h>
#include <android/hardware/graphics/mapper/3.0/IMapper.h>
#include <android/hardware/graphics/mapper/4.0/IMapper.h>
#include <log/log.h>

namespace android {
class GraphicBufferMapper;
namespace hardware {
namespace graphics {
namespace composer {
@@ -42,6 +40,7 @@ namespace hal {
// wrapper for IMapper to import buffers and sideband streams
class ComposerHandleImporter {
  public:
    ComposerHandleImporter();
    bool init();

    Error importBuffer(const native_handle_t* rawHandle, const native_handle_t** outBufferHandle);
@@ -50,9 +49,7 @@ class ComposerHandleImporter {
    void freeStream(const native_handle_t* streamHandle);

  private:
    sp<mapper::V2_0::IMapper> mMapper2;
    sp<mapper::V3_0::IMapper> mMapper3;
    sp<mapper::V4_0::IMapper> mMapper4;
    GraphicBufferMapper& mMapper;
};

class ComposerHandleCache {