Commit graph

693 commits

Author SHA1 Message Date
Yiwei Zhang
7b3cbeabbb drv/virtgpu: add log level for logging
Harmless initialization logging should be info instead of error.

TEST=build and check logcat
BUG=b:234143058

Change-Id: I41ff39b428feb85d01663eec74b3f826007337c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3759415
Commit-Queue: Dominik Behr <dbehr@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Jason Macnak <natsu@google.com>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-07-14 08:48:27 +00:00
Chia-I Wu
52be91e21b virtgpu_crossdomain: add BO_USE_GPU_DATA_BUFFER to DRM_FORMAT_R8
It is used for AHBs that are SSBOs/UBOs.  But I noticed this mainly
because venus's test allocation uses this as well when
VK_ANDROID_external_memory_android_hardware_buffer is enabled.

BUG=b:238663100
TEST=ANGLE

Change-Id: I72bdc73e1afdcb3f23667a77bc892e8402f25188
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3749168
Auto-Submit: Chia-I Wu <olv@google.com>
Commit-Queue: Chia-I Wu <olv@google.com>
Tested-by: Chia-I Wu <olv@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-07-12 17:44:53 +00:00
Rob Clark
fbf1bd96cc virtgpu_crosdomain: Add camera use flags for NV12
BUG=b:238098098
TEST=cts-tradefed run cts -m CtsGraphicsTestCases -t android.graphics.cts.CameraGpuTest#testCameraImageCaptureAndRendering

Change-Id: Id224a2835975597306e2ee48b3c4dc7b2519b229
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3748699
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Rob Clark <robdclark@chromium.org>
Commit-Queue: Dominik Behr <dbehr@chromium.org>
Tested-by: Rob Clark <robdclark@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Rob Clark <robdclark@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-07-07 04:15:10 +00:00
Juston Li
e18552ac71 i915: add RPL-P PCI IDs
Like ADL-P, RPL-P is gen12 and has XE_LPD

PCI IDs from https://crrev.com/c/3654737

BUG=b:233114312
TEST=Protect playback works on RPL-P
     'cat /sys/kernel/debug/dri/0/i915_gem_framebuffer' shows gen12
     modifier

Change-Id: I5595d72a97fd5eb09080eea48ac4a3e3800747d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3726504
Commit-Queue: Juston Li <juston.li@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: George D Sworo <george.d.sworo@intel.corp-partner.google.com>
2022-07-05 21:17:50 +00:00
Juston Li
8987582ce0 i915: rename is_adlp to is_xelpd
Rename to reflect that ADL-P has the newer XE_LPD display IP that
required the height and stride adjustments.

RPL-P also has XE_LPD

BUG=b:233114312
TEST=sudo emerge-brya minigbm

Change-Id: I5f83a74d5332b4118fb841efd9200a6519e545e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3732651
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: George D Sworo <george.d.sworo@intel.corp-partner.google.com>
Commit-Queue: Juston Li <juston.li@intel.com>
2022-07-05 21:17:48 +00:00
Gurchetan Singh
c3d282625c minigbm: eliminate fake capset check
It's better just to conditionally advertise cross domain capset
in crosvm.

This is to upstream aosp/2101455.

BUG=173630595
TEST=compile

Change-Id: Ic44176141cade44bfa0cc2fcf457ddafb7ae7195
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3707443
Reviewed-by: Rob Clark <robdclark@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-06-17 07:10:07 +00:00
Rob Clark
9527781c92 virtgpu_crosdomain: Always use _USE_CROSS_DEVICE (when available)
This is required for dma-buf sharing, which is a thing that can happen
for sharing across processes even if it is the same GPU device involved
on both ends.  (Also, anything that gralloc allocates needs to be dmabuf
exportable, so not setting _USE_CROSS_DEVICE is just plain wrong.)

This fixes hangs in deqp-cts when using cross-domain virtgpu backend
(rather than the virgl backend)

BUG=b:230100768
TEST=Run deqp-cts

Change-Id: Ic9204feb0af52ef4a25bcfd554425cb8cd3f3fe1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3696038
Tested-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Rob Clark <robdclark@chromium.org>
Auto-Submit: Rob Clark <robdclark@chromium.org>
2022-06-14 20:23:13 +00:00
Jason Macnak
f08bb293f6 virtgpu_virgl: invalidate with BO_USE_GPU_DATA_BUFFER
... as the host may write to the buffer in a compute shader.

