OSDN Git Service

android-x86/external-minigbm.git
3 years ago[automerger skipped] Merge Android R am: 25ff66748d -s ours am: bdb6e78844 -s ours...
Xin Li [Fri, 11 Sep 2020 03:33:34 +0000 (03:33 +0000)]
[automerger skipped] Merge Android R am: 25ff66748d -s ours am: bdb6e78844 -s ours am: 49b83e0635 -s ours

am skip reason: Change-Id I8d7971fe52ff43b175a9821c97a6f3c6d380a01d with SHA-1 cf0ceff91e is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1422312

Change-Id: Ib78b87eaf49bac759670fa2beae2e5c26f219484

3 years ago[automerger skipped] Merge Android R am: 25ff66748d -s ours am: bdb6e78844 -s ours
Xin Li [Fri, 11 Sep 2020 02:02:43 +0000 (02:02 +0000)]
[automerger skipped] Merge Android R am: 25ff66748d -s ours am: bdb6e78844 -s ours

am skip reason: Change-Id I8d7971fe52ff43b175a9821c97a6f3c6d380a01d with SHA-1 cf0ceff91e is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1422312

Change-Id: I3ed8261d785984fc5f8f4f2916f232cb12e0e677

3 years ago[automerger skipped] Merge Android R am: 25ff66748d -s ours
Xin Li [Fri, 11 Sep 2020 00:40:16 +0000 (00:40 +0000)]
[automerger skipped] Merge Android R am: 25ff66748d -s ours

am skip reason: Change-Id I8d7971fe52ff43b175a9821c97a6f3c6d380a01d with SHA-1 cf0ceff91e is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1422312

Change-Id: Icd0bcaa5dc0cdc76ee41e699bd4e62b98217e726

3 years agoMerge Android R
Xin Li [Tue, 8 Sep 2020 23:54:40 +0000 (16:54 -0700)]
Merge Android R

Bug: 168057903
Merged-In: I8d7971fe52ff43b175a9821c97a6f3c6d380a01d
Change-Id: Ifc3303bb699d1383828b9f323990bcbf301cffcc

3 years ago[automerger skipped] Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709...
Xin Li [Tue, 1 Sep 2020 21:46:45 +0000 (21:46 +0000)]
[automerger skipped] Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)" into stage-aosp-master am: 27adcfbd75 -s ours am: 041cb9f1a7 -s ours

am skip reason: Change-Id Id6c11d1f63223260f5e71ea00b6499164c019abd with SHA-1 0709f569be is in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/12485062

Change-Id: I1179aebd2cc0df472bdfe99fac272374ff55c660

3 years ago[automerger skipped] Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709...
Xin Li [Tue, 1 Sep 2020 20:37:11 +0000 (20:37 +0000)]
[automerger skipped] Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)" into stage-aosp-master am: 27adcfbd75 -s ours

am skip reason: Change-Id Id6c11d1f63223260f5e71ea00b6499164c019abd with SHA-1 0709f569be is in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/12485062

Change-Id: Ibad2d5483c64a841373c09557e919a016697f106

3 years agoMerge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)" into stage-aosp...
Xin Li [Tue, 1 Sep 2020 20:03:53 +0000 (20:03 +0000)]
Merge "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)" into stage-aosp-master

3 years agoANDROID: Add target/device support am: 8884508fa6 am: cf0ceff91e am: 96f63775f7
Alistair Delva [Tue, 1 Sep 2020 00:59:16 +0000 (00:59 +0000)]
ANDROID: Add target/device support am: 8884508fa6 am: cf0ceff91e am: 96f63775f7

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414810

Change-Id: I9c732f412fd4a470d1f7e2449553ad1054ba61f1

3 years agoANDROID: Add target/device support am: 8884508fa6 am: cf0ceff91e
Alistair Delva [Tue, 1 Sep 2020 00:22:49 +0000 (00:22 +0000)]
ANDROID: Add target/device support am: 8884508fa6 am: cf0ceff91e

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414810

Change-Id: I3f1f78dcdb706c93208e1ff6446b2cafebfb0e7d

3 years agoANDROID: Add target/device support am: 8884508fa6
Alistair Delva [Tue, 1 Sep 2020 00:09:17 +0000 (00:09 +0000)]
ANDROID: Add target/device support am: 8884508fa6

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414810

Change-Id: I8d7971fe52ff43b175a9821c97a6f3c6d380a01d

3 years agoANDROID: Add target/device support
Alistair Delva [Fri, 28 Aug 2020 20:42:24 +0000 (13:42 -0700)]
ANDROID: Add target/device support

Support building libgbm.so for an Android guest.

Change-Id: I1f9d729f847ad9bdd3c8746681e0df00c2107419

3 years agoAvoid pulling libdrm.so from the AOSP host build am: 70742d1caa am: 17c0ca3e53 am...
Alistair Delva [Sat, 29 Aug 2020 17:58:06 +0000 (17:58 +0000)]
Avoid pulling libdrm.so from the AOSP host build am: 70742d1caa am: 17c0ca3e53 am: 410c2cdb08

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414808

Change-Id: I9dad059dd79f0e42b16604b25f14480bdc2ea884

3 years agoAvoid pulling libdrm.so from the AOSP host build am: 70742d1caa am: 17c0ca3e53
Alistair Delva [Sat, 29 Aug 2020 17:42:30 +0000 (17:42 +0000)]
Avoid pulling libdrm.so from the AOSP host build am: 70742d1caa am: 17c0ca3e53

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414808

Change-Id: I253dfb4faa1b38d0e2bb5b16bb1b60f86243008e

3 years agoAvoid pulling libdrm.so from the AOSP host build am: 70742d1caa
Alistair Delva [Sat, 29 Aug 2020 17:26:29 +0000 (17:26 +0000)]
Avoid pulling libdrm.so from the AOSP host build am: 70742d1caa

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1414808

Change-Id: I243a273721b8a45beacfb280bcd89ec39911c64f

3 years agoAvoid pulling libdrm.so from the AOSP host build
Alistair Delva [Fri, 28 Aug 2020 17:28:11 +0000 (10:28 -0700)]
Avoid pulling libdrm.so from the AOSP host build

When binaries depending on minigbm/gbm on the host are linked to it, it
will cause libdrm.so to be taken from the host build done by the Android
build system (i.e. out/host/linux-x86/lib64/libdrm.so), but usually this
library is used with binary GPU drivers that are built out-of-tree, and
they will use the libdrm.so from the host system
(i.e. /usr/lib/x86_64-linux-gnu/libdrm.so.2). As libdrm uses globals to
store things like the ctx hashtable, only one libdrm.so can be loaded
into memory at the same time, or weird crashes in drmClose() and other
drm API functions will occur.

