New issue
Advanced search Search tips

Issue 616275 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android , Chrome
Pri: 3
Type: Feature



Sign in to add a comment

Develop gralloc minigbm backend

Project Member Reported by gurcheta...@chromium.org, May 31 2016

Issue description

It is desirable to have a gralloc implementation based on minigbm.  The strategy is to first write an unit test for existing implementations before writing the minigbm backend.  This bug tracks all changes related to this effort.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/f8bfbef1bac47e71aceb8714908cf49e0a7546bb

commit f8bfbef1bac47e71aceb8714908cf49e0a7546bb
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Sat May 28 01:17:20 2016

sys-devel/arc-libs: Fetch libgralloc_drm for ARM as well

Currently, there is no libgralloc_drm.so under the
/opt/android/arm sysroot.

BUG= chromium:616275 
TEST=Ran "sudo emerge arc-libs" and verified
that libralloc_drm.so can be found in the
/opt/android/arm/usr/lib/ directory.

Change-Id: I93cae0736f7b8b90c688a8ed8db030ccdfe4c104
Reviewed-on: https://chromium-review.googlesource.com/348003
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[rename] https://crrev.com/f8bfbef1bac47e71aceb8714908cf49e0a7546bb/sys-devel/arc-libs/arc-libs-2016.05.24.071648_p0.ebuild
[modify] https://crrev.com/f8bfbef1bac47e71aceb8714908cf49e0a7546bb/sys-devel/arc-libs/files/gather.sh
[modify] https://crrev.com/f8bfbef1bac47e71aceb8714908cf49e0a7546bb/sys-devel/arc-libs/Manifest

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/f64487b09663ecd16b176e0bf6277ecba3542951

commit f64487b09663ecd16b176e0bf6277ecba3542951
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Jul 15 02:54:44 2016

minigbm: One buffer for NV12

Some of our Android framework code expects one fd per format.  The gbm
API allows it, so let's go with this representation.  Also fixed a bug
that comes up when bo->num_planes = 2, but the handles are the same.

BUG= chromium:616275 
TEST=gbmtest, plane_test

Change-Id: Iec0e6319d144941a73c26497af2078112d5e4e64
Reviewed-on: https://chromium-review.googlesource.com/360905
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/f64487b09663ecd16b176e0bf6277ecba3542951/rockchip.c
[modify] https://crrev.com/f64487b09663ecd16b176e0bf6277ecba3542951/helpers.c

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/cd45e4fdc511e02734476abb72bb169870f0193e

commit cd45e4fdc511e02734476abb72bb169870f0193e
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Jul 20 02:41:47 2016

sys-devel/arc-libs: Fetch additional libdrm headers

We need these headers for the minigbm-gralloc.

BUG= chromium:616275 
TEST=Ran "sudo emerge arc-libs" and verified the headers are found in
the proper directory.

Change-Id: I204c044c55f60439cd2a160c78820f23ff439493
Reviewed-on: https://chromium-review.googlesource.com/361814
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/cd45e4fdc511e02734476abb72bb169870f0193e/sys-devel/arc-libs/files/gather.sh
[rename] https://crrev.com/cd45e4fdc511e02734476abb72bb169870f0193e/sys-devel/arc-libs/arc-libs-2016.06.13.090407_p2.ebuild
[modify] https://crrev.com/cd45e4fdc511e02734476abb72bb169870f0193e/sys-devel/arc-libs/Manifest

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 21 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/drm-tests/+/309c0107cd02bad4142bc5f8f76cc3778c9bd113

commit 309c0107cd02bad4142bc5f8f76cc3778c9bd113
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Jul 15 22:08:25 2016

drm-tests: Fix issue related to multi-plane buffer objects

When a single buffer represents a multi-plane format, the
mmap() length argument needs to be modified.

CQ-DEPEND=CL:360905

BUG= chromium:616275 
TEST=plane_test (defaults to NV12)

Change-Id: Ic404de043803b65d5336d693a43fbbfe2861c8f0
Reviewed-on: https://chromium-review.googlesource.com/360918
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>

[modify] https://crrev.com/309c0107cd02bad4142bc5f8f76cc3778c9bd113/bsdrm/src/dma_buf.c

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/71861af3c69fe88590da653fc4aa0b3d40728a6b

commit 71861af3c69fe88590da653fc4aa0b3d40728a6b
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Mon Aug 08 23:19:44 2016

chromeos-base: add public ARC++ autotest ebuild.

This ebuild can be used for container tests that don't have to
be kept private.

BUG= chromium:616275 ,b/28937952
TEST=Ran

emerge-veyron_minnie-cheets autotest-tests-arc-public
emerge-cyan-cheets autotest-tests-arc-public

CQ-DEPEND=CL:367952

Change-Id: I43437873e4848e5699039fe6cdd62bdb716add5f
Reviewed-on: https://chromium-review.googlesource.com/368017
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>

[add] https://crrev.com/71861af3c69fe88590da653fc4aa0b3d40728a6b/chromeos-base/autotest-tests-arc-public/autotest-tests-arc-public-9999.ebuild
[modify] https://crrev.com/71861af3c69fe88590da653fc4aa0b3d40728a6b/chromeos-base/autotest-all/autotest-all-0.0.1.ebuild
[rename] https://crrev.com/71861af3c69fe88590da653fc4aa0b3d40728a6b/chromeos-base/autotest-all/autotest-all-0.0.1-r36.ebuild

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/b3ea64f1d91a35c754c25f080b56d735415da051

commit b3ea64f1d91a35c754c25f080b56d735415da051
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Aug 10 17:00:42 2016

autotest: Added gralloc unit test

The graphics_Gbm test often catches many bugs on CrOS.  It is desirable to
have a similar test for the gralloc API.

BUG= chromium:616275 
TEST=Ran

test_that -b veyron_minnie-cheets $IP1 graphics_Gralloc
test_that -b cyan-cheets $IP1 graphics_Gralloc

Change-Id: I0d2df06c12f17d610a10862dae379046df270362
Reviewed-on: https://chromium-review.googlesource.com/367952
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>

[add] https://crrev.com/b3ea64f1d91a35c754c25f080b56d735415da051/client/site_tests/graphics_Gralloc/graphics_Gralloc.py
[add] https://crrev.com/b3ea64f1d91a35c754c25f080b56d735415da051/client/site_tests/graphics_Gralloc/src/Makefile
[add] https://crrev.com/b3ea64f1d91a35c754c25f080b56d735415da051/client/site_tests/graphics_Gralloc/src/sw_sync.h
[add] https://crrev.com/b3ea64f1d91a35c754c25f080b56d735415da051/client/site_tests/graphics_Gralloc/control
[add] https://crrev.com/b3ea64f1d91a35c754c25f080b56d735415da051/client/site_tests/graphics_Gralloc/src/gralloctest.c

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/5e23ff7acba924a3d5d3c1887818cd78a7652aaa

commit 5e23ff7acba924a3d5d3c1887818cd78a7652aaa
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Aug 10 21:06:59 2016

media-libs/minigbm: Renamed ebuild variables

We are refactoring minigbm to be dependent on a generic driver API.
As such, don't export GBM-specific variables.

CQ-DEPEND=CL:367780
BUG= chromium:616275 
TEST=minigbm builds

Change-Id: I61f92108d26322a4857685a5103198c7f23a613f
Reviewed-on: https://chromium-review.googlesource.com/367791
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/5e23ff7acba924a3d5d3c1887818cd78a7652aaa/media-libs/minigbm/minigbm-9999.ebuild

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/46faf6bf430b8f8805f2acfad546329eebcd50f6

commit 46faf6bf430b8f8805f2acfad546329eebcd50f6
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Aug 05 21:40:07 2016