BUG=b:234513607
TEST=cts -m CtsNativeHardwareTestCases -t
     android.hardware.nativehardware.cts.AHardwareBufferNativeTests#Blob_BlobTest_GpuDataBufferCpuRead_BLOB

Change-Id: Ied49e7861e9ae0cbc9e25ecfb7feec30cc733864
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3688450
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-06-06 16:34:22 +00:00
Miguel Casas
26960909ad amdgpu: Only align video BOs to 512 for Android
crrev/c/3633249 compares libva and minigbm allocated Surfaces/BOs
for accelerated video decoding. Currently it fails on e.g. zork
because libva (mesa-amd backend) aligns those buffers to 256,
whereas minigbm aligns them to 512. This CL reduces the 512-align
provision in amdgpu to Android-originated buffers, where IIUC
from the bug there is such restriction.

BUG=b:200680176
BUG=b:171013552
TEST=vaapi_unittest on zork w/ crrev/c/3633249

Change-Id: I703037c70dded8596408c475518a29de3b59f039
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3647157
Tested-by: Miguel Casas-Sanchez <mcasas@chromium.org>
Reviewed-by: Drew Davenport <ddavenport@chromium.org>
Commit-Queue: Miguel Casas-Sanchez <mcasas@chromium.org>
2022-05-19 01:28:29 +00:00
Brian Norris
365e5b4a9e minigbm: rockchip: Support upstream AFBC modifier
BUG=b:214459790
TEST=boot to ui
TEST=null_platform_test, with modifications for choosing CRTC (big VOP)
     and AFBC modifier; e.g.,:
     `null_platform_test \
        --crtc_index 1 \
        --modifier \
          'DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_16x16|AFBC_FORMAT_MOD_SPARSE|AFBC_FORMAT_MOD_YTR)'`

Change-Id: I771d223ada1d7e6254855d28d998c01e455e72ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3462927
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Commit-Queue: Brian Norris <briannorris@chromium.org>
2022-05-07 04:56:47 +00:00
Robert Mader
d73fa7ff37 minigbm: amdgpu: Update plane count in bo_import
This is required for importing multi-plane modifiers where the
format plane count is lower (usually `1`). It will be used
by Exo for v3/4 of the `zwp_linux_dmabuf_v1` Wayland potocol,
allowing Wayland clients (and thus all clients that build on
the Wayland support) to use explicit modifiers which again
can increase performance on many GPUs.

Also add another fallback path to `dri_num_planes_from_modifier()`
for cases when `queryDmaBufFormatModifierAttribs()` fails and do
some refactoring there. Without this, some test apparently fail.

This includes the amdgpu part of
commit 1a733377e9, partially reverting
commit 853b8542fb.

Bug🅱️224580219
Change-Id: I93b64123420b39f3b83ff1bbbb9c59ddf4bc6105
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3568489
Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
Tested-by: Robert Mader <robert.mader@collabora.com>
Commit-Queue: Robert Mader <robert.mader@collabora.com>
2022-05-04 08:47:25 +00:00
David Stevens
1d87c8004c minigbm: remove stevensd from OWNERS
BUG=None
TEST=None

Change-Id: I4396f90f9e7de7c5d91ad2777e9061735787caa3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3593418
Tested-by: David Stevens <stevensd@chromium.org>
Auto-Submit: David Stevens <stevensd@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2022-04-20 04:41:27 +00:00
Robert Mader
96058f97e8 minigbm: i915: Update plane count in bo_import
and implement num_planes_from_modifier interface.

This only includes the i915 parts of
commit 1a733377e9, partially reverting
commit 853b8542fb.

Bug🅱️224580219
Change-Id: I94b5181f3ec231929873bc56c1044ca427f9de5b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3568488
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Robert Mader <robert.mader@collabora.corp-partner.google.com>
Tested-by: Robert Mader <robert.mader@collabora.corp-partner.google.com>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2022-04-20 01:51:54 +00:00
Jason Macnak
bc51ff31d2 virtgpu_virgl: enable P010 for 3D mode
BUG=b:191084459
TEST=cvd start --gpu_mode=gfxstream
TEST=Camera2Video sample app
TEST=cts -m CtsCameraTestCases