This workaround is only applied to the host "libgbm.so" target, which is
only used by crosvm currently.

Change-Id: Iedcb65d9a031220d8c095fd54a1b967647eb537c

3 years agoMerge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Xin Li [Fri, 28 Aug 2020 01:46:51 +0000 (18:46 -0700)]
Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)

Bug: 166295507
Merged-In: Id6c11d1f63223260f5e71ea00b6499164c019abd
Change-Id: I756978f9fcd81c1ac4d6ac39dd4ade23ee05c443

3 years ago[automerger skipped] Add host build of libgbm.so for crosvm am: 9413c105e4 am: 30d997...
Alistair Delva [Mon, 27 Jul 2020 22:01:20 +0000 (22:01 +0000)]
[automerger skipped] Add host build of libgbm.so for crosvm am: 9413c105e4 am: 30d997f31d -s ours am: a616766046 -s ours

am skip reason: Change-Id I30699c38f958ee03a1b3f8495ecc42e9779f8332 with SHA-1 2c88e76494 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1368796

Change-Id: I534acc55a351de6fe94194de9dba4f55ba43558f

3 years ago[automerger skipped] Add host build of libgbm.so for crosvm am: 9413c105e4 am: 30d997...
Alistair Delva [Mon, 27 Jul 2020 21:48:58 +0000 (21:48 +0000)]
[automerger skipped] Add host build of libgbm.so for crosvm am: 9413c105e4 am: 30d997f31d -s ours

am skip reason: Change-Id I30699c38f958ee03a1b3f8495ecc42e9779f8332 with SHA-1 2c88e76494 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1368796

Change-Id: I9abff193d05dc46d109c08a468a97ff71a212ece

3 years agoAdd host build of libgbm.so for crosvm am: 9413c105e4
Alistair Delva [Mon, 27 Jul 2020 21:39:53 +0000 (21:39 +0000)]
Add host build of libgbm.so for crosvm am: 9413c105e4

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1368796

Change-Id: Ia6539242a93745b32b8c17c547bafcebac5b4254

3 years agoAdd host build of libgbm.so for crosvm am: 2c88e76494
Alistair Delva [Mon, 27 Jul 2020 20:07:27 +0000 (20:07 +0000)]
Add host build of libgbm.so for crosvm am: 2c88e76494

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/12237645

Change-Id: If51f20547b6b73071902ce9c4555424a717bfa3b

3 years agoAdd host build of libgbm.so for crosvm
Alistair Delva [Tue, 21 Jul 2020 19:04:48 +0000 (12:04 -0700)]
Add host build of libgbm.so for crosvm

Build minigbm for the host.

Bug: 161831173
Change-Id: I30699c38f958ee03a1b3f8495ecc42e9779f8332
Merged-In: I30699c38f958ee03a1b3f8495ecc42e9779f8332

3 years agoAdd host build of libgbm.so for crosvm
Alistair Delva [Tue, 21 Jul 2020 19:04:48 +0000 (12:04 -0700)]
Add host build of libgbm.so for crosvm

Build minigbm for the host.

Bug: 161831173
Change-Id: I30699c38f958ee03a1b3f8495ecc42e9779f8332

3 years ago[automerger skipped] cros_gralloc: makes flex format use RGBX am: cbd768f2b3 am:...
Jason Macnak [Mon, 13 Jul 2020 16:31:59 +0000 (16:31 +0000)]
[automerger skipped] cros_gralloc: makes flex format use RGBX am: cbd768f2b3 am: 9f909ad34e -s ours am: 0709f569be -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1359582

Change-Id: Ifd471b1e5e0422d16aecd56df0fcb0f6f92ef4a9

3 years ago[automerger skipped] cros_gralloc: makes flex format use RGBX am: cbd768f2b3 am:...
Jason Macnak [Mon, 13 Jul 2020 16:14:45 +0000 (16:14 +0000)]
[automerger skipped] cros_gralloc: makes flex format use RGBX am: cbd768f2b3 am: 9f909ad34e -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1359582

Change-Id: Id6c11d1f63223260f5e71ea00b6499164c019abd

3 years agocros_gralloc: makes flex format use RGBX am: cbd768f2b3
Jason Macnak [Mon, 13 Jul 2020 16:02:58 +0000 (16:02 +0000)]
cros_gralloc: makes flex format use RGBX am: cbd768f2b3

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1359582

Change-Id: Ie13c165594322fea07b6c946a5b569a14ea81208

3 years agocros_gralloc: makes flex format use RGBX
Jason Macnak [Thu, 9 Jul 2020 20:39:18 +0000 (13:39 -0700)]
cros_gralloc: makes flex format use RGBX

Cuttlefish's current camera hal and emulated camera implementation
assumes that HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED is RGBA.

Note: this will be Android specific change and will not upstream
and this change should be reverted when the new hal and emulated
camera implementation lands.

Bug: b/157902551
Test: cts -m CtsCameraTestCases
Change-Id: Ifb4f37a66e1bc012790b45c7c10d491c039bd58c
Merged-In: I27f020b4f661890bcc2817deb09ffb9af1c76f1b

3 years ago[automerger skipped] cros_gralloc: Fix logging statement format specifier am: b26e66e...
Jason Macnak [Wed, 8 Jul 2020 23:33:55 +0000 (23:33 +0000)]
[automerger skipped] cros_gralloc: Fix logging statement format specifier am: b26e66e866 am: 2530ad5e17 -s ours am: 7332e7e350 -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358924

Change-Id: Id3b31e6687787714054090115d1a14a7b4871257

3 years ago[automerger skipped] cros_gralloc: Fix logging statement format specifier am: b26e66e...
Jason Macnak [Wed, 8 Jul 2020 23:26:48 +0000 (23:26 +0000)]
[automerger skipped] cros_gralloc: Fix logging statement format specifier am: b26e66e866 am: 2530ad5e17 -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358924

Change-Id: Ie812cafe90f864ccbfa3ceb555953c8e28c94465

3 years agocros_gralloc: Fix logging statement format specifier am: b26e66e866
Jason Macnak [Wed, 8 Jul 2020 23:15:05 +0000 (23:15 +0000)]
cros_gralloc: Fix logging statement format specifier am: b26e66e866

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358924

Change-Id: Ifeb5ed4f935d3c3e432290dfec01d5e52aec4ce5

