summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Macnak <natsu@google.com> 2022-02-11 16:18:11 -0800
committer Jason Macnak <natsu@google.com> 2022-02-11 16:40:50 -0800
commit240bb02edf757a51fb1480f1c812064ea6865a1a (patch)
tree3301d30a2f4ee1719f74dbc9ff98474bc38ab86b
parent74e2112ebcd0973188dd426c695fb28d291259f8 (diff)
Add AHARDWAREBUFFER_FORMAT_YCBCR_P010
... which corresponds to HAL_PIXEL_FORMAT_YCBCR_P010. (aosp/1982996) Bug: b/207388558 Test: build and boot Cuttlefish with P010 SwiftShader support Change-Id: Ia07db989845da4dfe1d26fa1541abd9d768ad92a
-rw-r--r--libs/nativewindow/AHardwareBuffer.cpp4
-rw-r--r--libs/nativewindow/include/android/hardware_buffer.h8
2 files changed, 12 insertions, 0 deletions
diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp
index 2578ee8467..381900e4ba 100644
--- a/libs/nativewindow/AHardwareBuffer.cpp
+++ b/libs/nativewindow/AHardwareBuffer.cpp
@@ -584,6 +584,8 @@ bool AHardwareBuffer_isValidPixelFormat(uint32_t format) {
"HAL and AHardwareBuffer pixel format don't match");
static_assert(HAL_PIXEL_FORMAT_YCBCR_422_I == AHARDWAREBUFFER_FORMAT_YCbCr_422_I,
"HAL and AHardwareBuffer pixel format don't match");
+ static_assert(HAL_PIXEL_FORMAT_YCBCR_P010 == AHARDWAREBUFFER_FORMAT_YCbCr_P010,
+ "HAL and AHardwareBuffer pixel format don't match");
static_assert(static_cast<int>(aidl::android::hardware::graphics::common::PixelFormat::R_8) ==
AHARDWAREBUFFER_FORMAT_R8_UNORM,
"HAL and AHardwareBuffer pixel format don't match");
@@ -617,6 +619,7 @@ bool AHardwareBuffer_isValidPixelFormat(uint32_t format) {
case AHARDWAREBUFFER_FORMAT_YCbCr_422_SP:
case AHARDWAREBUFFER_FORMAT_YCrCb_420_SP:
case AHARDWAREBUFFER_FORMAT_YCbCr_422_I:
+ case AHARDWAREBUFFER_FORMAT_YCbCr_P010:
return true;
default:
@@ -633,6 +636,7 @@ bool AHardwareBuffer_formatIsYuv(uint32_t format) {
case AHARDWAREBUFFER_FORMAT_YCbCr_422_SP:
case AHARDWAREBUFFER_FORMAT_YCrCb_420_SP:
case AHARDWAREBUFFER_FORMAT_YCbCr_422_I:
+ case AHARDWAREBUFFER_FORMAT_YCbCr_P010:
return true;
default:
return false;
diff --git a/libs/nativewindow/include/android/hardware_buffer.h b/libs/nativewindow/include/android/hardware_buffer.h
index 6f1f04df34..c35507b6f1 100644
--- a/libs/nativewindow/include/android/hardware_buffer.h
+++ b/libs/nativewindow/include/android/hardware_buffer.h
@@ -160,6 +160,14 @@ enum AHardwareBuffer_Format {
AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420 = 0x23,
/**
+ * YUV P010 format.
+ * Must have an even width and height. Can be accessed in OpenGL
+ * shaders through an external sampler. Does not support mip-maps
+ * cube-maps or multi-layered textures.
+ */
+ AHARDWAREBUFFER_FORMAT_YCbCr_P010 = 0x36,
+
+ /**
* Corresponding formats:
* Vulkan: VK_FORMAT_R8_UNORM
* OpenGL ES: GR_GL_R8