Change-Id: I7b2c902298fed7d1ccab7c31eac8376b0077b718
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3579857
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-04-19 03:37:24 +00:00
Yiwei Zhang
7a1a7dbda3 minigbm/msm: disable UBWC for virtualization
This actually reverts commit 407eb0ebf3.
However, the rationales have been updated.

BUG=b:229147702
TEST=emerge and deploy and verified graphics working in crostini

Change-Id: I8f491daf14f97a5dbda797207886695a985e44e7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3586372
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
Commit-Queue: Chia-I Wu <olv@google.com>
2022-04-14 22:18:32 +00:00
Jason Macnak
2119a9cefc virtgpu_virgl: update virgl_hw.h from upstream
... to pull in VIRGL_FORMAT_P010 for use with Gfxstream.

BUG=b:191084459
TEST=build

Change-Id: I7cf9d4ea54f5606e5582d1329dfb1467084a89d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3579856
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-04-13 03:21:23 +00:00
Sudarshan S
69ccacd3ab i915: Add ADL-N Device IDs
BUG=b:220084884
TEST=emerge-nissa minigbm
     On DUT, check UI,video playback and camera previews

Ref: https://cgit.freedesktop.org/drm/drm-tip/commit/?id=7e28d0b26759846485978ada860ef4a427e06c8f
Change-Id: Ifaa7d3c8336872af07fcfe15cf0f50f83ef24f69
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3473669
Reviewed-by: Victor Ding <victording@chromium.org>
Tested-by: Altaf Basha <altaf.basha@intel.corp-partner.google.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Victor Ding <victording@chromium.org>
2022-04-12 18:21:40 +00:00
Nicholas Bishop
17d3eb85a3 dumb_driver: Support R8 camera buffers
This format is used for JPEG camera data.

BUG=b:228365501
TEST=emerge-reven minigbm && cros deploy dut minigbm
TEST=Camera preview works on Macbook 7,1

Change-Id: Ida4b1896b68ef7db0bef76e7d6dd2e49b17b2e14
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3577364
Commit-Queue: Nicholas Bishop <nicholasbishop@google.com>
Tested-by: Nicholas Bishop <nicholasbishop@google.com>
Auto-Submit: Nicholas Bishop <nicholasbishop@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2022-04-09 14:40:27 +00:00
Hsin-Yi Wang
2581c470d6 minigbm: mediatek: check BO_USE_CAMERA_WRITE flag on camera preview case
We only want camera preview use case to use the same padding as
BO_USE_HW_VIDEO_ENCODER. Previously we check this by BO_USE_SCANOUT
flag. This would cause some format issues in CTS drm tests. This patch
updates CL:3551188 to check for BO_USE_CAMERA_WRITE flag as well.

BUG=b:227983122
TEST=check camera is normal on kukui
TEST=android.media.cts.MediaDrmClearkeyTest#* pass on kukui

Change-Id: I1606b677678dfafc6331713f67d327a2b6030394
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3574581
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
Reviewed-by: Miguel Casas <mcasas@google.com>
Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Commit-Queue: Hsin-Yi Wang <hsinyi@chromium.org>
2022-04-08 09:24:14 +00:00
Kazuhiro Inaba
853b8542fb Revert "minigbm: i915/amdgpu: Update plane count in bo_import"
This reverts commit 1a733377e9.

Reason for revert: Broke many ARC tests b/227807607 b/227830888

Original change's description:
> minigbm: i915/amdgpu: Update plane count in bo_import
>
> For format/modifier combination where the plane count does not
> match the `DRM_FORMAT_MOD_INVALID` case, importing BOs
> (via e.g. `gbm_bo_import`) currently fails as `bo->meta.num_planes`
> is not set correctly.
>
> Fix that by making the driver backends that support such
> format/modifier combinations update the plane count accordingly.
>
>
> minigbm: i915: Implement num_planes_from_modifier interface
>
> Some format/modifier combinations have different plane counts
> compared to the formats default (i.e. when the modifier is
> `DRM_FORMAT_MOD_INVALID`).
>
> Right now the supported cases are hardcoded in
> `i915_bo_compute_metadata()`, however this does not cover all
> use-cases. So implement the already existing backend interface,
> aligning i915 with e.g. amdgpu.
>
> Bug🅱️224580219
> Change-Id: If017997c70ab7da04ebf9d6cb9db775d9271ed05
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3516490
> Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
> Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
> Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>