minigbm: Refactored minigbm on top a private API

We would like to reuse the same set of drivers for ChromeOS (with
a minigbm frontend) and Android (with a gralloc frontend).  Since
we don't want to pollute the gbm API with gralloc formats and usages,
we can refactor minigbm on top a private API that will be a superset
of gbm and gralloc.  This change redirects gbm calls to the
private API.

TEST=Ran graphics_Gbm on minnie and cyan, and checked if Chrome boots.
BUG= chromium:616275 

CQ-DEPEND=CL:367791

Change-Id: I50d10f9d6c7ea936b0d76c5299a58d948939fdf9
Reviewed-on: https://chromium-review.googlesource.com/367780
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/helpers.h
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/evdi.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/gbm.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/virtio_gpu.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/tegra.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/gma500.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/Makefile
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/udl.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/mediatek.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/helpers.c
[add] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/drv_priv.h
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/exynos.c
[add] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/gbm_helpers.c
[add] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/drv.h
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/rockchip.c
[add] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/gbm_helpers.h
[add] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/drv.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/cirrus.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/marvell.c
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/gbm_priv.h
[modify] https://crrev.com/46faf6bf430b8f8805f2acfad546329eebcd50f6/i915.c

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/ef920536083c3e6959daa6a98db01b0f653c1c83

commit ef920536083c3e6959daa6a98db01b0f653c1c83
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Aug 12 23:38:25 2016

minigbm: Add mmap() in backends

Gralloc requires the ability to mmap a buffer into userspace. This
change adds the necessary entry points to our internal "drv"
interface.

BUG= chromium:616275 
TEST=minigbm still builds.  Also ran:

./gralloctest mapping

with CL:362062 applied on minnie and cyan (decided to split that CL
into smaller patches).

CQ-DEPEND=CL:366041

Change-Id: I7396b0c79702f24eb779984805bc679c237bd932
Reviewed-on: https://chromium-review.googlesource.com/370798
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/evdi.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/helpers.h
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/virtio_gpu.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/tegra.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/mediatek.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/udl.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/rockchip.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/helpers.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/drv_priv.h
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/exynos.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/drv.h
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/gma500.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/drv.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/cirrus.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/marvell.c
[modify] https://crrev.com/ef920536083c3e6959daa6a98db01b0f653c1c83/i915.c

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/bfba8c2697ef0dec00ba28eb7d976d56e3e61166

commit bfba8c2697ef0dec00ba28eb7d976d56e3e61166
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Aug 17 00:57:10 2016

minigbm: Added gralloc API to internal API

Added the drv analogues of the 2 flexible formats we need to support.
Added analogues of most of the gralloc use flags, except:

GRALLOC_USAGE_SW_READ_MASK
GRALLOC_USAGE_SW_WRITE_MASK
GRALLOC_USAGE_HW_MASK
GRALLOC_USAGE_FOREIGN_BUFFERS
GRALLOC_USAGE_ALLOC_MASK

These are used as masks and don't make sense as usage hints.  In
addition, put the new flags in the drivers' supported lists and
added a flexible format query function.

BUG= chromium:616275 
TEST=minigbm still builds
CQ-DEPEND=CL:371501

Change-Id: Idd2ecd6fde3e6c5caaaf3a8404d0d7db20b4ecf4
Reviewed-on: https://chromium-review.googlesource.com/372359
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/rockchip.c
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/drv_priv.h
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/tegra.c
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/drv.h
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/drv.c
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/i915.c
[modify] https://crrev.com/bfba8c2697ef0dec00ba28eb7d976d56e3e61166/mediatek.c

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/83dc4fb6e4de05d683ddc044445aa4a80ad32efe

commit 83dc4fb6e4de05d683ddc044445aa4a80ad32efe
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Jul 19 22:52:33 2016

minigbm: Add YV12 for i915

At the moment, the ArcCodec produces YV12 on Intel.  The gralloc
module should support it, atleast temporarily until UYVY hardware
overlays are enabled on CrOS.

TEST=ran graphics_Gbm, tested Chrome boots on Cyan
BUG=b/29335168, chromium:616275
CQ-DEPEND=CL:372359

Change-Id: I27c888d3467aa89e8ca48b22523cbc76973aa314
Reviewed-on: https://chromium-review.googlesource.com/373048
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/helpers.h
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/tegra.c
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/rockchip.c
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/helpers.c
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/exynos.c
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/i915.c
[modify] https://crrev.com/83dc4fb6e4de05d683ddc044445aa4a80ad32efe/mediatek.c

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/b72badb6c83a497b299873136e37435261b174ad

commit b72badb6c83a497b299873136e37435261b174ad
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Aug 19 23:26:46 2016

minigbm: Added support for multiplane import

Gralloc requires flexible YUV formats (YV12, NV12) to be importable.
This change modifies our internal import API to support this.

TEST=ran graphics_Gbm
BUG= chromium:616275 
CQ-DEPEND=CL:373048

Change-Id: I4100e1c1639828e4adf08764b45fe5a44b7078a3
Reviewed-on: https://chromium-review.googlesource.com/374162
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/b72badb6c83a497b299873136e37435261b174ad/drv.c
[modify] https://crrev.com/b72badb6c83a497b299873136e37435261b174ad/drv.h
[modify] https://crrev.com/b72badb6c83a497b299873136e37435261b174ad/gbm.c

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/42cc6d6c2a93f585daad4c70398edfd770578683

commit 42cc6d6c2a93f585daad4c70398edfd770578683
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Aug 30 01:19:19 2016

minigbm: Added YV12 for Mali platforms

Oak-cheets is using YV12 as it's Android flexible YUV format, so
we need to support it.  Additionally, we're trying to enable
YV12 on Mali with EXT_image_dma_buf_import.  Instead of having
redundant switch statements in every driver, let's add a helper
function to do this.

BUG=chrome-os-partner:54632, b/29059119, chromium:616275
TEST=Ran plane_test, graphics_Gbm on veyron_minnie

Change-Id: I4798225db809941367e58dde962576535b8d767c
Reviewed-on: https://chromium-review.googlesource.com/377884
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/42cc6d6c2a93f585daad4c70398edfd770578683/mediatek.c
[modify] https://crrev.com/42cc6d6c2a93f585daad4c70398edfd770578683/i915.c
[modify] https://crrev.com/42cc6d6c2a93f585daad4c70398edfd770578683/helpers.h
[modify] https://crrev.com/42cc6d6c2a93f585daad4c70398edfd770578683/rockchip.c
[modify] https://crrev.com/42cc6d6c2a93f585daad4c70398edfd770578683/helpers.c

Project Member

Comment 15 by bugdroid1@chromium.org, Sep 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/fafa54b4f3045df0f4e732fbd985f461d8a8e503

commit fafa54b4f3045df0f4e732fbd985f461d8a8e503
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Aug 31 16:53:40 2016

graphics_Gralloc: Add private API test

We decided to go with a private API to determine characteristics of the
buffer.  Let's add a test for it.  Also modified the use flags we test
for to be the same as the ones we support.

BUG= chromium:616275 
TEST=./gralloctest perform

Change-Id: Ica1ceb420b6295b78aae01443c1efb51f2ed95ea
Reviewed-on: https://chromium-review.googlesource.com/379612
Commit-Ready: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/fafa54b4f3045df0f4e732fbd985f461d8a8e503/client/site_tests/graphics_Gralloc/graphics_Gralloc.py
[modify] https://crrev.com/fafa54b4f3045df0f4e732fbd985f461d8a8e503/client/site_tests/graphics_Gralloc/src/gralloctest.c

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 6 2016

Labels: merge-merged-wk51_2014
The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/vendor/mali-ddk/+/8b7f28712055a870e178431e2c2bbb75f51e3097