3 years agocros_gralloc: Fix logging statement format specifier
Jason Macnak [Wed, 8 Jul 2020 21:37:28 +0000 (14:37 -0700)]
cros_gralloc: Fix logging statement format specifier

Bug: b/160813623
Test: lunch aosp_x86_64-eng && m
Change-Id: I8101c2f99925d877d14ef8f4cce372e73288bc22
Merged-In: I27f020b4f661890bcc2817deb09ffb9af1c76f1b

3 years ago[automerger skipped] cros_gralloc: set install path in Android.bp am: 410021fde7...
Jason Macnak [Wed, 8 Jul 2020 21:47:47 +0000 (21:47 +0000)]
[automerger skipped] cros_gralloc: set install path in Android.bp am: 410021fde7 am: b63e9ba9e0 -s ours am: 5adb60eebf -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358644

Change-Id: Ica2a30f04529e9d2dcc3aeea506c15ca63e7ee3f

3 years ago[automerger skipped] Merge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9...
Jason Macnak [Wed, 8 Jul 2020 21:47:45 +0000 (21:47 +0000)]
[automerger skipped] Merge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9 am: f034387461 -s ours am: cb6d35f648 -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358643

Change-Id: Idd351d88d44f174445d5faba2adc393ddf4fe4a0

3 years ago[automerger skipped] cros_gralloc: set install path in Android.bp am: 410021fde7...
Jason Macnak [Wed, 8 Jul 2020 21:38:00 +0000 (21:38 +0000)]
[automerger skipped] cros_gralloc: set install path in Android.bp am: 410021fde7 am: b63e9ba9e0 -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358644

Change-Id: I0f2532d0329a36de10d66e4ed8c8b44d7873d249

3 years ago[automerger skipped] Merge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9...
Jason Macnak [Wed, 8 Jul 2020 21:37:58 +0000 (21:37 +0000)]
[automerger skipped] Merge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9 am: f034387461 -s ours

am skip reason: Change-Id I27f020b4f661890bcc2817deb09ffb9af1c76f1b with SHA-1 1476c7ea85 is in history

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358643

Change-Id: I1bf99b0208d389681cf0d88b12dd62003e49507f

3 years agocros_gralloc: set install path in Android.bp am: 410021fde7
Jason Macnak [Wed, 8 Jul 2020 21:20:01 +0000 (21:20 +0000)]
cros_gralloc: set install path in Android.bp am: 410021fde7

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358644

Change-Id: I55adc2b5857f696c7ac6af0f38c9fa09215866d1

3 years agoMerge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9
Jason Macnak [Wed, 8 Jul 2020 21:19:59 +0000 (21:19 +0000)]
Merge 'aosp/upstream-master' into 'aosp/master' am: b337d757c9

Original change: https://android-review.googlesource.com/c/platform/external/minigbm/+/1358643

Change-Id: I8cd59f945e4ce5553510fc0bb14bf5d857ca06b9

3 years agocros_gralloc: set install path in Android.bp
Jason Macnak [Wed, 8 Jul 2020 19:05:51 +0000 (12:05 -0700)]
cros_gralloc: set install path in Android.bp

Upstream change in crrev.com/c/2288141

Bug: b/157902551
Test: run Cuttlefish w/ Minigbm Gralloc0
Merged-In: I27f020b4f661890bcc2817deb09ffb9af1c76f1b
Change-Id: I92bf42f1f7ff82c0c6697f131b01557a5fc94767

3 years agoMerge 'aosp/upstream-master' into 'aosp/master'
Jason Macnak [Wed, 8 Jul 2020 19:03:20 +0000 (12:03 -0700)]
Merge 'aosp/upstream-master' into 'aosp/master'

... to update Minigbm for Cuttlefish to support Gralloc3
on Minigbm.

Bug: b/157902551
Test: m && launch_cvd --gpu_mode=gfxstream
Test: m && launch_cvd --gpu_mode=drm_virgl
Merged-In: I27f020b4f661890bcc2817deb09ffb9af1c76f1b
Change-Id: Ic96add709a99005ff7aa6c7d886e3069b827e4bc

3 years agocros_gralloc: Adds gralloc 3.0 support
Jason Macnak [Fri, 24 Jan 2020 23:05:57 +0000 (15:05 -0800)]
cros_gralloc: Adds gralloc 3.0 support

Implements the allocator 3.0 and mapper 3.0 interfaces
which:

 - Implements HIDL interface directly (older versions
   are wrapped in a passthrough HIDL interface)

 - Adds isSupported() to allow checking for format and
   usage combination support before allocating.

Adds emulated multi-planar buffer support to virtio
backend for non gbm enabled hosts.

Updates cros_gralloc_handle to use uint64_t instead of
two uint32_t for some members.

Updates cros_gralloc_handle to have a single format
modifier.

Replaces Android makefiles with Android bp files.

BUG=b:146515640
TEST=run Cuttlefish w/ gralloc3 and run CTS tests

Change-Id: I43ed9788a2413201bddce17ffb69b76006ef39fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2273554
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>

3 years agominigbm:amdgpu: align height to 16 bit for video buffers
Ikshwaku Chauhan [Mon, 29 Jun 2020 11:14:57 +0000 (16:44 +0530)]
minigbm:amdgpu: align height to 16 bit for video buffers

Currently, allocator used by chrome aligns the height of Encoder/Decoder
buffer while allocator used by android(gralloc/minigbm) doesn't provide
any aligment.Aligned the height for video buffers in minigbm.

BUG=b:153130069
TEST=cheets_CTS_P.x86.CtsVideoTestCases

Signed-off-by: Ikshwaku Chauhan <ikshwaku.chauhan@amd.corp-partner.google.com>
Change-Id: I62a883ca55c07674fab7981af0974277fbd2c5b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2273037
Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Drew Davenport <ddavenport@chromium.org>
Tested-by: Drew Davenport <ddavenport@chromium.org>
Commit-Queue: Drew Davenport <ddavenport@chromium.org>

3 years agoRevert "Revert "amdgpu: Set USWC for SCANOUT images.""
Bas Nieuwenhuizen [Thu, 4 Jun 2020 21:11:27 +0000 (23:11 +0200)]
Revert "Revert "amdgpu: Set USWC for SCANOUT images.""

This reverts commit 91d36976aa84abde87f0f56d235d57042ca3ea81.i

The previous changes should fix the mapping performance with USWC
memory.