Bug: b:224580219
Change-Id: I334f8cedb1d0414ecd0a38217afa4afc0df6ab47
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3568890
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Auto-Submit: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Tadashi G. Takaoka <takaoka@google.com>
Commit-Queue: Tadashi G. Takaoka <takaoka@google.com>
Owners-Override: Tadashi G. Takaoka <takaoka@google.com>
2022-04-05 04:32:14 +00:00
Hsin-Yi Wang
d4df3d57eb minigbm: mediatek: remove USE_SCANOUT in yuv format
minigbm clients use the SCANOUT flag whenever they want the
minigbm-allocated buffers to be promoted to overlays. Mediatek doesn't
support YUV overlays, so remove the SCANOUT flag.

BUG=b:224698291
TEST=emerge on elm, emerge and deploy on kukui/jacuzzi

Change-Id: If3ee2fb925c7e729269c31caab991bb0bc56b0de
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3555233
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
Feels: Hsin-Yi Wang <hsinyi@chromium.org>
Auto-Submit: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Miguel Casas <mcasas@google.com>
Commit-Queue: Hsin-Yi Wang <hsinyi@chromium.org>
2022-04-02 09:27:02 +00:00
Jason Macnak
db3c6fcf02 gralloc: Hide dmabuf heap allocator behind of a flag
... so that devices that have API level 31 but do not have the
system dmabuf heap installed (as it is not required) do not spam
error logs before falling back to memfd.

BUG=b:227375257
TEST=build Cuttlefish with aosp/2051732
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I7ab79ce472b1e3d84ffa8bb06044ecc933847656
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3563512
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
2022-04-01 10:00:09 +00:00
Robert Mader
1a733377e9 minigbm: i915/amdgpu: Update plane count in bo_import
For format/modifier combination where the plane count does not
match the `DRM_FORMAT_MOD_INVALID` case, importing BOs
(via e.g. `gbm_bo_import`) currently fails as `bo->meta.num_planes`
is not set correctly.

Fix that by making the driver backends that support such
format/modifier combinations update the plane count accordingly.


minigbm: i915: Implement num_planes_from_modifier interface

Some format/modifier combinations have different plane counts
compared to the formats default (i.e. when the modifier is
`DRM_FORMAT_MOD_INVALID`).

Right now the supported cases are hardcoded in
`i915_bo_compute_metadata()`, however this does not cover all
use-cases. So implement the already existing backend interface,
aligning i915 with e.g. amdgpu.

Bug🅱️224580219
Change-Id: If017997c70ab7da04ebf9d6cb9db775d9271ed05
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3516490
Reviewed-by: Bas Nieuwenhuizen <basni@chromium.org>
Tested-by: Bas Nieuwenhuizen <basni@chromium.org>
Commit-Queue: Bas Nieuwenhuizen <basni@chromium.org>
2022-03-31 22:56:47 +00:00
Hsin-Yi Wang
c37de98240 minigbm: mediatek: use the HW_VIDEO_ENCODE padding for camera preview
Since CL:3515652, preview under photo mode no longer uses hw video
encoder. This results in the wrong padding set in minigbm. Make camera
preview mode to use the original padding by detecting the
GRALLOC_USAGE_HW_COMPOSER (BO_USE_SCANOUT) flag.

BUG=b:224698291
TEST=check camera preview on krane

Change-Id: I299886a8f2106678f19ffff308331afec9627614
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3551188
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
Auto-Submit: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
Reviewed-by: Miguel Casas <mcasas@google.com>
Commit-Queue: Hsin-Yi Wang <hsinyi@chromium.org>
2022-03-31 11:34:43 +00:00
Jason Macnak
4674c0ea74 gralloc: Avoid setting out handle before allocate finishes
... otherwise a buffer would be leaked if `mDriver->allocate()`
succeeds but `initializeMetadata()` fails as the error handling
in the multi-buffer `CrosGralloc4Allocate::allocate()` would
fail to `mDriver->release();`.

BUG=b:219757060
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I375da2c959dd9df2667503a040ed1dcbd2aa12b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3501132
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-03-18 06:50:05 +00:00
Jon Murphy
fc5b72ff98 COIL: Migrate master to HEAD
Update links still pointing to master, update to point to HEAD

BUG=b:224796805
TEST=navigate to updated link and/or N/A

