virtgpu_virgl: force linear for hw encoder with impl defined
BUG=b:264408280
TEST=video capture
Change-Id: Iffefbefb061def63905c6db7982c19bc16f2c223
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4137158
Reviewed-by: Dominik Laskowski <domlaskowski@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Dawn Han <dawnhan@google.com>
Reviewed-by: Dawn Han <dawnhan@google.com>
diff --git a/virtgpu_virgl.c b/virtgpu_virgl.c
index 2de97ca..ce40b57 100644
--- a/virtgpu_virgl.c
+++ b/virtgpu_virgl.c
@@ -992,9 +992,12 @@
if (use_flags & (BO_USE_CAMERA_READ | BO_USE_CAMERA_WRITE)) {
*out_format = DRM_FORMAT_NV12;
} else {
- /* HACK: See b/28671744 */
+ /* HACK: See b/28671744 and b/264408280 */
*out_format = DRM_FORMAT_XBGR8888;
- *out_use_flags &= ~BO_USE_HW_VIDEO_ENCODER;
+ if (use_flags & BO_USE_HW_VIDEO_ENCODER) {
+ *out_use_flags &= ~BO_USE_HW_VIDEO_ENCODER;
+ *out_use_flags |= BO_USE_LINEAR;
+ }
}
break;
case DRM_FORMAT_FLEX_YCbCr_420_888: