summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Macnak <natsu@google.com>2022-04-11 15:32:58 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-19 03:37:24 +0000
commitbc51ff31d274f847b6fc78c280ae663880b196ec (patch)
treeb394ecba904cbbb74be6efd39b293f24aede4f5a
parent7a1a7dbda342415279f01eccb728803446ab3250 (diff)
downloadminigbm-bc51ff31d274f847b6fc78c280ae663880b196ec.tar.gz
virtgpu_virgl: enable P010 for 3D mode
BUG=b:191084459 TEST=cvd start --gpu_mode=gfxstream TEST=Camera2Video sample app TEST=cts -m CtsCameraTestCases Change-Id: I7b2c902298fed7d1ccab7c31eac8376b0077b718 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3579857 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Jason Macnak <natsu@google.com> Commit-Queue: Jason Macnak <natsu@google.com>
-rw-r--r--virtgpu_virgl.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/virtgpu_virgl.c b/virtgpu_virgl.c
index cbfae66..163865b 100644
--- a/virtgpu_virgl.c
+++ b/virtgpu_virgl.c
@@ -91,6 +91,8 @@ static uint32_t translate_format(uint32_t drm_fourcc)
return VIRGL_FORMAT_NV12;
case DRM_FORMAT_NV21:
return VIRGL_FORMAT_NV21;
+ case DRM_FORMAT_P010:
+ return VIRGL_FORMAT_P010;
case DRM_FORMAT_YVU420:
case DRM_FORMAT_YVU420_ANDROID:
return VIRGL_FORMAT_YV12;
@@ -633,8 +635,12 @@ static int virgl_init(struct driver *drv)
/* Android CTS tests require this. */
virgl_add_combination(drv, DRM_FORMAT_RGB888, &LINEAR_METADATA, BO_USE_SW_MASK);
virgl_add_combination(drv, DRM_FORMAT_BGR888, &LINEAR_METADATA, BO_USE_SW_MASK);
- virgl_add_combination(drv, DRM_FORMAT_P010, &LINEAR_METADATA, BO_USE_TEXTURE |
- BO_USE_SW_MASK | BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE);
+ /* Android Camera CTS tests requires this. Additionally, the scanout usage is needed for
+ * Camera preview and is expected to be conditionally stripped by virgl_add_combination
+ * when not natively supported and instead handled by HWComposer. */
+ virgl_add_combination(drv, DRM_FORMAT_P010, &LINEAR_METADATA,
+ BO_USE_SCANOUT | BO_USE_TEXTURE | BO_USE_SW_MASK |
+ BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE);
drv_modify_combination(drv, DRM_FORMAT_R8, &LINEAR_METADATA,
BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE | BO_USE_HW_VIDEO_DECODER |
BO_USE_HW_VIDEO_ENCODER | BO_USE_GPU_DATA_BUFFER);