Change-Id: Ifb7940be9d1d953c8779087573d0f072ec6bb0d5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3525744
Tested-by: Jonathon Murphy <jpmurphy@google.com>
Reviewed-by: Drew Davenport <ddavenport@chromium.org>
Commit-Queue: Jonathon Murphy <jpmurphy@google.com>
2022-03-16 11:58:01 +00:00
Fritz Koenig
407eb0ebf3 Revert "minigbm/msm: Disable UBWC for video gtest"
This reverts commit 1d3637fbf6.

The browser has support for disabling bandwidth compression
by passing the |disable-buffer-bw-compression| flag.  This
makes the reliance on dlsym obsolete.

BUG=b:171260705
BUG=b:220910969
TEST=video_decode_accelerator_tests

Change-Id: Ic4d88b28c3a2cc095e5f782fc2255032ae20d281
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3150967
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Fritz Koenig <frkoenig@chromium.org>
Commit-Queue: Fritz Koenig <frkoenig@chromium.org>
2022-02-24 19:24:15 +00:00
Jason Macnak
eaafb204ff gralloc: use a struct for imported handle info
"Prefer to use a struct instead of a pair or a tuple
whenever the elements can have meaningful names."

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I688267a4c40f0260476029c0d70bc8bb19943e21
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3481955
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-24 03:36:32 +00:00
Jason Macnak
736a8d7450 gralloc: re-add tracking imported handles
... as interacting with a cloned handle should not
succeed until it is imported:

```
native_handle_t handle1;
gralloc->alloc(..., &handle1);

native_handle_t handle2 = native_handle_clone(handle1);
gralloc->lock(handle2)   <--- should fail!
```

This is a partial revert of crrev.com/c/3433118

BUG=b:207388558
BUG=b:220537482
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: Ia9a9f91fca14ea9f30017fb934c5c48064090d43
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3481795
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-24 03:36:31 +00:00
Jason Macnak
cf5c7eb33f gralloc: Update reserved region fd check
to address comment on https://crrev.com/c/3441404 which was
missed after commit queue was already +2'd.

BUG=b:207388558
TEST=untested

Change-Id: I7429bfd0e12b1442fd903b8c1e2a2abe97d8bd97
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3456848
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-24 03:36:31 +00:00
Jason Macnak
40d5c7d98c gralloc: use dmabuf-heaps when available
... for reserved region / metadata as dmabuf heaps are the hot new
thing replacing ion.

Also, Android already has sepolicy in place for passing around
dmabufs (see `dmabuf_system_heap_device:chr_file` references in
system/sepolicy) while memfds require manual additions (see
aosp/1960673).

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I9acb30a10afb1f9f273ceb17dd44a9ac96da1a97
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3449613
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-24 03:36:29 +00:00
Miguel Casas
35fd7d23bb mediatek.c: Don't use 64-stride alignment for video on 8173 (hana)
Video buffers are forced to use 64 alignment because of some nebulous
argument around better cache performance (b/35560932, it was mostly
about kevin and somehow hana got bundled in).

On Mediatek, however, video decoder and image processor use 16-
alignment (like macroblocks), forcing the use of the image processor
to reconcile these two, negating any performance/cache improvements.

This CL changes that to only use 64-alignment to non-YUV (hence,
video) quads, and this only for Hana.

BUG=b:220175010
TEST=video.DecodeAccel.* on hana