original change:
    amdgpu: Set USWC for SCANOUT images.

    This is necessary for scanout from GTT. Without it, the kernel will
    migrate it to the carveout. For large resolutions this would not be
    feasible due to small carveout sizes and hence it is important that
    we alloc scanout from GTT.

    The original patch was on top of
    4eebcea "amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default"
    which set USWC unconditionally, but has since been reverted. The
    main failure reason is being addressed in mesa-amd. This patch also
    still disables USWC if we can and the image will be read often on
    the CPU, to avoid staging textures during memory mapping.

TEST=Run android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing on Grunt.
BUG=b:152378755

Change-Id: Ice0041de6676c057a2659986b962c2d54833e928
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2246025
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

3 years agoamdgpu: Add SDMA copy support.
Bas Nieuwenhuizen [Sat, 20 Jun 2020 01:50:34 +0000 (03:50 +0200)]
amdgpu: Add SDMA copy support.

For SCANOUT images we need to use USWC memory. However USWC
memory is very slow to read from (~25 MiB/second).

At the same time for video decoding there are some images
that are allocated with SCANOUT but at the same time frequently
accessed from the CPU. Just mapping these is going to result
in non-satisfactory performance, so this patch adds a DMA step
to copy it to memory that is faster to acces from the CPU.

Benchmarked on Grunt with
android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing

The time that an image (~500 KiB) is kept mapped for processing,
including the time for mapping and unmapping:

plain GTT (cachaeable):  1.5-2 ms
USWC:                    45-50 ms
USWC w/ memcpy:          20-30 ms
USWC w/ SDMA copy:       3.5-5.5 ms

We can clearly see that the Android video processing code only gets
a throughput of ~10 MiB/s with USWC memory. memcpy is slightly more
efficient by getting 20-30 MiB/s, but neither of these are suitable
for 30+ fps video.

Furthermore, with SDMA copy, the timing is roughly as follows:

map:
  - Allocate plain GTT BO:        ~400-800 us
  - map src & dst BO into GPU VM: ~25 us
  - submit SDMA copy:             ~80 us
  - wait till SDMA copy finishes: ~400 us
  - unmap src & dst BO from GPU:  ~15 us
  - map dst BO into CPU:          ~30 us

unmap:
  - unmapping dst BO from CPU:    ~30 us
  - Copy not benchmarked (avoided for RO map)
  - delete BO:                    ~100 us

ideas for further improvement:
  - BO cache
  - rely on implicit sync and don't wait for the copy during
    unmapping.

Alternatives that have been rejected:
  - Use radeonsi + DRI interface: each plane gets mapped into
    its own BO, which is an issue for gralloc.
  - more persistently mapping each BO into GPU VM: this needs
    proper address space management which adds complexity.
    librm_amdgpu can do it for us but brings its own can of worms
    with dedup of the drm fd. (which makes e.g. implicit sync not
    work with any radeonsi instances in the same process)
  - Use SDMA instead of DRI/Radeonsi for more images. This is an
    issue because SDMA for images is a whole mess with lots of
    corner cases and lots of changes per generation. Furthermore,
    it wouldn't work for DCC compressed images.

TEST=Run android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing on Grunt.
BUG=b:152378755

Change-Id: I8f5e00ff4b6d9e31f78fd4de7eb62d0d3aa66438
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2256228
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

3 years agoModify NV12 allowed buffer usages for camera capture use case
Hirokazu Honda [Tue, 23 Jun 2020 08:52:20 +0000 (17:52 +0900)]
Modify NV12 allowed buffer usages for camera capture use case

We use SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE for camera
capture use scenario in Chrome. Therefore, NV12 format must be
allowed for all those usage masks. This CL modifies the usages on
all platforms.

BUG=chromium:982201
TEST=video.EncodeAccel.vp8_720p_i420 on eve

Change-Id: I7880e64049f3bbf9dd1c177619e41362baf641f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2240995
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Hirokazu Honda <hiroh@chromium.org>
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>

3 years agominigbm: virtio-gpu: Remove offset log message
Matthias Springer [Mon, 22 Jun 2020 01:05:22 +0000 (10:05 +0900)]
minigbm: virtio-gpu: Remove offset log message

When running the Zoom Android client, "Non-zero transfer offset" was
printed in the logs. We now know for sure that we encounter this case in
the wild, thus removing the log message.

BUG=none
TEST=build minigbm manually

Change-Id: I1a536df50996e5218548fb097543566affa9af3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2255931
Tested-by: Matthias Springer <springerm@chromium.org>
Auto-Submit: Matthias Springer <springerm@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Matthias Springer <springerm@chromium.org>

3 years agoRemove HW_VIDEO_ENCODER usage of YVU420
Hirokazu Honda [Tue, 16 Jun 2020 06:28:56 +0000 (15:28 +0900)]
Remove HW_VIDEO_ENCODER usage of YVU420

minigbm has allowed HW_VIDEO_ENCODER usage to YVU420 so that
chrome can allocate YVU420 with HW_VIDEO_ENCODER. But this
format is no longer allocated by chrome with the usage. Let's
delete the code.

BUG=chromium:982201
TEST=None

Change-Id: Ia6bbc24e7782e3e73c2eb00c00127af212ddf486
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2245967
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Tested-by: Hirokazu Honda <hiroh@chromium.org>
Auto-Submit: Hirokazu Honda <hiroh@chromium.org>

3 years agominigbm: add encoder/decoder blob combination
David Stevens [Mon, 15 Jun 2020 04:48:48 +0000 (13:48 +0900)]
minigbm: add encoder/decoder blob combination

ARCVM sets encoder/decoder usage on the blob output/input buffers, so
that virtio_gpu knows to perform transfers from/to the host where
appropriate. Recently, virtio_gpu started passing all bind flags to the
host, instead of reducing them in the guest. These factors combined
means that the host backends now need to support encoder/decoder usage
with R8 format.

Test: manually verify ARCVM YouTube
Bug: b:158957350
Change-Id: I58bf657496647f8002c693d17a1186f4cf527b01
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2245540
Tested-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>

3 years agogralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d am: eefde98531
Jason Macnak [Thu, 11 Jun 2020 22:32:44 +0000 (22:32 +0000)]
gralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d am: eefde98531

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/11817987

Change-Id: I6fe35969d638395aef1e5e613534ff6661993036

3 years agogralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d am: a07fb5901a
Jason Macnak [Thu, 11 Jun 2020 22:32:24 +0000 (22:32 +0000)]
gralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d am: a07fb5901a

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/11817987

Change-Id: Ic2e66c7ce27fc07a3e202d4e31e615823a4856ca

3 years agogralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d
Jason Macnak [Thu, 11 Jun 2020 22:20:45 +0000 (22:20 +0000)]
gralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/11817987

