OSDN Git Service

cros_gralloc: Report layerCount > 1 as unsupported
authorJason Macnak <natsu@google.com>
Thu, 10 Dec 2020 19:42:54 +0000 (11:42 -0800)
committerCommit Bot <commit-bot@chromium.org>
Fri, 11 Dec 2020 17:43:50 +0000 (17:43 +0000)
... to handle AHardwareBufferNativeTests#MultipleLayers_*
tests.

BUG=b:168577830
BUG=b:172409958
TEST=cts -m CtsNativeHardwareTestCases
Change-Id: I40a55d05011a94057d877e228b4b3587dfc48fcb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2585945
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>

cros_gralloc/gralloc3/CrosGralloc3Utils.cc
cros_gralloc/gralloc4/CrosGralloc4Utils.cc

index f48c346..493fc1f 100644 (file)
@@ -327,7 +327,11 @@ int convertToCrosDescriptor(const BufferDescriptorInfo& descriptor,
     outCrosDescriptor->droid_format = static_cast<int32_t>(descriptor.format);
     outCrosDescriptor->droid_usage = descriptor.usage;
     outCrosDescriptor->reserved_region_size = 0;
-
+    if (descriptor.layerCount > 1) {
+        drv_log("Failed to convert descriptor. Unsupported layerCount: %d\n",
+                descriptor.layerCount);
+        return -1;
+    }
     if (convertToDrmFormat(descriptor.format, &outCrosDescriptor->drm_format)) {
         std::string pixelFormatString = getPixelFormatString(descriptor.format);
         drv_log("Failed to convert descriptor. Unsupported format %s\n", pixelFormatString.c_str());
index 1a7092c..5e37b7e 100644 (file)
@@ -318,10 +318,14 @@ int convertToCrosDescriptor(const BufferDescriptorInfo& descriptor,
     outCrosDescriptor->droid_format = static_cast<int32_t>(descriptor.format);
     outCrosDescriptor->droid_usage = descriptor.usage;
     outCrosDescriptor->reserved_region_size = descriptor.reservedSize;
-
+    if (descriptor.layerCount > 1) {
+        drv_log("Failed to convert descriptor. Unsupported layerCount: %d\n",
+                descriptor.layerCount);
+        return -1;
+    }
     if (convertToDrmFormat(descriptor.format, &outCrosDescriptor->drm_format)) {
         std::string pixelFormatString = getPixelFormatString(descriptor.format);
-        drv_log("Failed to convert descriptor. Unsupported fomat %s\n", pixelFormatString.c_str());
+        drv_log("Failed to convert descriptor. Unsupported format %s\n", pixelFormatString.c_str());
         return -1;
     }
     if (convertToBufferUsage(descriptor.usage, &outCrosDescriptor->use_flags)) {