mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
gralloc4-vts: Test layout and component info of RAW12
Bug: 157534008 Test: VtsHalGraphicsMapperV4_0TargetTest Change-Id: I3441e630b18f3d6e0f5cbcecf8a54dc1b42faa84
This commit is contained in:
@@ -796,6 +796,48 @@ TEST_P(GraphicsMapperHidlTest, Lock_RAW10) {
|
||||
ASSERT_NO_FATAL_FAILURE(fence.reset(mGralloc->unlock(bufferHandle)));
|
||||
}
|
||||
|
||||
TEST_P(GraphicsMapperHidlTest, Lock_RAW12) {
|
||||
auto info = mDummyDescriptorInfo;
|
||||
info.format = PixelFormat::RAW12;
|
||||
|
||||
const native_handle_t* bufferHandle;
|
||||
uint32_t stride;
|
||||
ASSERT_NO_FATAL_FAILURE(bufferHandle = mGralloc->allocate(
|
||||
info, true, Tolerance::kToleranceUnSupported, &stride));
|
||||
if (bufferHandle == nullptr) {
|
||||
GTEST_SUCCEED() << "RAW12 format is unsupported";
|
||||
return;
|
||||
}
|
||||
|
||||
const IMapper::Rect region{0, 0, static_cast<int32_t>(info.width),
|
||||
static_cast<int32_t>(info.height)};
|
||||
unique_fd fence;
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(mGralloc->lock(bufferHandle, info.usage, region, fence.get()));
|
||||
|
||||
hidl_vec<uint8_t> vec;
|
||||
ASSERT_EQ(Error::NONE, mGralloc->get(bufferHandle, gralloc4::MetadataType_PlaneLayouts, &vec));
|
||||
std::vector<PlaneLayout> planeLayouts;
|
||||
ASSERT_EQ(NO_ERROR, gralloc4::decodePlaneLayouts(vec, &planeLayouts));
|
||||
|
||||
ASSERT_EQ(1, planeLayouts.size());
|
||||
auto planeLayout = planeLayouts[0];
|
||||
|
||||
EXPECT_EQ(0, planeLayout.sampleIncrementInBits);
|
||||
EXPECT_EQ(1, planeLayout.horizontalSubsampling);
|
||||
EXPECT_EQ(1, planeLayout.verticalSubsampling);
|
||||
|
||||
ASSERT_EQ(1, planeLayout.components.size());
|
||||
auto planeLayoutComponent = planeLayout.components[0];
|
||||
|
||||
EXPECT_EQ(PlaneLayoutComponentType::RAW,
|
||||
static_cast<PlaneLayoutComponentType>(planeLayoutComponent.type.value));
|
||||
EXPECT_EQ(0, planeLayoutComponent.offsetInBits % 8);
|
||||
EXPECT_EQ(-1, planeLayoutComponent.sizeInBits);
|
||||
|
||||
ASSERT_NO_FATAL_FAILURE(fence.reset(mGralloc->unlock(bufferHandle)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test IMapper::unlock with bad access region
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user