Change-Id: I5cba8e31b5ff2636bcf7b0579531d787b585f1b8

3 years agogralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d
Jason Macnak [Thu, 11 Jun 2020 22:20:34 +0000 (22:20 +0000)]
gralloc: Use YVU420_ANDROID for YCbCr flex am: 06d77b4e7d

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/minigbm/+/11817987

Change-Id: Iea468f3f71e885dd2826188f3b09c07d34b5c6f0

3 years agogralloc: Use YVU420_ANDROID for YCbCr flex
Jason Macnak [Thu, 11 Jun 2020 05:39:06 +0000 (22:39 -0700)]
gralloc: Use YVU420_ANDROID for YCbCr flex

... to fix camera preview.

Bug: b/146515640
Bug: b/158703419
Test: manually open default camera app
Test: manually open TestingCamera app
Change-Id: Ice550649c5fa125cc09394bd17ad8a5f9c4ed2fa

3 years agominigbm: virtio_gpu: add BO_USE_HW_VIDEO_ENCODER usage to R8 format.
David Staessens [Thu, 28 May 2020 06:47:15 +0000 (15:47 +0900)]
minigbm: virtio_gpu: add BO_USE_HW_VIDEO_ENCODER usage to R8 format.

This combination will be used by ARCVM for video encoder bitstream
blobs. Minigbm uses the usage flags to determine whether it needs to
transfer data to/from the host, and whether that transfer needs to be
synchronous. BO_USE_HW_VIDEO_ENCODER needs to be set on the encoder's
output buffers so that minigbm knows that the host modifies the buffer,
so that minigbm transfers the data to the guest.

BUG=b:143570994
TEST=emerge-$BOARD minigbm arc-cros-gralloc

Change-Id: I05eb35d7b68092138c337c0e7fc43f60dd1bc32d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2217833
Tested-by: David Staessens <dstaessens@chromium.org>
Commit-Queue: David Staessens <dstaessens@chromium.org>
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
3 years agominigbm: virtio_gpu: use expanded bind flags
David Stevens [Fri, 15 May 2020 05:15:35 +0000 (14:15 +0900)]
minigbm: virtio_gpu: use expanded bind flags

Pass more bind flags from minigbm to virglrenderer. This is necessary to
handle cases where special alignment/padding is required for certain
use cases. For example, jpeg camera recording on mediatek requires extra
padding. Minigbm adds this due to BO_USE_HW_VIDEO_ENCODER, so that flag
must be properly passed from virtio_gpu to host minigbm.

BUG: b:151197279
TEST: verify that ArcCameraFpsTest recording works on kukui

Change-Id: Ie2871b37ca468930abe41738ed0ee4fad0f4cf1b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2203164
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: David Stevens <stevensd@chromium.org>
Tested-by: David Stevens <stevensd@chromium.org>
3 years agominigbm/msm: Add DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED for msm
Douglas Anderson [Tue, 19 May 2020 17:12:14 +0000 (10:12 -0700)]
minigbm/msm: Add DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED for msm

It seems to be tradition to copy a bit of code into the
resolve_format() function for everyone.  The msm driver isn't one to
break from tradition, so we'll adopt this code fragment too.

BUG=b:154782445
TEST=Hangout

Change-Id: I9e8eaf0c5a8485afea82437fd7249e24e5509b5e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2209178
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
3 years agogralloc4: adds gralloc4 support am: 1476c7ea85 am: 06937a2a57
Marissa Wall [Fri, 29 May 2020 19:18:17 +0000 (19:18 +0000)]
gralloc4: adds gralloc4 support am: 1476c7ea85 am: 06937a2a57

Change-Id: Id24f09a864db2b9b78a80aeef5625754849cb3bf

3 years agogralloc4: adds gralloc4 support am: 1476c7ea85 am: b2ccef119d
Marissa Wall [Fri, 29 May 2020 19:18:05 +0000 (19:18 +0000)]
gralloc4: adds gralloc4 support am: 1476c7ea85 am: b2ccef119d

Change-Id: I1597e1e805faeb5fcaaa73d452be28d313a6b23c

3 years agogralloc4: adds gralloc4 support am: 1476c7ea85
Marissa Wall [Fri, 29 May 2020 19:04:54 +0000 (19:04 +0000)]
gralloc4: adds gralloc4 support am: 1476c7ea85

Change-Id: I4a241480e9f397d4cd9869e72c35ba7a00ae615f

3 years agogralloc4: adds gralloc4 support am: 1476c7ea85
Marissa Wall [Fri, 29 May 2020 19:04:21 +0000 (19:04 +0000)]
gralloc4: adds gralloc4 support am: 1476c7ea85

Change-Id: I88b8fa28c41bd0918740a4775a85477d0bdcf43d

3 years agogralloc4: adds gralloc4 support
Marissa Wall [Fri, 24 Jan 2020 23:05:57 +0000 (15:05 -0800)]
gralloc4: adds gralloc4 support

Implements the Allocator 4.0 and Mapper 4.0 interfaces.

Some notable features of the 4.0 interface:
- buffer metadata getter/setters
- buffer flushing
- buffer debugging (buffer listing and buffer id)

Exempt-From-Owner-Approval: OWNERS.android is not being parsed

Bug: b/146515640
Test: m && launch_cvd
Test: m && launch_cvd --gpu_mode=drm_virgl
Change-Id: I27f020b4f661890bcc2817deb09ffb9af1c76f1b

3 years agominigbm: virtio_gpu: fill transfer offset
Gurchetan Singh [Tue, 5 May 2020 16:18:22 +0000 (09:18 -0700)]
minigbm: virtio_gpu: fill transfer offset

virglrenderer expects info->offset to be non-zero when a subregion
of the buffer is transferred.  Interestingly enough, minigbm doesn't
seem to hit that case in my (limited) testing.  Fill the transfer
offset and add logging statements.  Maybe we could fail on that case
if we don't encounter it in the wild.

BUG=none
TEST=manual testing with betty

Change-Id: I2f3afaff373777fb8808a0bea169be491d864d1a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2182791
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>

3 years agoi915: Avoid using y-tiling on huge buffer objects
Sean Paul [Tue, 19 May 2020 14:17:07 +0000 (10:17 -0400)]
i915: Avoid using y-tiling on huge buffer objects

<= GEN11 i915 devices can't scan out Y-tiled buffers greater than 4096
in width. This patch downgrades these huge buffers to X-tiled which can
be scanned out.

BUG=b:151166605
BUG=chromium:988091
TEST=Tested with hatch on Samsung CRG9 5k display