commit 8b7f28712055a870e178431e2c2bbb75f51e3097
Author: Gurchetan Singh <gurchetansingh@google.com>
Date: Thu Sep 08 17:24:47 2016

Project Member

Comment 17 by bugdroid1@chromium.org, Oct 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/2e786ad60038a7c772006e3190fcb8bcf1ff267d

commit 2e786ad60038a7c772006e3190fcb8bcf1ff267d
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Aug 25 01:31:23 2016

minigbm: Implemented cros_gralloc

It is desirable to have a gralloc implementation based on the same
drivers we use for minigbm. This will help synchronize the code between
CrOS and the Android container.

BUG= chromium:616275 
TEST=Ran the gralloc unit test:

test_that -b veyron_minnie-cheets $IP1 graphics_Gralloc

Verified it succeeded.

CQ-DEPEND=CL:395066

Change-Id: Iff11eba3a92268327ef00eb12b4eabe6fc190cf3
Reviewed-on: https://chromium-review.googlesource.com/362062
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_gralloc_handle.h
[modify] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/helpers.h
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_gralloc.h
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_gralloc_helpers.cc
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_gralloc_helpers.h
[modify] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/helpers.c
[modify] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/drv_priv.h
[modify] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/drv.h
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_alloc_device.cc
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/cros_gralloc_module.cc
[modify] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/drv.c
[add] https://crrev.com/2e786ad60038a7c772006e3190fcb8bcf1ff267d/cros_gralloc/Makefile

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/ab7ec19d288aabcff53913b869693d3aa66685d4

commit ab7ec19d288aabcff53913b869693d3aa66685d4
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Sep 23 00:00:42 2016

minigbm: i915: enable required Android buffers

The Play Store wants a HAL_PIXEL_FORMAT_RGBA_8888 (ABGR with fourcc)
buffer with the 0x8933 flag sometimes, which translates to:

GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN |
GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_COMPOSER |
GRALLOC_USAGE_HW_FB | GRALLOC_USAGE_CURSOR

Some dEQP EGL tests also need XBGR8888 buffers with
GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_OFTEN flags.

In addition, we need to support YUV buffers with these usage flags:

GRALLOC_USAGE_EXTERNAL_DISP | GRALLOC_USAGE_HW_COMPOSER |
GRALLOC_USAGE_TEXTURE

for Youtube videos to work, so add that too.

BUG= chromium:616275 
TEST=Play Angry birds and run Youtube app on Cyan.  Verified all dEQP
EGL tests pass:

run cts --package com.drawelements.deqp.egl

CQ-DEPEND=CL:392546

Change-Id: I3a4a03e4b300240a167e1fbc3eb3e23c55551c8b
Reviewed-on: https://chromium-review.googlesource.com/392547
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/ab7ec19d288aabcff53913b869693d3aa66685d4/drv_priv.h
[modify] https://crrev.com/ab7ec19d288aabcff53913b869693d3aa66685d4/i915.c

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/10a11801089d87c1371e0b02b8c987b1d3417c61

commit 10a11801089d87c1371e0b02b8c987b1d3417c61
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Sep 23 22:27:07 2016

minigbm: rockchip: enable NV12 for Android

For NV12 buffers to work on Android, we need to use the same
logic that we use in gralloc_drm_rockchip.  Otherwise, video
playback doesn't work in the container.

BUG= chromium:616275 
TEST=Play Youtube app.  Also ran plane_test (which defaults to NV12).
CQ-DEPEND=CL:392547

Change-Id: I8dbd989f2638c99200866f8191450c71114bdbe5
Reviewed-on: https://chromium-review.googlesource.com/392548
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/10a11801089d87c1371e0b02b8c987b1d3417c61/rockchip.c

Project Member

Comment 20 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/5521bde70f7781edbf5d6f5cced4b9cea41d0518

commit 5521bde70f7781edbf5d6f5cced4b9cea41d0518
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Sep 30 21:53:32 2016

minigbm: add vgem backend

When running x86 ARC++ images on a virtual machine, we use
the vgem driver.  We should support it here too.

BUG= chromium:616275 
TEST=container boots when running QEMU with cros_gralloc.  Note
videos (i.e, YUV formats) don't work on QEMU, but they never did
with gralloc_drm either.

CQ-DEPEND=CL:392548

Change-Id: If9f6b8035f2a88068980bede5121ef4599b37272
Reviewed-on: https://chromium-review.googlesource.com/392549
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/5521bde70f7781edbf5d6f5cced4b9cea41d0518/drv.c
[add] https://crrev.com/5521bde70f7781edbf5d6f5cced4b9cea41d0518/vgem.c
[modify] https://crrev.com/5521bde70f7781edbf5d6f5cced4b9cea41d0518/cros_gralloc/cros_gralloc_helpers.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/3d5a9b466637e424d567a7dfeb851977995eb27a

commit 3d5a9b466637e424d567a7dfeb851977995eb27a
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Oct 14 00:23:15 2016

minigbm: rockchip: Enable required Android buffers

The Play store passes down the 0x8933 flag sometimes, which translates
to:

GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN |
GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_COMPOSER |
GRALLOC_USAGE_HW_FB | GRALLOC_USAGE_CURSOR

so we need to handle this case with ABGR8888 buffers.  In addition,
the dEQP EGL tests require RGB565 and XBGR8888 formats to succeed.

BUG= chromium:616275 
TEST=Play angry birds on minnie, also verified all EGL dEQP tests pass:

run cts --package com.drawelements.deqp.egl

CQ-DEPEND=CL:392548

Change-Id: Ifb4953741bdd4c85a210e499061c8c4a0a6a731e
Reviewed-on: https://chromium-review.googlesource.com/398424
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/3d5a9b466637e424d567a7dfeb851977995eb27a/rockchip.c

Project Member

Comment 22 by bugdroid1@chromium.org, Oct 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/e1707bcfdaf723eae4bbbdb8df52ab6e354d8a55

commit e1707bcfdaf723eae4bbbdb8df52ab6e354d8a55
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Mon Oct 17 23:19:13 2016

minigbm: mediatek: add required Android buffers

We need ABGR8888, XBGR8888, and RGB565 buffers for mediatek.
We also need to add certain flags to our flexible YUV formats.

BUG= chromium:616275 
TEST=run dEQP EGL tests on elm.
CQ-DEPEND=CL:398424

Change-Id: Ia3122b4e792911575e13fcbeb4f77b5691290a2d
Reviewed-on: https://chromium-review.googlesource.com/399924
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/e1707bcfdaf723eae4bbbdb8df52ab6e354d8a55/mediatek.c

Project Member

Comment 23 by bugdroid1@chromium.org, Oct 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/f719a9fd69d2bff7e6b0dfa0fa437fc43533249e

commit f719a9fd69d2bff7e6b0dfa0fa437fc43533249e
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Sep 01 22:24:23 2016

Add ebuild for arc-cros-gralloc

This allows us to build gralloc for the Android container in Portage.
The shared library will be installed in /vendor/lib/hw/.

BUG= chromium:616275 
TEST=emerge-{veyron-minnie-cheets, cyan} arc-cros-gralloc
sh deploy_vendor_image.sh $IP

Verify gralloc.cros.so is in the desired directory when container
starts.

CQ-DEPEND=CL:362062

Change-Id: I6313fa7e17d35b88e481679b76e929037932332c
Reviewed-on: https://chromium-review.googlesource.com/362101
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[add] https://crrev.com/f719a9fd69d2bff7e6b0dfa0fa437fc43533249e/media-libs/arc-cros-gralloc/arc-cros-gralloc-9999.ebuild

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/0e8ec504522adac9c642b1d18b1f041c0b58c5d4

