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

Commit 563030b4 authored by Marissa Wall's avatar Marissa Wall
Browse files

test-hwc2: present display

Test: Add "#define HAVE_NO_SURFACE_FLINGER" to
      frameworks/native/libs/gui/BufferQueueCore.cpp.
      Recompile and flash.
      Run "mm" in frameworks/native/services/surfaceflinger/tests/hwc2.
      Push test-hwc2 to device.
      Run "adb root && adb shell stop".
      Run test case. Ex: "./test-hwc2"

Change-Id: I845320afdf635d1716310d1183bcb10515615517
parent f18cfb0a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ LOCAL_SHARED_LIBRARIES := \
    libGLESv2 \
    libui \
    libgui \
    liblog
    liblog \
    libsync
LOCAL_STATIC_LIBRARIES := \
    libbase \
    libadf \
+633 −35

File changed.

Preview size limit exceeded, changes collapsed.

+35 −11
Original line number Diff line number Diff line
@@ -18,17 +18,41 @@

#include "Hwc2TestLayer.h"

Hwc2TestLayer::Hwc2TestLayer(Hwc2TestCoverage coverage, const Area& displayArea)
    : mBlendMode(coverage),
      mBufferArea(coverage, displayArea),
      mColor(coverage),
      mComposition(coverage),
      mDataspace(coverage),
      mDisplayFrame(coverage, displayArea),
      mPlaneAlpha(coverage),
      mSourceCrop(coverage),
      mSurfaceDamage(coverage),
      mTransform(coverage)
Hwc2TestCoverage getCoverage(Hwc2TestPropertyName property,
        Hwc2TestCoverage coverage, const std::unordered_map<Hwc2TestPropertyName,
        Hwc2TestCoverage>& coverageExceptions) {
    auto exception = coverageExceptions.find(property);
    return (exception != coverageExceptions.end())? exception->second : coverage;
}

Hwc2TestLayer::Hwc2TestLayer(Hwc2TestCoverage coverage,
        const Area& displayArea)
    : Hwc2TestLayer(coverage, displayArea,
            std::unordered_map<Hwc2TestPropertyName, Hwc2TestCoverage>()) { }

Hwc2TestLayer::Hwc2TestLayer(Hwc2TestCoverage coverage,
        const Area& displayArea, const std::unordered_map<Hwc2TestPropertyName,
        Hwc2TestCoverage>& coverageExceptions)
    : mBlendMode(getCoverage(Hwc2TestPropertyName::BlendMode, coverage,
           coverageExceptions)),
      mBufferArea(getCoverage(Hwc2TestPropertyName::BufferArea, coverage,
           coverageExceptions), displayArea),
      mColor(getCoverage(Hwc2TestPropertyName::Color, coverage,
           coverageExceptions)),
      mComposition(getCoverage(Hwc2TestPropertyName::Composition, coverage,
           coverageExceptions)),
      mDataspace(getCoverage(Hwc2TestPropertyName::Dataspace, coverage,
           coverageExceptions)),
      mDisplayFrame(getCoverage(Hwc2TestPropertyName::DisplayFrame, coverage,
           coverageExceptions), displayArea),
      mPlaneAlpha(getCoverage(Hwc2TestPropertyName::PlaneAlpha, coverage,
           coverageExceptions)),
      mSourceCrop(getCoverage(Hwc2TestPropertyName::SourceCrop, coverage,
           coverageExceptions)),
      mSurfaceDamage(getCoverage(Hwc2TestPropertyName::SurfaceDamage, coverage,
           coverageExceptions)),
      mTransform(getCoverage(Hwc2TestPropertyName::Transform, coverage,
           coverageExceptions))
{
    mBufferArea.setDependent(&mBuffer);
    mBufferArea.setDependent(&mSourceCrop);
+5 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#define _HWC2_TEST_LAYER_H

#include <android-base/unique_fd.h>
#include <unordered_map>

#include "Hwc2TestBuffer.h"
#include "Hwc2TestProperties.h"
@@ -32,6 +33,10 @@ class Hwc2TestLayer {
public:
    Hwc2TestLayer(Hwc2TestCoverage coverage, const Area& displayArea);

    Hwc2TestLayer(Hwc2TestCoverage coverage, const Area& displayArea,
            const std::unordered_map<Hwc2TestPropertyName,
            Hwc2TestCoverage>& coverage_exceptions);

    std::string dump() const;

    int getBuffer(buffer_handle_t* outHandle,
+8 −1
Original line number Diff line number Diff line
@@ -20,12 +20,19 @@

Hwc2TestLayers::Hwc2TestLayers(const std::vector<hwc2_layer_t>& layers,
        Hwc2TestCoverage coverage, const Area& displayArea)
    : Hwc2TestLayers(layers, coverage, displayArea,
            std::unordered_map<Hwc2TestPropertyName, Hwc2TestCoverage>()) { }

Hwc2TestLayers::Hwc2TestLayers(const std::vector<hwc2_layer_t>& layers,
        Hwc2TestCoverage coverage, const Area& displayArea,
        const std::unordered_map<Hwc2TestPropertyName,
        Hwc2TestCoverage>& coverageExceptions)
    : mDisplayArea(displayArea)
{
    for (auto layer : layers) {
        mTestLayers.emplace(std::piecewise_construct,
                std::forward_as_tuple(layer),
                std::forward_as_tuple(coverage, displayArea));
                std::forward_as_tuple(coverage, displayArea, coverageExceptions));
    }

    /* Iterate over the layers in order and assign z orders in the same order.
Loading