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

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

Merge changes from topic "presubmit-am-475dec6c757f49f4a955c5c54f64331b" into tm-mainline-prod

* changes:
  [automerge] Allow old gralloc implementations to skip P010 support. 2p: 18339992
  Allow old gralloc implementations to skip P010 support.
parents 21edeaa1 be270cbe
Loading
Loading
Loading
Loading
+26 −16
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@
 * limitations under the License.
 */

#include <android-base/properties.h>
#include <mapper-vts/3.0/MapperVts.h>
#include "gtest/gtest.h"

namespace android {
namespace hardware {
@@ -96,14 +98,22 @@ std::vector<const native_handle_t*> Gralloc::allocate(const BufferDescriptor& de
    mAllocator->allocate(
            descriptor, count,
            [&](const auto& tmpError, const auto& tmpStride, const auto& tmpBuffers) {
            ASSERT_EQ(Error::NONE, tmpError) << "failed to allocate buffers";
                if (tmpError != Error::NONE) {
                    if (base::GetIntProperty("ro.vendor.build.version.sdk", 0, 0, INT_MAX) < 33) {
                        GTEST_SKIP() << "Old vendor grallocs may not support P010";
                    } else {
                        GTEST_FAIL() << "failed to allocate buffers";
                    }
                }
                ASSERT_EQ(count, tmpBuffers.size()) << "invalid buffer array";

                for (uint32_t i = 0; i < count; i++) {
                    if (import) {
                    ASSERT_NO_FATAL_FAILURE(bufferHandles.push_back(importBuffer(tmpBuffers[i])));
                        ASSERT_NO_FATAL_FAILURE(
                                bufferHandles.push_back(importBuffer(tmpBuffers[i])));
                    } else {
                    ASSERT_NO_FATAL_FAILURE(bufferHandles.push_back(cloneBuffer(tmpBuffers[i])));
                        ASSERT_NO_FATAL_FAILURE(
                                bufferHandles.push_back(cloneBuffer(tmpBuffers[i])));
                    }
                }

@@ -127,7 +137,7 @@ const native_handle_t* Gralloc::allocate(const IMapper::BufferDescriptorInfo& de
    }

    auto buffers = allocate(descriptor, 1, import, outStride);
    if (::testing::Test::HasFatalFailure()) {
    if (::testing::Test::HasFatalFailure() || ::testing::Test::IsSkipped()) {
        return nullptr;
    }

+4 −0
Original line number Diff line number Diff line
@@ -337,6 +337,10 @@ TEST_P(GraphicsMapperHidlTest, LockYCbCrP010) {
    uint32_t stride;
    ASSERT_NO_FATAL_FAILURE(bufferHandle = mGralloc->allocate(info, true, &stride));

    if (::testing::Test::IsSkipped()) {
        GTEST_SKIP();
    }

    ASSERT_NE(nullptr, bufferHandle);

    const IMapper::Rect region{0, 0, static_cast<int32_t>(info.width),
+10 −6
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
 * limitations under the License.
 */

#include <android-base/properties.h>
#include <gralloctypes/Gralloc4.h>
#include <mapper-vts/4.0/MapperVts.h>

@@ -95,7 +96,14 @@ std::vector<const native_handle_t*> Gralloc::allocate(const BufferDescriptor& de
                                 return;
                             }

                             ASSERT_EQ(Error::NONE, tmpError) << "failed to allocate buffers";
                             if (tmpError != Error::NONE) {
                                 if (base::GetIntProperty("ro.vendor.build.version.sdk", 0, 0,
                                                          INT_MAX) < 33) {
                                     GTEST_SKIP() << "Old vendor grallocs may not support P010";
                                 } else {
                                     GTEST_FAIL() << "failed to allocate buffers";
                                 }
                             }
                             ASSERT_EQ(count, tmpBuffers.size()) << "invalid buffer array";

                             for (uint32_t i = 0; i < count; i++) {
@@ -133,11 +141,7 @@ const native_handle_t* Gralloc::allocate(const IMapper::BufferDescriptorInfo& de
    }

    auto buffers = allocate(descriptor, 1, import, tolerance, outStride);
    if (::testing::Test::HasFatalFailure()) {
        return nullptr;
    }

    if (buffers.size() != 1) {
    if (::testing::Test::HasFatalFailure() || ::testing::Test::IsSkipped() || buffers.size() != 1) {
        return nullptr;
    }
    return buffers[0];
+6 −3
Original line number Diff line number Diff line
@@ -999,10 +999,13 @@ TEST_P(GraphicsMapperHidlTest, Lock_YCBCR_P010) {
    auto info = mDummyDescriptorInfo;
    info.format = PixelFormat::YCBCR_P010;

    const native_handle_t* bufferHandle;
    uint32_t stride;
    ASSERT_NO_FATAL_FAILURE(
            bufferHandle = mGralloc->allocate(info, true, Tolerance::kToleranceStrict, &stride));
    const native_handle_t* bufferHandle =
            mGralloc->allocate(info, true, Tolerance::kToleranceStrict, &stride);

    if (::testing::Test::IsSkipped()) {
        GTEST_SKIP();
    }

    const IMapper::Rect region{0, 0, static_cast<int32_t>(info.width),
                               static_cast<int32_t>(info.height)};