commit 0e8ec504522adac9c642b1d18b1f041c0b58c5d4
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Oct 20 21:22:14 2016

media-libs/arc-cros-gralloc: set correct CROS_WORKON_LOCALNAME

We were setting CROS_WORKON_LOCALNAME to an non-existant git repo.
This worked locally with 9999 ebuilds but made the build-bots unhappy.
Set it to the correct repo, which slightly modifies where we need to
invoke emake.

BUG= chromium:616275 
TEST=arc-cros-gralloc builds

Change-Id: I3bf986bca75db83f2f66cdccade120c5aebd7fe2
Reviewed-on: https://chromium-review.googlesource.com/401046
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/0e8ec504522adac9c642b1d18b1f041c0b58c5d4/media-libs/arc-cros-gralloc/arc-cros-gralloc-9999.ebuild

Project Member

Comment 25 by bugdroid1@chromium.org, Oct 22 2016

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 2 2016

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d787ab1b75899b51bdbf24dbc78c45deb66ba3a1

commit d787ab1b75899b51bdbf24dbc78c45deb66ba3a1
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 17:26:30 2016

CHROMIUM: drm: Allow render node access to KMS getters

We need to query the KMS API to present an accurate view of overlay
formats in Android (see CL:405019).  With the exception of
SET_CLIENT_CAP, these ioctls are getters.

SET_CLIENT_CAP is allowable with render nodes since it only presents
a different version of the drm core to userspace when modified.

BUG= chromium:616275 
TEST=none

Change-Id: I967d923d778239e3c97e22f6fe19befb43ece406
Reviewed-on: https://chromium-review.googlesource.com/405714
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/d787ab1b75899b51bdbf24dbc78c45deb66ba3a1/drivers/gpu/drm/drm_ioctl.c

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 2 2016

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9d76ab103c4d704783dd6cfdaa84e1c600190c4a

commit 9d76ab103c4d704783dd6cfdaa84e1c600190c4a
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 17:36:03 2016

CHROMIUM: drm: Allow render node access to KMS getters

We need to query the KMS API to present an accurate view of overlay
formats in Android (see CL:405019).  With the exception of
SET_CLIENT_CAP, these ioctls are getters.

SET_CLIENT_CAP is allowable with render nodes since it only presents
a different version of the drm core to userspace when modified.

BUG= chromium:616275 
TEST=none

Change-Id: I2403af23543fc961d19969fcf92469aa09c4480a
Reviewed-on: https://chromium-review.googlesource.com/406369
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/9d76ab103c4d704783dd6cfdaa84e1c600190c4a/drivers/gpu/drm/drm_drv.c

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 2 2016

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a7c78515060be1214f098e39ad5e815a35d121e6

commit a7c78515060be1214f098e39ad5e815a35d121e6
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 16:53:06 2016

CHROMIUM: drm: Allow render node access to KMS getters

We need to query the KMS API to present an accurate view of overlay
formats in Android (see CL:405019).  With the exception of
SET_CLIENT_CAP, these ioctls are getters.

SET_CLIENT_CAP is allowable with render nodes since it only presents
a different version of the drm core to userspace when modified.

BUG= chromium:616275 
TEST=none

Change-Id: Id26e1b2b37dfa72f6ce55b524e849141750787c6
Reviewed-on: https://chromium-review.googlesource.com/405758
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/a7c78515060be1214f098e39ad5e815a35d121e6/drivers/gpu/drm/drm_ioctl.c

Project Member

Comment 29 by bugdroid1@chromium.org, Nov 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ae0c8a4c44b35fa49feb268c1dbf40afa040dd5e

commit ae0c8a4c44b35fa49feb268c1dbf40afa040dd5e
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 22:14:37 2016

sys-devel/arc-libs: Fetch new build artifacts

This installs the new version of <drm_fourcc.h> into the
Android sysroot.  This newer version has the AFBC modifiers
in it.

Also, let's start fetching the 2.4.70 libdrm branch since that's where
most of the development has been taking place.

BUG= chromium:616275 
TEST=arc-mesa, cros_gralloc still build

Change-Id: I83993e0a8445d966a2c519d75276b938412af386
Reviewed-on: https://chromium-review.googlesource.com/405718
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>

[modify] https://crrev.com/ae0c8a4c44b35fa49feb268c1dbf40afa040dd5e/sys-devel/arc-libs/files/gather.sh
[rename] https://crrev.com/ae0c8a4c44b35fa49feb268c1dbf40afa040dd5e/sys-devel/arc-libs/arc-libs-2016.08.02.071310_p0.ebuild
[modify] https://crrev.com/ae0c8a4c44b35fa49feb268c1dbf40afa040dd5e/sys-devel/arc-libs/Manifest

Project Member

Comment 30 by bugdroid1@chromium.org, Nov 9 2016

Labels: merge-merged-chromeos-3.10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7e92e89693133088cd9ed6b07178c5ac0502e914

commit 7e92e89693133088cd9ed6b07178c5ac0502e914
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 20:53:31 2016

CHROMIUM: drm: Allow render node access to KMS getters

We need to query the KMS API to present an accurate view of overlay
formats in Android (see CL:405019).  With the exception of
SET_CLIENT_CAP, these ioctls are getters.

SET_CLIENT_CAP is allowable with render nodes since it only presents
a different version of the drm core to userspace when modified.

BUG= chromium:616275 
TEST=none

Change-Id: I857649d6fde4d06bc5e8d83ccd5f51bda7029dd3
Reviewed-on: https://chromium-review.googlesource.com/405700
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

[modify] https://crrev.com/7e92e89693133088cd9ed6b07178c5ac0502e914/drivers/gpu/drm/drm_drv.c

Comment 31 by ihf@chromium.org, Nov 9 2016

Cc: ihf@chromium.org
Project Member

Comment 32 by bugdroid1@chromium.org, Nov 10 2016

Labels: merge-merged-chromeos-3.8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/06e6c1c0493fa3693bf79a482682b42e54f911c8

commit 06e6c1c0493fa3693bf79a482682b42e54f911c8
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 01 21:44:57 2016

CHROMIUM: drm: Allow render node access to KMS getters

We need to query the KMS API to present an accurate view of overlay
formats in Android (see CL:405019).  With the exception of
SET_CLIENT_CAP, these ioctls are getters.

SET_CLIENT_CAP is allowable with render nodes since it only presents
a different version of the drm core to userspace when modified.

BUG= chromium:616275 
TEST=none

Change-Id: I971edd77d0fd5879ccb4cee0bec570004c6d4381
Reviewed-on: https://chromium-review.googlesource.com/405715
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/06e6c1c0493fa3693bf79a482682b42e54f911c8/drivers/gpu/drm/drm_drv.c

Project Member

Comment 33 by bugdroid1@chromium.org, Nov 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/82f838c302bd6c8b5ade8bcc01739c4bf19dc234

commit 82f838c302bd6c8b5ade8bcc01739c4bf19dc234
Author: Ilja H. Friedel <ihf@chromium.org>
Date: Wed Nov 09 06:53:33 2016

graphics_Gralloc: catch exception during failure.

1) Catch exception that happens during test failure.
2) Provide better failure message.

BUG= chromium:616275 
TEST=test_that $DUT graphics_Gralloc
     FAIL: Failed: gralloc on broadwell in ['api', 'gralloc_order', 'uninitialized_handle'].

Change-Id: I6fe779fd0fcf8fb99196d2a1c6a331415216d3c7
Reviewed-on: https://chromium-review.googlesource.com/409119
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/82f838c302bd6c8b5ade8bcc01739c4bf19dc234/client/site_tests/graphics_Gralloc/graphics_Gralloc.py

Comment 34 by ihf@chromium.org, Nov 15 2016