Change-Id: I48ee1beac29f915734830eda64705a2b4827a901
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3475099
Tested-by: Miguel Casas-Sanchez <mcasas@chromium.org>
Tested-by: Miguel Casas <mcasas@google.com>
Reviewed-by: Fei Shao <fshao@chromium.org>
Reviewed-by: Miguel Casas <mcasas@google.com>
Commit-Queue: Miguel Casas <mcasas@google.com>
2022-02-23 17:13:37 +00:00
Jason Macnak
b6aeea6135 gralloc: Use std::unique_ptr for drv_
BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: Ic27bcdae1e63cf869ceff779d113df778f3b7e0d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3449612
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:58 +00:00
Jason Macnak
d63bacdd02 gralloc: Use std::unique_ptr/std::make_unique
... instead of using raw new/delete.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I964a3d5b90af50369432b8e9a08ae56c191eb37a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3442429
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:57 +00:00
Jason Macnak
0e9bd65933 gralloc: Move buffer name out of cros_gralloc_handle
... and into CrosGralloc4Metadata to simplify handle
creation by avoiding variable sized handles.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target
TEST=cvd start --gpu_mode=gfxstream
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I2d5e37beef8b9ba6bfbd06d79131b381d3ff73da
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3433595
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:56 +00:00
Jason Macnak
b4eb84da28 gralloc: Support gralloc->set(<metadata>)
... by reserving the first section in the shared memory
reserved region for a new CrosGralloc4Metadata struct.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target
TEST=cvd start --gpu_mode=gfxstream
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I7c59196ca747dc0fe854cdb4cbbcd21dd82e1401
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3421048
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:56 +00:00
Jason Macnak
d6d2fc5530 gralloc: Replace for-each-handle ​with for-each-buffer
... to support upcoming change where CrosGralloc4Mapper's
get(<metadata>) will want to access metadata that may be
in either the buffer's handle or the buffer's reserved
region. The for-each-[handle|buffer] methods support
dumpBuffers() where we need to iterate over all of the
buffers while holding a lock on the cros_gralloc_driver's
mutex.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target
TEST=cvd start --gpu_mode=gfxstream
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I674cab487d7446af722f94d796f504cf4f97de27
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3433121
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:55 +00:00
Jason Macnak
13f1a5ed1b gralloc: Adds getters to cros_gralloc_buffer
... to support upcoming change where CrosGralloc4Mapper's
get(<metadata>) will want to access metadata that may be
in either the buffer's handle or the buffer's reserved
region. Adding getter's will allow simplify
CrosGralloc4Mapper's get(<metadata>) method to just take
a cros_gralloc_buffer as an argument.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target
TEST=cvd start --gpu_mode=gfxstream
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I8048ef0e1af0ec8f42484d42a5eb88e69c003351
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3433120
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:54 +00:00
Jason Macnak
06fe94c982 gralloc: minor re-organize setting import data
BUG=b:207388558
TEST=m

Change-Id: Ieb23d5e85eaec219b4fb473770925eee7a70e31e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3433119
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:53 +00:00
Jason Macnak
6235f17371 gralloc: cros_gralloc_buffer always owns a cros_gralloc_handle
... to make it easier handle ownership (no more conditional
ownership if the buffer was allocated versus imported).

This also helps avoid a deadlock in CrosGralloc4Mapper's
dumpBuffers() in an upcoming change where CrosGralloc4Mapper
wants to interact with both metadata in the handle and
metadata in the cros_gralloc_buffer's reserved region. By
having the cros_gralloc_buffer always have a handle, the
CrosGralloc4Mapper can have access to all metadata when it
has a cros_gralloc_buffer parameter.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target
TEST=cvd start --gpu_mode=gfxstream
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: I56fffbbfacf8436db165a961bec8ce546b4acc6c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3433118
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-17 07:05:52 +00:00
Dominik Behr
26a83b58f7 dri: use unsigned char instead of GLboolean
GL datatypes have been removed in upstream mesa dri_interface.h

BUG=none
TEST=Build minigbm with amdgpu enabled.

Change-Id: I31a89ad806b52352433d055982eff83bd0aeac39
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3352528
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Dominik Behr <dbehr@chromium.org>
2022-02-12 07:40:42 +00:00
Jason Macnak
1b386397da gralloc: Fix reserved region fd check
... as fd 0 is potentially valid.

BUG=b:207388558
TEST=cvd start
TEST=vts -m VtsHalGraphicsMapperV4_0Target

Change-Id: Idc31e294b2797491517f5d82e5ccd05a351a0cd4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3441404
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Tested-by: Jason Macnak <natsu@google.com>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-02-11 04:00:49 +00:00
Cooper Chiou
c8c61d3057 i915: Disable Render Buffer compression for Gen11
This reverts commit 70cf2460d2.

crrev/c/2944608 enabled RBC for Gen11, but we're still seeing instance
of garbage on the external display when device switch to dispaly mode
or lid open/close. So we disable RBC to fix the garbage issue.

BUG=b:197804801
TEST=signing in/out, fullscreening video, lid open/close, observe no artifacts

Change-Id: I1cde20c05e7127340ac68f7f70c39bb77b31e097
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3246443
Tested-by: Cooper Chiou <cooper.chiou@intel.com>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Miguel Casas-Sanchez <mcasas@chromium.org>
2022-02-08 19:08:42 +00:00
Ilja Friedel
044c6b8b90 Revert "i915/gen12: Fix plane offset for Y-tiling"
This reverts commit daa7273ded.

