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

Commit da44e8fd authored by Alec Mouri's avatar Alec Mouri Committed by Android (Google) Code Review
Browse files

Merge "Remove stride from VTS classes"

parents cd1ec4f7 3e037cf6
Loading
Loading
Loading
Loading
+20 −15
Original line number Original line Diff line number Diff line
@@ -177,15 +177,15 @@ bool ReadbackHelper::readbackSupported(const common::PixelFormat& pixelFormat,
    return true;
    return true;
}
}


void ReadbackHelper::compareColorBuffers(std::vector<Color>& expectedColors, void* bufferData,
void ReadbackHelper::compareColorBuffers(const std::vector<Color>& expectedColors, void* bufferData,
                                         const int32_t stride, const uint32_t width,
                                         const uint32_t stride, const uint32_t width,
                                         const uint32_t height, common::PixelFormat pixelFormat) {
                                         const uint32_t height, common::PixelFormat pixelFormat) {
    const int32_t bytesPerPixel = ReadbackHelper::GetBytesPerPixel(pixelFormat);
    const int32_t bytesPerPixel = ReadbackHelper::GetBytesPerPixel(pixelFormat);
    ASSERT_NE(-1, bytesPerPixel);
    ASSERT_NE(-1, bytesPerPixel);
    for (int row = 0; row < height; row++) {
    for (int row = 0; row < height; row++) {
        for (int col = 0; col < width; col++) {
        for (int col = 0; col < width; col++) {
            auto pixel = row * static_cast<int32_t>(width) + col;
            auto pixel = row * static_cast<int32_t>(width) + col;
            int offset = (row * stride + col) * bytesPerPixel;
            int offset = (row * static_cast<int32_t>(stride) + col) * bytesPerPixel;
            uint8_t* pixelColor = (uint8_t*)bufferData + offset;
            uint8_t* pixelColor = (uint8_t*)bufferData + offset;
            const Color expectedColor = expectedColors[static_cast<size_t>(pixel)];
            const Color expectedColor = expectedColors[static_cast<size_t>(pixel)];
            ASSERT_EQ(std::round(255.0f * expectedColor.r), pixelColor[0]);
            ASSERT_EQ(std::round(255.0f * expectedColor.r), pixelColor[0]);
@@ -239,16 +239,19 @@ void ReadbackBuffer::checkReadbackBuffer(std::vector<Color> expectedColors) {
    ndk::ScopedFileDescriptor fenceHandle;
    ndk::ScopedFileDescriptor fenceHandle;
    EXPECT_TRUE(mComposerClient->getReadbackBufferFence(mDisplay, &fenceHandle).isOk());
    EXPECT_TRUE(mComposerClient->getReadbackBufferFence(mDisplay, &fenceHandle).isOk());


    int outBytesPerPixel;
    int bytesPerPixel = -1;
    int outBytesPerStride;
    int bytesPerStride = -1;
    void* bufData = nullptr;
    void* bufData = nullptr;


    auto status = mGraphicBuffer->lockAsync(mUsage, mAccessRegion, &bufData, dup(fenceHandle.get()),
    auto status = mGraphicBuffer->lockAsync(mUsage, mAccessRegion, &bufData, dup(fenceHandle.get()),
                                            &outBytesPerPixel, &outBytesPerStride);
                                            &bytesPerPixel, &bytesPerStride);
    EXPECT_EQ(::android::OK, status);
    EXPECT_EQ(::android::OK, status);
    ASSERT_TRUE(mPixelFormat == PixelFormat::RGB_888 || mPixelFormat == PixelFormat::RGBA_8888);
    ASSERT_TRUE(mPixelFormat == PixelFormat::RGB_888 || mPixelFormat == PixelFormat::RGBA_8888);
    ReadbackHelper::compareColorBuffers(expectedColors, bufData, static_cast<int32_t>(mStride),
    const uint32_t stride = (bytesPerPixel > 0 && bytesPerStride > 0)
                                        mWidth, mHeight, mPixelFormat);
                                    ? static_cast<uint32_t>(bytesPerStride / bytesPerPixel)
                                    : mGraphicBuffer->getStride();
    ReadbackHelper::compareColorBuffers(expectedColors, bufData, stride, mWidth, mHeight,
                                        mPixelFormat);
    status = mGraphicBuffer->unlock();
    status = mGraphicBuffer->unlock();
    EXPECT_EQ(::android::OK, status);
    EXPECT_EQ(::android::OK, status);
}
}
@@ -304,10 +307,7 @@ LayerSettings TestBufferLayer::toRenderEngineLayerSettings() {
    LayerSettings layerSettings = TestLayer::toRenderEngineLayerSettings();
    LayerSettings layerSettings = TestLayer::toRenderEngineLayerSettings();
    layerSettings.source.buffer.buffer =
    layerSettings.source.buffer.buffer =
            std::make_shared<::android::renderengine::impl::ExternalTexture>(
            std::make_shared<::android::renderengine::impl::ExternalTexture>(
                    ::android::sp<::android::GraphicBuffer>::make(
                    mGraphicBuffer, mRenderEngine.getInternalRenderEngine(),
                            mGraphicBuffer->handle, ::android::GraphicBuffer::CLONE_HANDLE, mWidth,
                            mHeight, static_cast<int32_t>(mPixelFormat), 1, mUsage, mStride),
                    mRenderEngine.getInternalRenderEngine(),
                    ::android::renderengine::impl::ExternalTexture::Usage::READABLE);
                    ::android::renderengine::impl::ExternalTexture::Usage::READABLE);


    layerSettings.source.buffer.usePremultipliedAlpha = mBlendMode == BlendMode::PREMULTIPLIED;
    layerSettings.source.buffer.usePremultipliedAlpha = mBlendMode == BlendMode::PREMULTIPLIED;
@@ -318,7 +318,7 @@ LayerSettings TestBufferLayer::toRenderEngineLayerSettings() {
    const float translateY = mSourceCrop.top / (static_cast<float>(mHeight));
    const float translateY = mSourceCrop.top / (static_cast<float>(mHeight));


    layerSettings.source.buffer.textureTransform =
    layerSettings.source.buffer.textureTransform =
            ::android::mat4::translate(::android::vec4(translateX, translateY, 0, 1)) *
            ::android::mat4::translate(::android::vec4(translateX, translateY, 0, 1.0)) *
            ::android::mat4::scale(::android::vec4(scaleX, scaleY, 1.0, 1.0));
            ::android::mat4::scale(::android::vec4(scaleX, scaleY, 1.0, 1.0));


    return layerSettings;
    return layerSettings;
@@ -326,9 +326,14 @@ LayerSettings TestBufferLayer::toRenderEngineLayerSettings() {


void TestBufferLayer::fillBuffer(std::vector<Color>& expectedColors) {
void TestBufferLayer::fillBuffer(std::vector<Color>& expectedColors) {
    void* bufData;
    void* bufData;
    auto status = mGraphicBuffer->lock(mUsage, &bufData);
    int32_t bytesPerPixel = -1;
    int32_t bytesPerStride = -1;
    auto status = mGraphicBuffer->lock(mUsage, &bufData, &bytesPerPixel, &bytesPerStride);
    const uint32_t stride = (bytesPerPixel > 0 && bytesPerStride > 0)
                                    ? static_cast<uint32_t>(bytesPerStride / bytesPerPixel)
                                    : mGraphicBuffer->getStride();
    EXPECT_EQ(::android::OK, status);
    EXPECT_EQ(::android::OK, status);
    ASSERT_NO_FATAL_FAILURE(ReadbackHelper::fillBuffer(mWidth, mHeight, mStride, bufData,
    ASSERT_NO_FATAL_FAILURE(ReadbackHelper::fillBuffer(mWidth, mHeight, stride, bufData,
                                                       mPixelFormat, expectedColors));
                                                       mPixelFormat, expectedColors));
    EXPECT_EQ(::android::OK, mGraphicBuffer->unlock());
    EXPECT_EQ(::android::OK, mGraphicBuffer->unlock());
}
}
+11 −6
Original line number Original line Diff line number Diff line
@@ -77,13 +77,18 @@ void TestRenderEngine::drawLayers() {
    }
    }
}
}


void TestRenderEngine::checkColorBuffer(std::vector<Color>& expectedColors) {
void TestRenderEngine::checkColorBuffer(const std::vector<Color>& expectedColors) {
    void* bufferData;
    void* bufferData;
    ASSERT_EQ(0,
    int32_t bytesPerPixel = -1;
              mGraphicBuffer->lock(static_cast<uint32_t>(mGraphicBuffer->getUsage()), &bufferData));
    int32_t bytesPerStride = -1;
    ReadbackHelper::compareColorBuffers(
    ASSERT_EQ(0, mGraphicBuffer->lock(static_cast<uint32_t>(mGraphicBuffer->getUsage()),
            expectedColors, bufferData, static_cast<int32_t>(mGraphicBuffer->getStride()),
                                      &bufferData, &bytesPerPixel, &bytesPerStride));
            mGraphicBuffer->getWidth(), mGraphicBuffer->getHeight(), mFormat);
    const uint32_t stride = (bytesPerPixel > 0 && bytesPerStride > 0)
                                    ? static_cast<uint32_t>(bytesPerStride / bytesPerPixel)
                                    : mGraphicBuffer->getStride();
    ReadbackHelper::compareColorBuffers(expectedColors, bufferData, stride,
                                        mGraphicBuffer->getWidth(), mGraphicBuffer->getHeight(),
                                        mFormat);
    ASSERT_EQ(::android::OK, mGraphicBuffer->unlock());
    ASSERT_EQ(::android::OK, mGraphicBuffer->unlock());
}
}


+2 −4
Original line number Original line Diff line number Diff line
@@ -161,7 +161,6 @@ class TestBufferLayer : public TestLayer {
    uint32_t mLayerCount;
    uint32_t mLayerCount;
    PixelFormat mPixelFormat;
    PixelFormat mPixelFormat;
    uint32_t mUsage;
    uint32_t mUsage;
    uint32_t mStride;
    ::android::Rect mAccessRegion;
    ::android::Rect mAccessRegion;
};
};


@@ -189,8 +188,8 @@ class ReadbackHelper {
    static const std::vector<ColorMode> colorModes;
    static const std::vector<ColorMode> colorModes;
    static const std::vector<Dataspace> dataspaces;
    static const std::vector<Dataspace> dataspaces;


    static void compareColorBuffers(std::vector<Color>& expectedColors, void* bufferData,
    static void compareColorBuffers(const std::vector<Color>& expectedColors, void* bufferData,
                                    const int32_t stride, const uint32_t width,
                                    const uint32_t stride, const uint32_t width,
                                    const uint32_t height, PixelFormat pixelFormat);
                                    const uint32_t height, PixelFormat pixelFormat);
};
};


@@ -210,7 +209,6 @@ class ReadbackBuffer {
    uint32_t mHeight;
    uint32_t mHeight;
    uint32_t mLayerCount;
    uint32_t mLayerCount;
    uint32_t mUsage;
    uint32_t mUsage;
    uint32_t mStride;
    PixelFormat mPixelFormat;
    PixelFormat mPixelFormat;
    Dataspace mDataspace;
    Dataspace mDataspace;
    int64_t mDisplay;
    int64_t mDisplay;
+1 −1
Original line number Original line Diff line number Diff line
@@ -54,7 +54,7 @@ class TestRenderEngine {
        mDisplaySettings = displaySettings;
        mDisplaySettings = displaySettings;
    };
    };
    void drawLayers();
    void drawLayers();
    void checkColorBuffer(std::vector<Color>& expectedColors);
    void checkColorBuffer(const std::vector<Color>& expectedColors);


    ::android::renderengine::RenderEngine& getInternalRenderEngine() { return *mRenderEngine; }
    ::android::renderengine::RenderEngine& getInternalRenderEngine() { return *mRenderEngine; }