I think we may also need to fix occasional hangs.

Failed: gralloc on braswell in ['api', 'gralloc_order', 'uninitialized_handle'].
Failed: gralloc on broadwell in ['api', 'gralloc_order', 'uninitialized_handle'].
Failed: gralloc on mali-t760 in ['api', 'gralloc_order', 'uninitialized_handle'].
Failed: gralloc on mali-t860 in ['api', 'gralloc_order', 'uninitialized_handle'].
Failed: gralloc on rogue in ['api', 'gralloc_order', 'uninitialized_handle'].
Failed: gralloc on skylake in ['api', 'gralloc_order', 'uninitialized_handle'].

Comment 35 by ihf@chromium.org, Nov 15 2016

Sample log


11/13 21:19:59.937 INFO |      base_sysinfo:0380| ChromeOS BOARD = samus_2.7GHz_8GB
11/13 21:19:59.938 DEBUG|        base_utils:0185| Running 'logger "autotest starting iteration /usr/local/autotest/results/default/graphics_Gralloc/sysinfo/iteration.1 on samus_2.7GHz_8GB"'
11/13 21:19:59.945 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest alloc_varying_sizes''
11/13 21:20:00.061 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.alloc_varying_sizes
[  PASSED  ] gralloctest.alloc_varying_sizes
11/13 21:20:00.062 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest alloc_usage''
11/13 21:20:00.125 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.alloc_usage
[  PASSED  ] gralloctest.alloc_usage
11/13 21:20:00.126 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest api''
11/13 21:20:00.191 ERROR|  graphics_Gralloc:0068| [ RUN      ] gralloctest.api
CHECK failed in test_api() gralloctest.c:348
[  FAILED  ] gralloctest.api
11/13 21:20:00.197 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest gralloc_order''
11/13 21:20:00.263 ERROR|  graphics_Gralloc:0068| [ RUN      ] gralloctest.gralloc_order
CHECK failed in test_gralloc_order() gralloctest.c:381
[  FAILED  ] gralloctest.gralloc_order
11/13 21:20:00.269 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest uninitialized_handle''
11/13 21:20:00.554 ERROR|  graphics_Gralloc:0063| Exception running /data/executables/gralloctest uninitialized_handle
11/13 21:20:00.559 ERROR|  graphics_Gralloc:0068| [ RUN      ] gralloctest.gralloc_order
CHECK failed in test_gralloc_order() gralloctest.c:381
[  FAILED  ] gralloctest.gralloc_order
11/13 21:20:00.567 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest freed_handle''
11/13 21:20:00.628 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.freed_handle
[  PASSED  ] gralloctest.freed_handle
11/13 21:20:00.628 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest mapping''
11/13 21:20:00.711 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.mapping
[  PASSED  ] gralloctest.mapping
11/13 21:20:00.712 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest perform''
11/13 21:20:00.782 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.perform
[  PASSED  ] gralloctest.perform
11/13 21:20:00.783 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest ycbcr''
11/13 21:20:00.850 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.ycbcr
[  PASSED  ] gralloctest.ycbcr
11/13 21:20:00.851 DEBUG|        base_utils:0185| Running 'android-sh -c '/data/executables/gralloctest async''
11/13 21:20:00.916 DEBUG|  graphics_Gralloc:0070| [ RUN      ] gralloctest.async
[  PASSED  ] gralloctest.async
Project Member

Comment 36 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/c67f9e422c5e4abd86cca009bf609e2438acf757

commit c67f9e422c5e4abd86cca009bf609e2438acf757
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Mon Nov 28 23:25:26 2016

minigbm: flatten gralloc handle

Many GL drivers assume that first value in the native_handle data
array is the fd associated with the graphics buffer, i.e,

int prime_fd = handle->data[0];

This in our case until 4bfc7401. We added 64-bit modifiers in
our import data, so all values in the drv_import_fd_data struct get
8-byte aligned. In our cros_gralloc_handle, 4 bytes of padding
are added between native_handle_t and drv_import_fd_data to make
the alignment work. To counter-act this, we can stop embedding
drv_import_fd_data in cros_gralloc_handle.

BUG= chromium:616275 
TEST=Mali driver doesn't return an error when running cros_gralloc
CQ-DEPEND=CL:414585

Change-Id: Ib6c165e98126468b96fa7119d5ca13eebee1655c
Reviewed-on: https://chromium-review.googlesource.com/414536
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/c67f9e422c5e4abd86cca009bf609e2438acf757/cros_gralloc/cros_gralloc_handle.h
[modify] https://crrev.com/c67f9e422c5e4abd86cca009bf609e2438acf757/cros_gralloc/cros_gralloc_helpers.h
[modify] https://crrev.com/c67f9e422c5e4abd86cca009bf609e2438acf757/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/c67f9e422c5e4abd86cca009bf609e2438acf757/cros_gralloc/cros_gralloc_module.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/ebe1e95c87a97a33c312c69bbdf31973a74dbce3

commit ebe1e95c87a97a33c312c69bbdf31973a74dbce3
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Wed Nov 30 04:36:13 2016

minigbm: vgem: align to llvm tile size

We're planning on using Mesa with llvmpipe when running
the Android container in a virtual machine. It's faster
than softpipe. llvmpipe requires alignment to a 64-byte
tile size, so add it here.  This is the analogue to
norvez@'s drm_gralloc commiti (ag/1599269).

BUG=b:28802929,  chromium:616275 
TEST=run arc-cros-gralloc in QEMU

CQ-DEPEND=CL:414537

Change-Id: If4160d376447ce218df3bc410a8427b284de74fd
Reviewed-on: https://chromium-review.googlesource.com/416291
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/ebe1e95c87a97a33c312c69bbdf31973a74dbce3/vgem.c

Project Member

Comment 38 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/f17c813c9f95d91c53c7e72ca66473153527cdc6

commit f17c813c9f95d91c53c7e72ca66473153527cdc6
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Nov 29 22:45:46 2016

minigbm: tweak cros-gralloc flags

The Play Store wants a ABGR8888 HW cursor, and we can't in
general support this, so let's ignore the cursor flag rather
than fail the allocation.

We also interpret GRALLOC_USAGE_HW_COMPOSER as BO_USE_SCANOUT
| BO_USE_RENDERING. This fails with YV12, since we can't scanout
from it on Intel/Mediatek. Let's first try to allocate with the
scanout flag enabled and then fall-back to rendering if it's
not supported (i.e, first try overlay but then try OpenGL).

In addition, let's interpret GRALLOC_USAGE_HW_FB the same as
GRALLOC_USAGE_HW_COMPOSER since the framebuffer device
(Chrome in our case) wants to scanout but can also fall back.

BUG= chromium:616275 
TEST=run cts --package com.drawelements.deqp.egl on minnie
CQ-DEPEND=CL:414536

Change-Id: I57cd681ca8ff0186698bd0a046c3a7b346f3e434
Reviewed-on: https://chromium-review.googlesource.com/414537
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/f17c813c9f95d91c53c7e72ca66473153527cdc6/cros_gralloc/cros_gralloc_helpers.cc
[modify] https://crrev.com/f17c813c9f95d91c53c7e72ca66473153527cdc6/cros_gralloc/cros_alloc_device.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/45de1991cdfea52ca6e0c2db1bf390920f9a7156

commit 45de1991cdfea52ca6e0c2db1bf390920f9a7156
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Dec 02 20:32:16 2016

minigbm: vgem: add a few more supported formats

While running Android in QEMU, I encountered a few crashes
due to unsupported formats. Add them here.

BUG= chromium:616275 
TEST=Run arc-cros-gralloc in QEMU
CQ-DEPEND=CL:416291