Change-Id: I9f83ab1f9d1f2a254ca0ae7028c138f87be378eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2207670
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Robert Tarasov <tutankhamen@chromium.org>
Tested-by: Sean Paul <seanpaul@chromium.org>
Auto-Submit: Sean Paul <seanpaul@chromium.org>
Commit-Queue: Sean Paul <seanpaul@chromium.org>

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0 am: f34ea21c12
Jason Macnak [Wed, 20 May 2020 07:08:02 +0000 (07:08 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0 am: f34ea21c12

Change-Id: Ie99416047d4de9960f39e4d48711a9e6246ebf69

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0 am: d25b8b1f3d
Jason Macnak [Wed, 20 May 2020 07:07:46 +0000 (07:07 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0 am: d25b8b1f3d

Change-Id: Iae36ceaf58eddbc06086fcbea9d9be370c3f5bdf

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0
Jason Macnak [Wed, 20 May 2020 06:34:54 +0000 (06:34 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0

Change-Id: Iab41f5c23682063d7c453ccc1f3630f19ad6a4bb

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0
Jason Macnak [Wed, 20 May 2020 06:34:38 +0000 (06:34 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3d804156b0

Change-Id: Ic142c36eefae4c9104fb0952f69328cf3b92e4c2

3 years agoMerge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7 am: 702c5561af am...
Jason Macnak [Tue, 19 May 2020 16:48:39 +0000 (16:48 +0000)]
Merge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7 am: 702c5561af am: 21229dade5

Change-Id: Ifd2df39c17b3acd2b5b7a78296caf088ca750449

3 years agoMerge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7 am: 702c5561af
Jason Macnak [Tue, 19 May 2020 16:30:02 +0000 (16:30 +0000)]
Merge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7 am: 702c5561af

Change-Id: I8db9f66059bba42a1f15dbeb8327e7184360f03f

3 years agoMerge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7
Jason Macnak [Tue, 19 May 2020 16:20:10 +0000 (16:20 +0000)]
Merge 'aosp/upstream-master' into 'aosp/master' am: 01b2926cf7

Change-Id: Ib55889bc29919cf571406f1e1563fa0c34c7bbf7

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev'
Jason Macnak [Tue, 19 May 2020 16:14:33 +0000 (09:14 -0700)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev'

... to merge in http://crrev.com/c/2171157 which
is needed for Cuttlefish on Minigbm Gralloc 4.

Also adds OWNERS.android to avoid merge conflicts
with upstream OWNERS file.

Bug: b/146515640
Test: launch_cvd
Test: launch_cvd --gpu_mode=drm_virgl
Change-Id: Ic3b0812c7c35cc99fc96d3bdd3b8f811fb1507f5

3 years agoMerge 'aosp/upstream-master' into 'aosp/master'
Jason Macnak [Mon, 18 May 2020 19:05:53 +0000 (12:05 -0700)]
Merge 'aosp/upstream-master' into 'aosp/master'

... to merge in http://crrev.com/c/2171157 which
is needed for Cuttlefish on Minigbm Gralloc 4.

Also adds OWNERS.android to avoid merge conflicts
with upstream OWNERS file.

Bug: b/146515640
Test: launch_cvd
Test: launch_cvd --gpu_mode=drm_virgl
Change-Id: I6dafb814cc47e3193439cc10af74a0099962813e

3 years agominigbm: Fix cast to avoid null pointer arithmetic
Jason Macnak [Thu, 14 May 2020 17:57:17 +0000 (10:57 -0700)]
minigbm: Fix cast to avoid null pointer arithmetic

'external/minigbm/cros_gralloc/gralloc0/gralloc0.cc:417:50:
error: arithmetic on a null pointer treated as a cast from
integer to pointer is a GNU extension'

BUG=b:146515640
TEST=m gralloc.minigbm

Change-Id: I2e86b676224657bdb656a45db4cfa49e84b61c2d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2202518
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Jason Macnak <natsu@google.com>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>

3 years agominigbm: virtio_gpu: add BO_USE_HW_VIDEO_DECODER usage to R8 format.
Chih-Yu Huang [Thu, 7 May 2020 02:54:24 +0000 (11:54 +0900)]
minigbm: virtio_gpu: add BO_USE_HW_VIDEO_DECODER usage to R8 format.

This combination will be used by ARCVM for video decoder bitstream
blobs.

BUG=b:156442659
TEST=run e2e test with C2VDAComponent

Change-Id: Iad978f659c0a8edf3279b303794c2b840446be31
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2189994
Reviewed-by: Keiichi Watanabe <keiichiw@chromium.org>
Reviewed-by: David Stevens <stevensd@chromium.org>
Auto-Submit: Chih-Yu Huang <akahuang@chromium.org>
Commit-Queue: Chih-Yu Huang <akahuang@chromium.org>
Tested-by: Chih-Yu Huang <akahuang@chromium.org>
3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca am: dc1fc36823
Jason Macnak [Wed, 6 May 2020 22:28:45 +0000 (22:28 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca am: dc1fc36823

Change-Id: I8de03f327e9f12bb6bff0481497d93a1dc49b8c3

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca am: 273579e674
Jason Macnak [Wed, 6 May 2020 22:27:42 +0000 (22:27 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca am: 273579e674

Change-Id: I141b20f77f5b87ec2d8003e09e7025e8958d1159

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca
Jason Macnak [Wed, 6 May 2020 22:14:47 +0000 (22:14 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca

Change-Id: I07b7abc10695e968b769ffacabecf1cbdb4bb55f

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca
Jason Macnak [Wed, 6 May 2020 22:14:28 +0000 (22:14 +0000)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev' am: 3c53003fca

Change-Id: I66239555d0d08f4b4006f762b29fb94e09cb14d6

3 years agoMerge 'goog/mirror-aosp-master' into 'goog/rvc-dev'
Jason Macnak [Wed, 6 May 2020 20:38:12 +0000 (13:38 -0700)]
Merge 'goog/mirror-aosp-master' into 'goog/rvc-dev'

... to cherry-pick aosp/1252358 into rvc-dev for gralloc 4
changes.

Bug: b/146515640
Test: m && launch_cvd
Change-Id: I09be0f84945557878ffdf56b2579dba2879d1b50

3 years agoFix YV12 dumb buffer plane sizes
Jason Macnak [Tue, 28 Apr 2020 18:21:16 +0000 (11:21 -0700)]
Fix YV12 dumb buffer plane sizes

Allocating a 1280x720 YUV420 (YV12) buffer results in
calling the create dumb ioctl with 1280x1080 and results
in a file with size 1384448
(1280 * 1080 = 1382400, ALIGN(1382400, 4096) = 1384448).

The existing code calls drv_bo_from_format with the
aligned height of 768 which results in oversized planes
totaling a size of 1474560 bytes. This ultimately leads
to segfaults when running past the end of the mapped
file.

Because the dumb buffer iotcl height is computed using
the buffer's unaligned height (bo->meta.height), the
call to drv_bo_from_format should use the unaligned
height as well.

BUG=b:146515640
TEST=cts android.media.cts.EncodeDecodeTest

Change-Id: I40893cf92caa9d35a89d21a3512604f361822222
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2171157
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>

4 years agoRevert "amdgpu: Set USWC for SCANOUT images."
Bas Nieuwenhuizen [Mon, 27 Apr 2020 19:59:29 +0000 (19:59 +0000)]
Revert "amdgpu: Set USWC for SCANOUT images."

This reverts commit d2c28439190dbf1ab678a4dae5aa23dada7808bd.

Reason for revert: b/55018529: broke android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing and fixing it is non-trivial

Original change's description:
> amdgpu: Set USWC for SCANOUT images.
>
> This is necessary for scanout from GTT. Without it, the kernel will
> migrate it to the carveout. For large resolutions this would not be
> feasible due to small carveout sizes and hence it is important that
> we alloc scanout from GTT.
>
> The original patch was on top of
4eebcea "amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default"
> which set USWC unconditionally, but has since been reverted. The
> main failure reason is being addressed in mesa-amd. This patch also
> still disables USWC if we can and the image will be read often on
> the CPU, to avoid staging textures during memory mapping.
>
> BUG=b:153247881
> TEST=Run CtsCameraTestCases on Grunt.
>      4k YouTube video p/b
>
> Change-Id: If6393e60cea5d2a98a052d7c46604e0012de0618
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2134451
> Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
> Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

Bug: b:153247881
Change-Id: I395798c637ab10a2cf2a2a65a3a418a18feb2310
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2167399
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

4 years agominigbm: synaptics: add texture source format support
Min Zhao [Tue, 14 Apr 2020 22:51:04 +0000 (15:51 -0700)]
minigbm: synaptics: add texture source format support

BUG=b:152384632
TEST=Test by making DUO video call

Change-Id: I2c7920652ab48699a66aedc11f56f44aea9d1c4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2162517
Tested-by: Daniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
4 years agoamdgpu: Set USWC for SCANOUT images.
Bas Nieuwenhuizen [Mon, 6 Apr 2020 16:50:24 +0000 (18:50 +0200)]
amdgpu: Set USWC for SCANOUT images.

This is necessary for scanout from GTT. Without it, the kernel will
migrate it to the carveout. For large resolutions this would not be
feasible due to small carveout sizes and hence it is important that
we alloc scanout from GTT.

The original patch was on top of
4eebcea "amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default"
which set USWC unconditionally, but has since been reverted. The
main failure reason is being addressed in mesa-amd. This patch also
still disables USWC if we can and the image will be read often on
the CPU, to avoid staging textures during memory mapping.

BUG=b:153247881
TEST=Run CtsCameraTestCases on Grunt.
     4k YouTube video p/b

Change-Id: If6393e60cea5d2a98a052d7c46604e0012de0618
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2134451
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

4 years agoSort OWNERS and add ihf.
Ilja H. Friedel [Fri, 17 Apr 2020 22:50:41 +0000 (15:50 -0700)]
Sort OWNERS and add ihf.

BUG=None.
TEST=None.

Change-Id: Id3efc609c23f71b1170ff6c50ef018693425f044
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2154052
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Ilja H. Friedel <ihf@chromium.org>

4 years agoRemove i915_FORMAT_MOD_Y_TILED_CCS from modifier_order
Mark Yacoub [Fri, 17 Apr 2020 20:27:48 +0000 (16:27 -0400)]
Remove i915_FORMAT_MOD_Y_TILED_CCS from modifier_order

Revert adding i915_FORMAT_MOD_Y_TILED_CCS to the modifiers options.
Reason for revert: Devices with internal 4K displays aren't able to drive external 4K monitors as well.

(This is a partial revert of crrev.com/c/2044490)

BUG=chromium:979736,b:153731006

Change-Id: I40a0c686ee348f94e25b399b9ab91d4d6d377bc5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2154983
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Tested-by: Mark Yacoub <markyacoub@google.com>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Mark Yacoub <markyacoub@google.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Mark Yacoub <markyacoub@google.com>
Commit-Queue: Ilja H. Friedel <ihf@chromium.org>
Commit-Queue: Matthew Blecker <matthewb@chromium.org>

4 years agoRevert "amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default"
Jao-ke Chin-Lee [Fri, 10 Apr 2020 00:12:12 +0000 (00:12 +0000)]
Revert "amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default"

This reverts commit 4eebcea0cc53e385f715730e883963e86761a2f9.

Reason for revert: Broke tast.video.DecodeAccel.*.h264_resolution_switch on grunt

Original change's description:
> amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default
>
> amdgpu kernel driver requires USWC flag for allowing bo
> allocation in GTT domain, hence enable it by default.
>
> BUG=b:152378755
> TEST=On Dali play 4k YouTube video
>
> Signed-off-by: Shirish S <shirish.s@amd.com>
> Change-Id: Ic509701f683d184d3fb85b7616dc9a7ed467cfe3
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2128147
> Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
> Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
> Reviewed-by: Drew Davenport <ddavenport@chromium.org>

Bug: b:152378755
Change-Id: If382833a741faa5462df841cc801e60fd9fca77a
Exempt-From-Owner-Approval: revert.
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2145078
Tested-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Jao-ke Chin-Lee <jchinlee@google.com>
4 years ago[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp...
Xin Li [Fri, 10 Apr 2020 03:56:42 +0000 (03:56 +0000)]
[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: f8aa9be293 -s ours am: 445db39e86

Change-Id: Ia1a87aba9e53926e09b8dbdc163e47c6697f85c9

4 years ago[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp...
Xin Li [Fri, 10 Apr 2020 03:17:13 +0000 (03:17 +0000)]
[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: f8aa9be293 -s ours

am skip reason: subject contains skip directive

Change-Id: I9c49dae1deb812561ed556e317c8434e306c494a

4 years agoDO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master
Xin Li [Fri, 10 Apr 2020 00:50:49 +0000 (17:50 -0700)]
DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master

Bug: 151763422
Change-Id: Ie120bc3c42cef98e182f13c8ef23a15a1e291710

4 years agoamdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default
Shirish S [Tue, 31 Mar 2020 10:35:33 +0000 (16:05 +0530)]
amdgpu: make AMDGPU_GEM_CREATE_CPU_GTT_USWC flag default

amdgpu kernel driver requires USWC flag for allowing bo
allocation in GTT domain, hence enable it by default.

BUG=b:152378755
TEST=On Dali play 4k YouTube video

Signed-off-by: Shirish S <shirish.s@amd.com>
Change-Id: Ic509701f683d184d3fb85b7616dc9a7ed467cfe3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2128147
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
Reviewed-by: Drew Davenport <ddavenport@chromium.org>
4 years agominigbm: virtgpu: refactor virtgpu features
Gurchetan Singh [Fri, 13 Sep 2019 00:26:45 +0000 (17:26 -0700)]
minigbm: virtgpu: refactor virtgpu features

This way, we can call the GET_PARAM ioctl in a loop.

BUG=chromium:924405
TEST=compile

Change-Id: I74359b758a864d72bdec04b7741bbe9e2b466f1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2133073
Reviewed-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Lepton Wu <lepton@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Lepton Wu <lepton@chromium.org>

4 years agominigbm: add resource_info callback for virtio-gpu
Gurchetan Singh [Fri, 28 Jun 2019 03:05:54 +0000 (20:05 -0700)]
minigbm: add resource_info callback for virtio-gpu

In ARC++, the wayland sevice and the video stack rely on
GRALLOC_DRM_GET_STRIDE and (*lock_ycbcr) with zero flags to return
the metadata associated with the buffer.

In the past, we've simply returned the metadata that was calculated
during allocation.

Since the current virtio-gpu API relies on shadow buffers, there's
actually two different sets of metadata:

1) The metadata of the shadow buffer --> useful for mapping
2) The metadata of the host resource --> useful for passing to Chrome

For the wayland_service and video stack, we want to return (2).
For the Android framework, we want to return (1).

BUG=b:132939420
TEST=compile

Change-Id: I1134d651396ba68e064eaf2e3cad3cb3225d7c5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/1681383
Reviewed-by: David Stevens <stevensd@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
4 years agodrm/virtgpu: add header
Gurchetan Singh [Thu, 6 Feb 2020 02:18:52 +0000 (18:18 -0800)]
drm/virtgpu: add header

It's useless to try to keep up with a evolving UAPI, so just add it
here temporarily.

Change-Id: I18671f64cdf28af829fef1124f9f93cb4ffddcb4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2003266
Reviewed-by: David Stevens <stevensd@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>

4 years agominigbm: mediatek: fix SCANOUT flag
Gurchetan Singh [Tue, 24 Mar 2020 20:53:51 +0000 (13:53 -0700)]
minigbm: mediatek: fix SCANOUT flag

All renderer target works are eligible for scanout, after looking
at mtk_plane_init.

BUG=b:151064316
TEST=Mirror mode works again on Kukui

Change-Id: Ife8948c167c1d75622404af573f8cc92b3516416
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2118463
Reviewed-by: David Stevens <stevensd@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>

4 years agominigbm: add synaptics gbm driver
Leona Chou [Thu, 19 Mar 2020 07:06:12 +0000 (15:06 +0800)]
minigbm: add synaptics gbm driver

Change the ozone platform from cast to drm
add synaptics gbm driver for buffer management.

BUG=b:152384632
TEST=use chromecast ui to verify drm
TEST=use ozone_demo app to verify drm

Change-Id: I9dff03e6b522ee84e34cbbcb28a40ca7857c4168
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2108458
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Daniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>

4 years agoRemove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327 am: e9ecf65fb0
Bob Badour [Thu, 26 Mar 2020 06:31:44 +0000 (06:31 +0000)]
Remove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327 am: e9ecf65fb0

Change-Id: I28d960ae88e74b55ebe6b55ff909a75d93556db6

4 years agoRemove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327
Bob Badour [Thu, 26 Mar 2020 06:18:54 +0000 (06:18 +0000)]
Remove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327

Change-Id: Ic34ad220b9351e32222043d72cf398afc4eb06c9

4 years agoRemove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327
Bob Badour [Thu, 26 Mar 2020 06:18:48 +0000 (06:18 +0000)]
Remove redundant NOTICE copied from LICENSE. am: 6124269123 am: 3374b31327

Change-Id: I0ed1dd49cb0e5146ed623fddc4e6a45893704633

4 years agoRemove redundant NOTICE copied from LICENSE. am: 6124269123
Bob Badour [Thu, 26 Mar 2020 06:08:12 +0000 (06:08 +0000)]
Remove redundant NOTICE copied from LICENSE. am: 6124269123

Change-Id: I51659aff4abeb40ef86658d898b56d5ff8ae2e3f

4 years agoRemove redundant NOTICE copied from LICENSE.
Bob Badour [Thu, 26 Mar 2020 01:56:41 +0000 (18:56 -0700)]
Remove redundant NOTICE copied from LICENSE.

Identified using the below shell script:

$ find -H . -name LICENSE -type f -print0 | xargs -0 dirname \
  | while read dir; do \
    if [ -f "${dir}/NOTICE" ] \
        && diff "${dir}/LICENSE" "${dir}/NOTICE" >/dev/null; then \
      echo "${dir}/NOTICE"; \
    fi; \
  done

Now that http://r.android.com/r/1235427 and http://r.android.com/r/1238719 are
merged, LICENSE files copied into NOTICE files are no longer needed.

Bug: 67772237
Bug: 68860345

Test: manually built and diffed before and after system image notices
Change-Id: I09ef28a103ff9f4b186f4a977cfb66ae63ca01e1

4 years agoAdd more scanout formats to meson driver
Daniel Nicoara [Tue, 24 Mar 2020 23:24:43 +0000 (19:24 -0400)]
Add more scanout formats to meson driver

BUG=None
TEST=Allocated AB24 buffers with scanout bit to validate it works.

Change-Id: I415026034e2dd1598d519f00ef4e075731d28074
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2118939
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Daniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Daniel Nicoara <dnicoara@chromium.org>

4 years agominigbm: run presubmit.sh, modify OWNERs
Gurchetan Singh [Tue, 24 Mar 2020 20:48:54 +0000 (13:48 -0700)]
minigbm: run presubmit.sh, modify OWNERs

BUG=none
TEST=none

Change-Id: I07ae6fa603117f16dee39b1b7e9ca3162daa0c97
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/2118462
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>