Reason for revert: the lack of reverting both changes at the same time causes video.ChromeStackDecoding to fail on volteer et al.

BUG=b:218381300, b:210276702

Original change's description:
> i915/gen12: Fix plane offset for Y-tiling
>
> BUG=b:210276702
> TEST=android.graphics.cts.MediaVulkanGpuTest
>
> Change-Id: I66dc6baacf2eb8487d535c544d8bfd9225b8592e
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3421573
> Tested-by: Chad Versace <chadversary@chromium.org>
> Auto-Submit: Chad Versace <chadversary@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>

Bug: b:210276702
Change-Id: I8c688de6bdad7db489af7469fc47bf0667cd90dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3445142
Tested-by: Ilja Friedel <ihf@chromium.org>
Auto-Submit: Ilja Friedel <ihf@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
2022-02-07 23:16:36 +00:00
Yiwei Zhang
17fa1a8ab6 Revert "i915/gen12: Fix row stride for Y-tiling"
This reverts commit 0f9bd72718.

Reason for revert: graphics.VAAPIUnittest.common fails on brya/volteer

Original change's description:
> i915/gen12: Fix row stride for Y-tiling
>
> The diff looks weird because I needed to re-arrange the if-blocks to
> preserve the gen sort order.
>
> BUG=b:210276702
> TEST=android.graphics.cts.MediaVulkanGpuTest
>
> Change-Id: Iab8222db132c6b05bc9cbfc738f04269c95c4442
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3404962
> Tested-by: Chad Versace <chadversary@chromium.org>
> Auto-Submit: Chad Versace <chadversary@chromium.org>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>

Bug: b:210276702, b:217326369
Change-Id: I175d1ea8ed8f7573c5a137fc426b38a454defe9f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3437778
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Raul Rangel <rrangel@chromium.org>
2022-02-04 22:56:53 +00:00
Chad Versace
daa7273ded i915/gen12: Fix plane offset for Y-tiling
BUG=b:210276702
TEST=android.graphics.cts.MediaVulkanGpuTest

Change-Id: I66dc6baacf2eb8487d535c544d8bfd9225b8592e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3421573
Tested-by: Chad Versace <chadversary@chromium.org>
Auto-Submit: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2022-01-31 07:03:32 +00:00
Chad Versace
0f9bd72718 i915/gen12: Fix row stride for Y-tiling
The diff looks weird because I needed to re-arrange the if-blocks to
preserve the gen sort order.

BUG=b:210276702
TEST=android.graphics.cts.MediaVulkanGpuTest

Change-Id: Iab8222db132c6b05bc9cbfc738f04269c95c4442
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3404962
Tested-by: Chad Versace <chadversary@chromium.org>
Auto-Submit: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2022-01-31 07:03:31 +00:00
Emilian Peev
f76db9871f virtgpu_virgl: Extend the supported P010 usage cases
Implementation defined camera outputs can enable
'BO_USE_TEXTURE' at the consumer side in cases where
the producer/camera overrides the pixel format to P010.

BUG=b:216308391
TEST=`atest RobustnessTest#testMandatory10BitStreamCombinations`

Change-Id: I21946cc7e4db14f207942ecce2c1cf8269790024
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3418596
Auto-Submit: Emilian Peev <epeev@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Emilian Peev <epeev@google.com>
Commit-Queue: Emilian Peev <epeev@google.com>
2022-01-28 21:49:20 +00:00
Zhang Bo
7e669ca947 gralloc:fix incorrect plane layout of DRM_FORMAT_XBGR8888
The format DRM_FORMAT_XBGR8888 playe layout should be aligned with linux DRM
driver definition.

Signed-off-by: Zhang Bo <bo.zhang@nxp.com>
Change-Id: I8f8b025a99a7503eb27eda96bcbdf3373b011a8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3414504
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Jason Macnak <natsu@google.com>
Tested-by: Jason Macnak <natsu@google.com>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Jason Macnak <natsu@google.com>
2022-01-27 01:40:38 +00:00
Rob Clark
06cf1f1faf msm: Support fp16 and rgba1010102 formats
These are needed by vrend.

BUG=b:216322701
TEST=n/a

Change-Id: I19351e7f72b9b5d205176ef6466889c3260407fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3413989
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Rob Clark <robdclark@chromium.org>
Auto-Submit: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>
Commit-Queue: Dominik Behr <dbehr@chromium.org>
2022-01-26 21:39:22 +00:00