Change-Id: Ie9a9dee0cba7c8b83592c40a3249ebcb30391346
Reviewed-on: https://chromium-review.googlesource.com/416292
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/45de1991cdfea52ca6e0c2db1bf390920f9a7156/vgem.c

Project Member

Comment 40 by bugdroid1@chromium.org, Dec 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/f028a6fc0dcfe5df2d0e09aba2ccf90c1ee70061

commit f028a6fc0dcfe5df2d0e09aba2ccf90c1ee70061
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Sat Dec 03 01:54:09 2016

minigbm: mediatek: add support HAL_PIXEL_FORMAT_YV12

For some reason, we use HAL_PIXEL_FORMAT_YV12 instead of
HAL_PIXEL_FORMAT_YCbCr_420_888 as our YUV format on mediatek
based boards. We also pass down a different use flags. Since
mediatek only supports linear buffers the moment, just lump all
the flags together for our YUV supported combination.

BUG= chromium:616275 
TEST=Played Youtube video in Oak ARC++ container
CQ-DEPEND=CL:416292

Change-Id: Iac4797517048981235cd17ad464eb1e3852c4072
Reviewed-on: https://chromium-review.googlesource.com/416396
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/f028a6fc0dcfe5df2d0e09aba2ccf90c1ee70061/cros_gralloc/cros_gralloc_module.cc
[modify] https://crrev.com/f028a6fc0dcfe5df2d0e09aba2ccf90c1ee70061/mediatek.c

Project Member

Comment 41 by bugdroid1@chromium.org, Dec 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/0d210f92cc58c5a183896d06bf2fd4548f511b65

commit 0d210f92cc58c5a183896d06bf2fd4548f511b65
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Sat Dec 03 02:15:35 2016

minigbm: cros_gralloc: fix rendernode query

If the vgem driver and a hardware driver are both present on
a machine, and if the vgem driver corresponds to a lower
number rendernode, we'll end up picking the vgem driver. This is
not the desired behavior, so let's fix it.

BUG= chromium:616275 
TEST=mediatek driver loads
CQ-DEPEND=CL:416396

Change-Id: Ib2647f4dbaf3c45fab97bbbcbb94e09c1daa6d5d
Reviewed-on: https://chromium-review.googlesource.com/416397
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/0d210f92cc58c5a183896d06bf2fd4548f511b65/cros_gralloc/cros_gralloc_helpers.cc

Project Member

Comment 42 by bugdroid1@chromium.org, Dec 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/394da64801a18c1d988dc73b047fbbeddecba5c5

commit 394da64801a18c1d988dc73b047fbbeddecba5c5
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Mon Dec 05 17:47:45 2016

minigbm: cros_gralloc: Don't build gbm

Reduces binary size by 4.5 KB.

BUG= chromium:616275 
TEST=arc-cros-gralloc builds
CQ-DEPEND=CL:416398

Change-Id: I0d73373657076ce540726225993e1b6c5bb12ae2
Reviewed-on: https://chromium-review.googlesource.com/416399
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/394da64801a18c1d988dc73b047fbbeddecba5c5/cros_gralloc/Makefile

Project Member

Comment 43 by bugdroid1@chromium.org, Dec 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/54150e89f4453d5edd60c9d3d639b39dd22823b1

commit 54150e89f4453d5edd60c9d3d639b39dd22823b1
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Sat Dec 03 02:28:38 2016

minigbm: cros_gralloc: modify error statements

The error statements now look like what's printed in
Chrome's /var/log/ui/ui.LATEST, which I think looks nice.

BUG= chromium:616275 
TEST=None
CQ-DEPEND=CL:416397

Change-Id: Ide3eb381ac710f016e9d002e4dd5f9e5ab8eda7f
Reviewed-on: https://chromium-review.googlesource.com/416398
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/54150e89f4453d5edd60c9d3d639b39dd22823b1/cros_gralloc/cros_gralloc_helpers.cc
[modify] https://crrev.com/54150e89f4453d5edd60c9d3d639b39dd22823b1/cros_gralloc/cros_gralloc_helpers.h

Project Member

Comment 44 by bugdroid1@chromium.org, Dec 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/9cbb435d984b46da53f59337508dd90737866754

commit 9cbb435d984b46da53f59337508dd90737866754
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Mon Dec 05 19:02:55 2016

minigbm: cros_gralloc: remove unnecessary information from handle

Only include information needed to import in the handle. We
were previously including the address space of another process in
the handle, which is a potential security risk.

BUG= chromium:616275 
TEST=arc-cros-gralloc works on oak, minnie, cyan
CQ-DEPEND=CL:416399

Change-Id: I10230053e305865db0dde26a596403ec0b9e4f4c
Reviewed-on: https://chromium-review.googlesource.com/416400
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/9cbb435d984b46da53f59337508dd90737866754/cros_gralloc/cros_gralloc_handle.h
[modify] https://crrev.com/9cbb435d984b46da53f59337508dd90737866754/cros_gralloc/cros_gralloc.h
[modify] https://crrev.com/9cbb435d984b46da53f59337508dd90737866754/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/9cbb435d984b46da53f59337508dd90737866754/cros_gralloc/cros_gralloc_module.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Dec 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/682d73bd00595a493bd446c5274bef08bd17c096

commit 682d73bd00595a493bd446c5274bef08bd17c096
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Dec 27 18:25:18 2016

minigbm: cros_gralloc: don't fail BO_USE_SW_*_OFTEN | BO_USE_RENDERING allocation

Some camera CTS tests pass down the following usage:

GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_SW_WRITE_OFTEN,

which we convert. Since we generally want to create a tiled buffer when
GRALLOC_USAGE_HW_TEXTURE is specified and tiled buffers are inefficient for
frequent software access, many drivers don't support this combination.

When this occurs, let's drop the BO_USE_RENDERING flag and try the allocation again
with different flags.

BUG= chromium:616275 
TEST=run cts --disable-reboot --class android.hardware.camera2.cts.MultiViewTest
passes on kevin

Change-Id: Id3364edb849fe92d4710c765ed664e8aa4a4738d
Reviewed-on: https://chromium-review.googlesource.com/424318
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/682d73bd00595a493bd446c5274bef08bd17c096/cros_gralloc/cros_alloc_device.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Jan 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/82a8eedaa5d01dea4c244be751e950566dcd274e

commit 82a8eedaa5d01dea4c244be751e950566dcd274e
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Jan 03 21:01:37 2017

minigbm: i915: libdrm-ize backend

With cros_gralloc enabled, the following three CTS tests fail with an i915
backend:

EncodeVirtualDisplayWithCompositionTest#testRendering800x480Locally
EncodeVirtualDisplayWithCompositionTest#testRenderingMaxResolutionRemotely
EncodeVirtualDisplayWithCompositionTest#testVirtualDisplayRecycles

The reason for the failures is the bo_map() function calls
DRM_IOCTL_I915_GEM_MMAP_GTT with untiled buffers, leading to
Surface::dequeueBuffer not completing in time.

In addition, we never set the domain when we map, which can lead to
cache coherency issues.

libdrm already has functions for regular and GTT mapppings, so let's just
add it here rather than duplicating the logic.

TEST=Chrome boots and container boots
     gbmtest, tiled_bo_test, all CTS tests specified in go/arc++gfx pass
BUG= chromium:616275 
CQ-DEPEND=CL:424674

Change-Id: I68943367205abd3b470adb0597109fe30aa3e381
Reviewed-on: https://chromium-review.googlesource.com/424832
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/82a8eedaa5d01dea4c244be751e950566dcd274e/Makefile
[modify] https://crrev.com/82a8eedaa5d01dea4c244be751e950566dcd274e/i915.c

Project Member

Comment 47 by bugdroid1@chromium.org, Jan 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/0bfca8c87ea2e3210272a39f6b993ab67a4d4b09

commit 0bfca8c87ea2e3210272a39f6b993ab67a4d4b09
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Jan 03 22:40:29 2017

media-libs/arc-cros-gralloc: use libdrm_intel

Need this if want to libdrm-ize i915 backend.

TEST=arc-cros-gralloc builds
BUG= chromium:616275 
CQ-DEPEND=CL:424832

Change-Id: I152226a5bee750038082ba7ebb27e0702bc0ad12
Reviewed-on: https://chromium-review.googlesource.com/424674
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/0bfca8c87ea2e3210272a39f6b993ab67a4d4b09/media-libs/arc-cros-gralloc/arc-cros-gralloc-9999.ebuild

Status: Assigned (was: Untriaged)
Project Member

Comment 49 by bugdroid1@chromium.org, Feb 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/6ea14bad3f31e449aa5d01c6b625c6dfe087144b

commit 6ea14bad3f31e449aa5d01c6b625c6dfe087144b
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Sat Feb 18 08:39:28 2017

minigbm: align first plane to 64 bytes

The chroma stride of Android YV12 buffers is required to be
aligned to 16 bytes (see <system/graphics.h>).

Additionally, the size of the ARM L1 cache line is 64-bytes
(see chrome-os-partner:45777).

Let's always align the first plane to 64 bytes. The chroma strides
will be aligned to 32 bytes in that case.

BUG= chromium:616275 
TEST=

ImageReaderDecoderTest#testGoogH264ImageReader

passes on veyron_minnie-cheets.

Change-Id: I87a309ce0612bf8c5be8f8e47dad3da10d61a081
Reviewed-on: https://chromium-review.googlesource.com/441912
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>

[modify] https://crrev.com/6ea14bad3f31e449aa5d01c6b625c6dfe087144b/rockchip.c
[modify] https://crrev.com/6ea14bad3f31e449aa5d01c6b625c6dfe087144b/mediatek.c

Project Member

Comment 50 by bugdroid1@chromium.org, Mar 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/2a30f8a988418fa09cb8748585e397ca5b856f91

commit 2a30f8a988418fa09cb8748585e397ca5b856f91
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Mar 09 06:27:41 2017

minigbm: add BO_USE_TEXTURE

Many people have requested re-adding BO_USE_TEXTURE as a flag
since:

BO_USE_RENDERING means the buffer will be used as a render target.
BO_USE_TEXTURE means the buffer will be textured from.

BUG= chromium:616275 
TEST=minigbm/arc-cros-gralloc compiles

Change-Id: I63be6682cf4e2415dc42c78b2cab3ad694bcd818
Reviewed-on: https://chromium-review.googlesource.com/448251
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/2a30f8a988418fa09cb8748585e397ca5b856f91/drv.h
[modify] https://crrev.com/2a30f8a988418fa09cb8748585e397ca5b856f91/cros_gralloc/cros_gralloc_helpers.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77

commit 6b41fb55deae7d8ae00c33f7ce849d6fd6525d77
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Mar 16 18:25:47 2017

minigbm: rework flag API

We've been back and forth on the semantics of the flag API many
times, and the current situation is confusing.

Change the drivers so every combination defines a distinct type of
buffer. That means if the same format is in the combination list three
times, the tiling or format modifiers of one of those combinations must
be different from the other two.

Let's add a priority variable in struct supported_combination that
breaks ties. For example, if a consumer specifies BO_USE_TEXTURE,
we of course can texture from both linear and tiled buffers, but
because a tiled buffer's priority is greater, it will be chosen.

If a consumer specifies BO_USE_TEXTURE | BO_USE_SW_WRITE_OFTEN, the
tiled combination won't have the BO_USE_SW_WRITE_OFTEN flag and the
linear combination will be chosen.

We expect drivers to modify the combinations after querying KMS.
This is clunky using linked lists, so get rid of list.h and use arrays.

BUG= chromium:616275 
TEST=all the following compiles:

emerge-cyan minigbm/arc-cros-gralloc
emerge-oak minigbm/arc-cros-gralloc
emerge-veyron_minnie-cheets minigbm/arc-cros-gralloc
emerge-peach_pi minigbm
emerge-nyan_big minigbm
emerge-jadeite minigbm

Tested with gbmtest on cyan, checked if Chrome boots

Change-Id: Ib3fccf6f0cb86c8ded45924297df3c06f8e49271
Reviewed-on: https://chromium-review.googlesource.com/448252
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/helpers.h
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/vc4.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/helpers.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/amdgpu.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/gma500.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/marvell.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/vgem.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/gbm.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/tegra.c
[delete] https://crrev.com/4d22b4e285f02adfc65d6ae1d6469a0e13ee12ba/list.h
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/rockchip.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/cirrus.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/nouveau.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/i915.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/udl.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/drv.h
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/drv.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/virtio_gpu.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/evdi.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/drv_priv.h
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/exynos.c
[modify] https://crrev.com/6b41fb55deae7d8ae00c33f7ce849d6fd6525d77/mediatek.c

Project Member

Comment 52 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/4d22b4e285f02adfc65d6ae1d6469a0e13ee12ba

commit 4d22b4e285f02adfc65d6ae1d6469a0e13ee12ba
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Mar 16 18:25:47 2017

minigbm: cros_gralloc: back out of scanout flag with more clarity

We interpret the following flags as GRALLOC_USAGE_HW_COMPOSER
as BO_USE_SCANOUT | BO_USE_RENDERING:

If the combination is not supported by the driver, let's check if
the gralloc flag is present before we back out for clarity.

BUG= chromium:616275 
TEST=compiles

Change-Id: If546ce653f1088cbb1d31cf2f90aba0621ed8b4a
Reviewed-on: https://chromium-review.googlesource.com/451978
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/4d22b4e285f02adfc65d6ae1d6469a0e13ee12ba/cros_gralloc/cros_alloc_device.cc

Project Member

Comment 53 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/de3284909f9bd467b23e0103bc88a8889f5e4601

commit de3284909f9bd467b23e0103bc88a8889f5e4601
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Mar 16 18:25:47 2017

minigbm: cros_gralloc: make HW_FB a no-op

GRALLOC_USAGE_HW_FB is a legacy flag, and doesn't make
sense in our setup.

BUG= chromium:616275 
TEST=compiles

Change-Id: If39634a12ad325b4d28afbd3db335e6ee9e287f6
Reviewed-on: https://chromium-review.googlesource.com/455282
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/de3284909f9bd467b23e0103bc88a8889f5e4601/cros_gralloc/cros_gralloc_helpers.cc

Project Member

Comment 54 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/03f13569eca3ce0acdec5865454f345d53a80fb9

commit 03f13569eca3ce0acdec5865454f345d53a80fb9
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Mar 21 02:30:09 2017

minigbm: add DRM_FORMAT_YVU420_ANDROID

YV12 in <system/graphics.h> in the Android tree defines the
HAL_PIXEL_FORMAT_YV12 as:

     * y_size = stride * height
     * c_stride = ALIGN(stride/2, 16)
     * c_size = c_stride * height/2
     * size = y_size + c_size * 2
     * cr_offset = y_size
     * cb_offset = y_size + c_size

Let's add a special format DRM_FORMAT_YVU420_ANDROID that adheres to these
requirements.

Previously, our y_size on Intel not adhere to the spec. We should
change drv_bo_from_format to calculate the size of plane not based on the
aligned height, but the height that outside world sees.

BUG= chromium:616275 
TEST=
ImageReaderDecoderTest#testGoogH264ImageReader

passes on cyan. Run YT app.

Change-Id: I4906300a0775cf561c4b05bf6d973cf4e82470bc
Reviewed-on: https://chromium-review.googlesource.com/441913
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/helpers.h
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/cros_gralloc/cros_gralloc_helpers.cc
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/rockchip.c
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/helpers.c
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/drv.h
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/cros_gralloc/cros_gralloc_module.cc
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/drv.c
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/mediatek.c
[modify] https://crrev.com/03f13569eca3ce0acdec5865454f345d53a80fb9/i915.c

Project Member

Comment 55 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/507f5ddba23c76e4b4150b488c542b75fcf4d648

commit 507f5ddba23c76e4b4150b488c542b75fcf4d648
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Mar 21 02:30:09 2017

minigbm: i915: align YV12 to HW requirements

As per drm_gralloc we need to:

 (1) align the Y plane to 128 bytes so the chroma planes would be
     aligned to 64 bytes boundaries.
 (2) Have no tiling with YV12.

BUG= chromium:616275 
TEST=DecodeEditEncodeTest#testVideoEdit720p

passes on cyan. Run YT app.

Change-Id: I339163c94d4481991702b8bfd232a70f3a275506
Reviewed-on: https://chromium-review.googlesource.com/456403
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/507f5ddba23c76e4b4150b488c542b75fcf4d648/i915.c

Project Member

Comment 56 by bugdroid1@chromium.org, Mar 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/4f298f9fd2801512199416bbbbb916777179c5b5

commit 4f298f9fd2801512199416bbbbb916777179c5b5
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Thu Mar 30 07:15:53 2017

minigbm: add bytes per pixel function

We were using the drv_stride_from_format as a shorthand to calculate
bytes per pixel. This is incorrect with the addition of
DRM_FORMAT_YVU420_ANDROID, which always aligns to 16 bytes.

Let's have a separate bytes_per_pixel function to better express what
we want.

BUG= chromium:616275 
TEST=android.media.cts.DecodeAccuracyTest
     #testVP9GLViewLargerHeightVideoDecode

passes on veyron_minnie-cheets.

Change-Id: I2d740828d66031c3a032932c09d79dbce21b8986
Reviewed-on: https://chromium-review.googlesource.com/458978
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/4f298f9fd2801512199416bbbbb916777179c5b5/drv.c
[modify] https://crrev.com/4f298f9fd2801512199416bbbbb916777179c5b5/helpers.h
[modify] https://crrev.com/4f298f9fd2801512199416bbbbb916777179c5b5/drv.h
[modify] https://crrev.com/4f298f9fd2801512199416bbbbb916777179c5b5/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/4f298f9fd2801512199416bbbbb916777179c5b5/helpers.c

Project Member

Comment 57 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/4c3aa42a5220d08b9bc06fa15a494b9d25e83507

commit 4c3aa42a5220d08b9bc06fa15a494b9d25e83507
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Mar 31 04:21:54 2017

minigbm: rockchip: align to 128 bytes

cmemp_heap_partition in the mali driver checks if every plane is
64-byte aligned. Since we expose a fd for every plane in the
cros gralloc handle, we hit this case. We need to enforce this
alignment on our YV12 allocations.

BUG= chromium:616275 
TEST=
android.media.cts.VideoEncoderTest#testGoogH264FlexArbitraryH

passes on veyron_minnie-cheets.

Change-Id: If6375eddd18fd216e7f07eb2cc47090d838f82ab
Reviewed-on: https://chromium-review.googlesource.com/459104
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/4c3aa42a5220d08b9bc06fa15a494b9d25e83507/rockchip.c

Project Member

Comment 58 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/eb86a70aa5559362608b16df47b26b12660eca87

commit eb86a70aa5559362608b16df47b26b12660eca87
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Mar 31 17:40:28 2017

minigbm: cros_gralloc: remove memsets

The C++ standard says value initialization results in
zero initialization for structs, so our memsets are
unecessary.

BUG= chromium:616275 
TEST=compiles

Change-Id: I1744b237790cb79d2a8be92beffdb2ee9829f4e2
Reviewed-on: https://chromium-review.googlesource.com/457287
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/eb86a70aa5559362608b16df47b26b12660eca87/cros_gralloc/cros_alloc_device.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/b7538e29a4aebf6d8f091a7c41191f2feacfeb6d

commit b7538e29a4aebf6d8f091a7c41191f2feacfeb6d
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Mar 31 17:40:28 2017

minigbm: cros_gralloc: remove constexpr functions

There's no reason to have these as functions. Also eliminate
sw_write() and sw_read(), the only reason I added them because
I was hitting the 80 column limit (we're 100 columns wide now).

BUG= chromium:616275 
TEST=compiles

Change-Id: If0d406df64dc760f2c007eeecf79874c1deb3ec7
Reviewed-on: https://chromium-review.googlesource.com/457288
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/b7538e29a4aebf6d8f091a7c41191f2feacfeb6d/cros_gralloc/cros_gralloc_helpers.h
[modify] https://crrev.com/b7538e29a4aebf6d8f091a7c41191f2feacfeb6d/cros_gralloc/cros_gralloc_helpers.cc
[modify] https://crrev.com/b7538e29a4aebf6d8f091a7c41191f2feacfeb6d/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/b7538e29a4aebf6d8f091a7c41191f2feacfeb6d/cros_gralloc/cros_gralloc_module.cc

Project Member

Comment 60 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/f1afe32a3de3a87490780d3019ab734b89102bef

commit f1afe32a3de3a87490780d3019ab734b89102bef
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Mar 31 17:40:28 2017

minigbm: cros_gralloc: fix modifier serialization/de-serialization

We were only filling up the first five entries of the modifier array
in the handle, and we were doing it incorrectly. Fix this.

BUG= chromium:616275 
TEST=compiles

Change-Id: I435f88db1b16af919081122a502cbe7d7fc9e3d9
Reviewed-on: https://chromium-review.googlesource.com/457289
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/f1afe32a3de3a87490780d3019ab734b89102bef/cros_gralloc/cros_alloc_device.cc
[modify] https://crrev.com/f1afe32a3de3a87490780d3019ab734b89102bef/cros_gralloc/cros_gralloc_module.cc

Project Member

Comment 61 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/2de66f78ea4a7438ec189ff021f28484bc07b56f

commit 2de66f78ea4a7438ec189ff021f28484bc07b56f
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Apr 04 21:08:14 2017

minigbm: vgem: add more supported formats

The VM-tests in the Android PFQ require this now.

BUG= chromium:616275 
TEST=-cheets_CTSHelper.smoke doesn't crash in a VM

Change-Id: Icd062210852810036ab349af10b350507e1b560b
Reviewed-on: https://chromium-review.googlesource.com/467626
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/2de66f78ea4a7438ec189ff021f28484bc07b56f/vgem.c

Project Member

Comment 62 by bugdroid1@chromium.org, Apr 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/e2b3a0605aee0d9bde24c8167a5adeea1975a869

commit e2b3a0605aee0d9bde24c8167a5adeea1975a869
Author: Gurchetan Singh <gurchetansingh@google.com>
Date: Thu Apr 13 03:22:38 2017

minigbm: virtio-gpu: add more supported formats

There is a desire to use virtio-gpu + Android with kernel v4.4. Let's
make it like the vgem backend, which aligns widths and heights to
64-pixel boundaries to support LLVM requirements.

BUG= chromium:616275 
TEST=no crashes when running Android with amd64-generic-cheets

Change-Id: I5640a0f9cc84260d30eecddd84307170fa41d2ce
Reviewed-on: https://chromium-review.googlesource.com/471879
Commit-Ready: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/e2b3a0605aee0d9bde24c8167a5adeea1975a869/virtio_gpu.c

Status: Verified (was: Assigned)

Sign in to add a comment