summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
43 hoursminigbm: Reduce allocation size for MT2T allocationsupstream-mainJeffrey Kardatzke
On MTK, when we allocate MT2T surfaces for protected content, these are sent in as P010 instead. However, P010 uses 16bpp where MT2T requires only 10bpp. This adjusts the allocation sizes to only be what is needed so we reduce memory usage by 5/8. BUG=b:339091167 TEST=Netflix 4K 10-bit HEVC plays on Ciri Change-Id: Ia34b7d3aa962f3138da130077d723748592023bd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5582540 Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com> Auto-Submit: Jeffrey Kardatzke <jkardatzke@google.com> Reviewed-by: Miguel Casas <mcasas@google.com> Tested-by: Jeffrey Kardatzke <jkardatzke@google.com> Commit-Queue: Miguel Casas <mcasas@google.com>
4 daysmediatek: Add MT8196Hsin-Yi Wang
BUG=b:336924470 TEST=emerge-rauru minigbm Cq-Depend: chromium:5579120 Change-Id: I63a5352ecc60a98dd9438129e3a33aebb71361cc Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5577798 Commit-Queue: Hsin-Yi Wang <hsinyi@chromium.org> Reviewed-by: Justin Green <greenjustin@google.com> Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
2024-05-10minigbm: autogenerate gbm.pc and cleanup build variablesRyan Neph
FINALLY, the gbm.pc is autogenerated to respect the variables steering the build. BUG=b:338254311 TEST=mkdir -p build && OUT=build make && test -f build/gbm.pc && echo "ALL GOOD" TEST=emerge minigbm Change-Id: Ie1458bb46375be1357cbf4f0a8f59d698cbd6cfd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5513263 Commit-Queue: Ryan Neph <ryanneph@google.com> Tested-by: Ryan Neph <ryanneph@google.com> Reviewed-by: Dawn Han <dawnhan@google.com> Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
2024-05-01minigbm: update OWNERSYiwei Zhang
Make it more up to date. BUG=n/a TEST=n/a Change-Id: I0416c2dd02c3ee24155bb94d7b96ca1130098e50 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5505016 Reviewed-by: Satoshi Niwa <niwa@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
2024-05-01minigbm: format fixYiwei Zhang
BUG=n/a TEST=./presubmit.sh Change-Id: Ic581ebe770c648ee344cfbe20ba6655786a2088e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5505015 Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Satoshi Niwa <niwa@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2024-04-29msm: pad extra for YV12 to align with freedreno fdl_layoutYiwei Zhang
BUG=b:285941238 TEST=android.media.decoder.cts.DecodeAccuracyTest Change-Id: Iab3c1c9a67af2033fd45b7ee254b2cbdc927684c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5460257 Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Rob Clark <robdclark@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2024-03-18minigbm: Add support for CCS Media Compression on MTLCarlos Santa
BUG=b:201620358 TEST=null_platform_test -m I915_FORMAT_MOD_4_TILED_MTL_MC_CCS success cat /sys/kernel/debug/dri/1/i915_display_info during rendering uapi: [FB:434] XR24 little-endian (0x34325258),0x10000000000000e,1920x1200, visible=visible, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001)                 hw: [FB:434] XR24 little-endian (0x34325258),0x10000000000000e,1920x1200, visible=yes, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001)         [PLANE:47:plane 2A]: type=OVL and make sure the modifier shows 0x10000000000000e v3: Rebased the patch as per latest tip and fixes. Credits-to: Bai, Guangyao <guangyao.bai@intel.com> Heikkila, Juha-pekka <juha-pekka.heikkila@intel.com> Ma, Zhaoliang <zhaoliang.ma@intel.com> Change-Id: I9d9391a2f9b1f8d78f2a70b729f1fcc86b76679d Signed-off-by: Lobo, Melanie <melanie.lobo@intel.com> Signed-off-by: Santa, Carlos <carlos.santa@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5351727 Commit-Queue: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2024-03-13cros_gralloc: Remove Android.bp filesRoman Stratiienko
Android.bp files are maintained in the AOSP fork repository. Change-Id: I492e0c2154b22cd4cda85e379df2578b352c23df Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4961034 Commit-Queue: Jason Macnak <natsu@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Jason Macnak <natsu@google.com>
2024-03-12minigbm: add gbm_{bo,surface}_create_with_modifiers2Marcin Radomski
Rationale: this will help get Rust gbm bindings into Android (go/drm-gbm-rust-crates-for-android) without needing minigbm-specific patches to upstream Rust code. Upstream Mesa gbm defines those functions as variants with an extra "flags" argument[2][3] (these don't exist in the mesa version checked into Chromium though). The definitions added in this CL provide variants that fail for any non-zero flags. [1] https://crates.io/crates/gbm [2] https://gitlab.freedesktop.org/mesa/mesa/-/blob/b7d6d90dabad885c2578e2195901f60ac6ac4e7c/src/gbm/main/gbm.h#L303 [3] https://gitlab.freedesktop.org/mesa/mesa/-/blob/b7d6d90dabad885c2578e2195901f60ac6ac4e7c/src/gbm/main/gbm.h#L443 Bug: 328363177 Test: cros build-packages --board=amd64-generic minigbm drm-tests Change-Id: I9284d597e2d4de5ff9b677db0a0ffe6d274e4f57 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5352371 Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Commit-Queue: Marcin Radomski <dextero@google.com> Tested-by: Marcin Radomski <dextero@google.com>
2024-03-12minigbm: use int instead of size_t for plane indexMarcin Radomski
Rationale: this will help get Rust gbm bindings into Android (go/drm-gbm-rust-crates-for-android) without needing minigbm-specific patches to upstream Rust code. Mesa gbm defines the plane argument for some functions as int rather than size_t. While this doesn't bother C/C++ compilers too much, attempting to use bindgen-generated Rust bindings to minigbm with gbm Rust crate[1] fails. [1] https://crates.io/crates/gbm Bug: 328363177 Test: cros build-packages --board=amd64-generic minigbm drm-tests Change-Id: I5938633e0936bf1b9aafb856bfb966ceb1fb1a2b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5352370 Reviewed-by: Dominik Behr <dbehr@chromium.org> Commit-Queue: Marcin Radomski <dextero@google.com> Tested-by: Marcin Radomski <dextero@google.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
2024-03-12drv: Use __func__ instead of __FILE__Jason Macnak
... to avoid needing a basename() which is dropped from string.h in musl. Bug: b/328316038 Test: android build Change-Id: Ib619b9c45a30ce69be30270fe7da0f13421179be Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5352313 Commit-Queue: Dominik Behr <dbehr@chromium.org> Auto-Submit: Jason Macnak <natsu@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org> Tested-by: Jason Macnak <natsu@google.com> Reviewed-by: Dawn Han <dawnhan@google.com>
2024-03-11mediatek: Add AR30 overlay supportJustin Green
Add support for AR30 overlays to select MTK devices. BUG=b:325625530 TEST=Tested by running MT2T->AR30 image processing tests on MT8188G. Change-Id: I570ee740e49b5d9c61a1e1d0da777fdcc937321d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5345669 Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org> Commit-Queue: Justin Green <greenjustin@google.com> Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com> Tested-by: Justin Green <greenjustin@google.com>
2024-03-05Revert "minigbm: Add support for CCS Media Compression on MTL"Vidya Srinivas
Revert reason: Seeing regression with media compression patches. Video playback is falling back to SW decode. Reverting media compression for now. This reverts commit 4492f456512b0c74ef27e8ad46db754025920bee. Change-Id: I20b84a90f7e7b49559db6fe04e976db159ddfb17 Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5343756 Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
2024-03-05Revert "minigbm: Fix Alignment issues for MTL Media Compression"Vidya Srinivas
Revert reason: Seeing regression with media compression patches. Video playback is falling back to SW decode. Reverting media compression for now. This reverts commit 33b8c3eb4077af31a600228916f5a6701c66d8cb. Change-Id: I7f544acc0248887763afeefa056b42f15bdd2b88 Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5343755 Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
2024-02-29minigbm: Fix Alignment issues for MTL Media CompressionVidya Srinivas
Credits-to: Bai, Guangyao <guangyao.bai@intel.com> Heikkila, Juha-pekka <juha-pekka.heikkila@intel.com> BUG=b:201620358 TEST=vaapi_unittest --gtest_filter=*VaapiMinigbmTest* --single-process-tests Change-Id: Ib8e261a1e53e9678dfd56d61646a024dd648d9e2 Signed-off-by: Melanie Lobo <melanie.lobo@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Zhaoliang Ma <zhaoliang.ma@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5312160 Reviewed-by: Dominik Behr <dbehr@chromium.org> Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com>
2024-02-29minigbm: Add support for CCS Media Compression on MTLCarlos Santa
BUG=b:201620358 TEST=null_platform_test -m I915_FORMAT_MOD_4_TILED_MTL_MC_CCS success cat /sys/kernel/debug/dri/1/i915_display_info during rendering uapi: [FB:434] XR24 little-endian (0x34325258),0x10000000000000e,1920x1200, visible=visible, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001)                 hw: [FB:434] XR24 little-endian (0x34325258),0x10000000000000e,1920x1200, visible=yes, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001)         [PLANE:47:plane 2A]: type=OVL and make sure the modifier shows 0x10000000000000e v2: Rebased the patch as per latest tip. Change-Id: I7a63b471f932afca082d23f26d9d2c10200e8c80 Signed-off-by: Carlos Santa <carlos.santa@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5312159 Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2024-02-27gralloc: Sync with AOSPJason Macnak
Bug: b/321158178 Test: untested, AOSP already builds Change-Id: I0f405f840baf3da755b39a3a3c1028ecbc0915c4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5258793 Commit-Queue: Jason Macnak <natsu@google.com> Tested-by: Jason Macnak <natsu@google.com> Reviewed-by: Dawn Han <dawnhan@google.com>
2024-02-26i915.c: Add 2 additional ADL-N PCI idsAp, Kamal
Ref:https://cgit.freedesktop.org/drm-intel/commit/?h=drm-intel-next&id=425b463859eda4f4c071e517267acdd1c0d731bd BUG=b:325995751 TEST=Boot on Nissa Change-Id: Ia8bc74b3b365db37271644bf3c56e070afb7403d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5312155 Reviewed-by: Lalith Rajendran <lalithkraj@google.com> Commit-Queue: Kamal Ap <kamal.ap@intel.corp-partner.google.com> Tested-by: Kamal Ap <kamal.ap@intel.corp-partner.google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2024-02-21i915: make is_mtl a special case for bo cacheChia-I Wu
i915 kmd has a special case for MTL in shmem_object_init: if (HAS_LLC(i915) || (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 70))) cache_level = I915_CACHE_LLC; Meanwhile, its i915_gem_object_pin_to_display_plane has: ret = i915_gem_object_set_cache_level(obj, HAS_WT(i915) ? I915_CACHE_WT : I915_CACHE_NONE); Let's report GBM_BO_MAP_CACHE_CACHED on MTL unless BO_USE_SCANOUT is set. BUG=b:325368420 TEST=no artifact in Camera FOV Calibration of CtsVerifier on rex TEST=android.hardware.cts.CameraTest#testPreviewFpsRange Change-Id: I0b3b3f13769bbd1db6f4f7194e58afc0f151eb47 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5313949 Reviewed-by: Dawn Han <dawnhan@google.com> Tested-by: Chia-I Wu <olv@google.com> Commit-Queue: Chia-I Wu <olv@google.com>
2024-02-07i915.c: Allocate Intel compressed buffers with modifiersHang Nguyen
Before the CL, the environment variable |ENABLE_INTEL_MEDIA_COMPRESSION| control minigbm's behaviour to allocate the appropriate Intel media compressed buffers. This variable is set accordingly to a feature flag in chrome to support video decoding. This CL removes the environment variable and will let chrome pass the DRM specific modifier via gbm_bo_create_with_modifiers() instead. With the modifier passed, the CL includes the change to have the driver compute the metadata for the compressed buffers. BUG=b:315390307 TEST=Video playyback on chrome with MC support. Change-Id: I9671443cd233295dcb904d6edc995efd19c1013a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5118242 Tested-by: Hang Nguyen <hnt@chromium.org> Commit-Queue: Hang Nguyen <hnt@chromium.org> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2024-02-05i915: report GBM_BO_MAP_CACHE_WC for scanoutChia-I Wu
If a bo has BO_USE_SCANOUT, and it is ever scanned out, the kernel driver changes its cache level to WC. But the change is not reflected in the guest. Let's be conservative and report GBM_BO_MAP_CACHE_WC when BO_USE_SCANOUT is set. BUG=b:323433235 TEST=Squid works properly with cross-domain on volteer Change-Id: I9325ffc0cfef8778917e13d5021ae884ac7a6dfb Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5255422 Reviewed-by: Dominik Behr <dbehr@chromium.org> Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2024-02-01i915: report GBM_BO_MAP_CACHE_CACHED iff has_llcChia-I Wu
BUG=b:239718180, b:306548532 TEST=no artifact in Camera FOV Calibration of CtsVerifier on rex Change-Id: Ia6a0d689fefe20e52db2c62328c97f4aa3558b63 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5254324 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Chia-I Wu <olv@google.com> Commit-Queue: Chia-I Wu <olv@google.com> Reviewed-by: Rob Clark <robdclark@chromium.org>
2024-02-01minigbm: Add an API to return cache attributesRob Clark
Crosvm currently makes the simplistic assumption that if driver==i915 then cached mappings to guest should be used for minigbm allocated buffers. But this may not always be the correct choice. And other drivers can do cached mappings to, in certain cases. But on ARM devices in particular, we should be consistent in cachability when it comes to CPU mappings. So add a new minigbm API which crosvm can use to determine how to map to guest. BUG=b:239718180, b:306548532 TEST=no artifact in Camera FOV Calibration of CtsVerifier on rex Change-Id: I5c9b6346270f6a2eb83e6637a911f2153f6120ff Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3777567 Tested-by: Chia-I Wu <olv@google.com> Auto-Submit: Rob Clark <robdclark@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Chia-I Wu <olv@google.com>
2024-01-31mediatek: Add support for P010 allocationFritz Koenig
Bug: b:278935312 Change-Id: Ia7f8a12d4edd60b1f1336787455942f1c750cda0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5241804 Tested-by: Fritz Koenig <frkoenig@chromium.org> Commit-Queue: Fritz Koenig <frkoenig@chromium.org> Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Fei Shao <fshao@chromium.org>
2024-01-31virtgpu: define capset ids as macrosKaiyi Li
... to avoid using magic numbers. TEST=compile BUG=b:322199104 Change-Id: I8522596f2cb2d0e9bdc381440c7e9ad3bbaa3165 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5246254 Tested-by: Kaiyi Li <kaiyili@google.com> Commit-Queue: Kaiyi Li <kaiyili@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org> Auto-Submit: Kaiyi Li <kaiyili@google.com>
2024-01-30minigbm: add unit test for minigbm public apisdawnhan
This is the first change to add unit tests for the public APIs in minigbm. Only tests 3 APIs here for now, and just added some very simple input for each api testing. The ultimate goal would be cover more APIs and the input combinations. BUG=b:304380938 TEST=cros_workon_make --board=guybrush minigbm --test TEST=cros_run_unit_tests --board guybrush --packages "minigbm" TEST=CQ Change-Id: Id15806b7bc6cd9c4764bf08becec6546d72bb117 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4923791 Commit-Queue: Dawn Han <dawnhan@google.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Dawn Han <dawnhan@google.com>
2024-01-30virtgpu virgl: assume 0 caps for unrecognized capset IDsKaiyi Li
minigbm gralloc + gfxstream on the host will always fail the get caps ioctl, but gralloc itself still works fine. TEST=build and run the emulator BUG=b:322199104 Change-Id: I35ebbdddbfb050ead76d61626f13f028cf909229 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5241884 Auto-Submit: Kaiyi Li <kaiyili@google.com> Commit-Queue: Kaiyi Li <kaiyili@google.com> Tested-by: Kaiyi Li <kaiyili@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2023-11-30mediatek: limit recent changes to MTK8173Bartłomiej Grzesik
Previous change introduced a regression to CTS tests on other mediatek board then MTK8173. This CL fixes this by switching to relying on MTK_MT8173 compile define. BUG=b:305347887 TEST=android.mediav2.cts.CodecEncoderSurfaceTest Cq-Depend: chromium:4887244 Change-Id: I30f814222423e1b77d25c3256e9fcb0319c6339f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4946471 Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Tested-by: Bartłomiej Grzesik <bgrzesik@google.com> Commit-Queue: Kazuhiro Inaba <kinaba@chromium.org>
2023-11-15drv: add support for bo loggingChia-I Wu
When MINIGBM_DEBUG=log_bos is set, log all bos created/imported. BUG=none TEST=add MINIGBM_DEBUG=log_bos to /etc/chrome_dev.conf and see logs in /var/log/ui/ui.LATEST Change-Id: Ib2b2d5c3181862b557dbc5499fef84f2c9ac8122 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5014198 Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com> Reviewed-by: Dawn Han <dawnhan@google.com> Tested-by: Chia-I Wu <olv@google.com>
2023-10-11mediatek: allow BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER on MTK8173Bartłomiej Grzesik
This patch fixes the allocation of BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER on MTK8173 in order to pass CTS tests. The tests were failing due to lack of resolved combo for DRM_FORMAT_FLEX_YCbCr_420_888 with BO_USE_HW_VIDEO_DECODER | BO_USE_HW_VIDEO_ENCODER. Furthermore a change in buffer alignment was required to avoid V4L2VDA failures. BUG=b:292507490 TEST=CtsMediaV2TestCases android.mediav2.cts.CodecEncoderSurfaceTest Change-Id: I41170169098e9110154328288710832a436bc9d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4916803 Auto-Submit: Bartłomiej Grzesik <bgrzesik@google.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Tested-by: Bartłomiej Grzesik <bgrzesik@google.com> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
2023-10-11tiny format fixesYiwei Zhang
Also absorbs: https://android-review.git.corp.google.com/c/platform/external/minigbm/+/2768266 BUG=n/a TEST=./presubmit.sh Change-Id: I7b781090762ed86b0d0c6c1736d0eeea6e2058ad Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4903262 Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Dawn Han <dawnhan@google.com> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2023-10-09i915.c: Add log for failure to get MCC environment varHang Nguyen
Previously, when the environment variable is not found, IOW when the feature flag does not set the value for the variable, |enable_intel_media_compression_var| is NULL and minigbm would log about this. This would create noise in the log, especially when `drv->compression` is not true or when the feature flag has not landed. This CL makes change to only log about the failure to get the environment variables for Media compression support if `drv->compression == true`. Change-Id: Ia6d33b08759d4fe94f2bc8de3fb99287748442b3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4919324 Tested-by: Hang Nguyen <hnt@chromium.org> Reviewed-by: Andres Calderon Jaramillo <andrescj@google.com> Reviewed-by: Nathan Hebert <nhebert@chromium.org> Reviewed-by: Dominik Behr <dbehr@chromium.org> Commit-Queue: Hang Nguyen <hnt@chromium.org>
2023-10-06minigbm: Add CCS support for render compression on MTLCarlos Santa
BUG=b:201620358 TEST=boot chromeos with UI with I915_FORMAT_MOD_4_TILED_MTL_RC_CCS modifier success cat /sys/kernel/debug/dri/0/i915_gem_framebuffer [PLANE:31:plane 1A]: type=PRI uapi: [FB:286] XR24 little-endian (0x34325258),0x10000000000000d,1920x1200, visible=visible, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001) hw: [FB:286] XR24 little-endian (0x34325258),0x10000000000000d,1920x1200, visible=yes, src=1920.000000x1200.000000+0.000000+0.000000, dst=1920x1200+0+0, rotation=0 (0x00000001) Change-Id: I78d961265576de7b9871d56c727654651659af32 Signed-off-by: Carlos Santa <carlos.santa@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4569893 Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Sachin Kumar <sachin.kumar@intel.com> Commit-Queue: Sachin Kumar <sachin.kumar@intel.com> Tested-by: K Konda Reddy <k.konda.reddy@intel.com>
2023-10-03i915: Remove media compression format for hardware protected contentHang Nguyen
This CL removes the combination of having media compressed buffers for hardware protected content. The current API does not allow the support for dma-bufs with protected content in libva. BUG=b:201620358, b:289449755 TEST=Run the video.PlayDRM.* test on Chrome with feature flag enabled for MMC and verify that no compressed buffer is allocated in the output of below command: localhost ~ # cat /sys/kernel/debug/dri/0/i915_gem_framebuffer user size: 854 x 480, depth 0, 8 bpp, modifier 0x100000000000002 Change-Id: Ib5850d68a36556195110aaae1419a4fb51ecca53 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4887518 Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org> Commit-Queue: Hang Nguyen <hnt@chromium.org> Tested-by: Hang Nguyen <hnt@chromium.org> Reviewed-by: Andres Calderon Jaramillo <andrescj@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2023-10-03i915: add more PCI IDs to support RPL platformGeorge D Sworo
PCI IDs from https://crrev.com/c/4829432 BUG=b:302514656 TEST=Protect playback works on RPL skolas system 'cat /sys/kernel/debug/dri/0/i915_gem_framebuffer' Change-Id: I5d431e992607a1c8d8bb917901cf8bc726bf3f28 Signed-off-by: George D Sworo <george.d.sworo@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4909050 Reviewed-by: Lina Versace <linyaa@google.com>
2023-09-28gralloc: Use std::shared_ptr for cros_gralloc_driverJason Macnak
... to ensure the lifetime of the underlying cros_gralloc_driver matches those of the various Mapper* interfaces. Without this, the the destruction of the static cros_gralloc_driver `s_instance` could race with a potential CrosGralloc4Mapper user on another thread which is still alive at the time of exit() (for example, a buffer being cleaned up on a libhwbinder worker thread). Bug: b/300616292 Bug: b/300194143 Bug: b/294661992 Test: launch Cuttlefish, run SurfaceFlinger_test, inspect tracing around lifetime of cros_gralloc_driver Change-Id: Id8e2dbff471c03f7b663952524905a06cc03fbc1 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4897926 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Jason Macnak <natsu@google.com> Commit-Queue: Jason Macnak <natsu@google.com>
2023-09-28gralloc: Upstream AIDL allocator, stablec mapper, and sepolicyJason Macnak
... from various developments in AOSP. Bug: b/225198076 Test: n/a Change-Id: I65c340cfee4a3ad3c6545f365ca60249fd338a5f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4897925 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Jason Macnak <natsu@google.com> Commit-Queue: Jason Macnak <natsu@google.com>
2023-09-15i915: Add media compression support for Gen-12 with feature flagHang Nguyen
From Gen-12 onwards Media compression aux buffer layout has been changed. The functionality to allocate minigbm compressed buffers are mostly taken from CL:3275292 and this CL adapts it to guard this feature behind an environment variable controlled by the minigbm user application (we're not re-using the original CL because it seems the original author is no longer active). BUG=b:201620358 TEST=Play video on Chrome with feature flag enabled for MMC and verify type (7) of buffer modifer in the output of below command: localhost ~ # cat /sys/kernel/debug/dri/0/i915_gem_framebuffer user size: 1280 x 720, depth 0, 8 bpp, modifier 0x100000000000007 Change-Id: I69cb527eb9d16498f7e9c2fb32c793cea6b6a4ed Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4655427 Reviewed-by: Andres Calderon Jaramillo <andrescj@google.com> Commit-Queue: Hang Nguyen <hnt@chromium.org> Tested-by: Hang Nguyen <hnt@chromium.org>
2023-09-11OWNERS: Prepare for renaming chadversary@ to linyaa@Lina Versace
I will soon change my LDAP. Prepare for the change by adding linyaa@ to each OWNERS file that contains chadversary@. BUG=b:295079822 TEST=CQ Change-Id: I23d206e233559bae25396b8ea9714e081a8cae31 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4854085 Reviewed-by: Chia-I Wu <olv@google.com> Commit-Queue: Chia-I Wu <olv@google.com> Auto-Submit: Lina Versace <linyaa@google.com> Tested-by: Lina Versace <linyaa@google.com>
2023-08-14i915: Vertical align video encode buffers to macroblock sizeHirokazu Honda
This is the reland of crrev.com/c/4615698. It is reverted because it causes the camera regression (b/289983468). The camera IPU hardware cannot handle a frame whose Y plane and UV planes are not contiguous. Aligning the height by 16 makes the space between the planes. This CL aligns the height by 8. This will not cause the camera problem today because all the heights of camera stack exposed as supported are aligned by 8. BUG=b:274756117, b:289983468 TEST=PSNR 31.946 => 34.012 in video.EncodeAccelPerf.av1_180p_desktop2 on rex Change-Id: I96907ea372bae6740559a67f71856a89811c7cc8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4739135 Reviewed-by: Chia-I Wu <olv@google.com> Tested-by: Hirokazu Honda <hiroh@chromium.org> Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
2023-08-11minigbm: update to _FORTIFY_SOURCE=3George Burgess IV
Since this project explicitly specifies its FORTIFY level, update it to the level CrOS wants to move to. This isn't _removed_, since it's copied from a template file, and consistency with that seems useful. The template file this was copied from was updated in crrev.com/c/4735413. BUG=b:288411201 TEST=CQ+1 Change-Id: I0b3cb733eaffd08611aad7ce58e463a7247da737 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4707718 Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Tested-by: George Burgess <gbiv@chromium.org> Commit-Queue: George Burgess <gbiv@chromium.org>
2023-08-09drv: Do not send log msgs to stdoutLina Versace
On non-Android, minigbm sent error messages to stderr, and all other log messages to stdout. Logging should NEVER go to stdout, because it corrupts the output of programs that send structured output to stdout, such as vulkaninfo. BUG=none TEST=build Change-Id: Ia36285af50e3a2fa0fdf91f1e12a6c64ebc13944 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4756817 Auto-Submit: Lina Versace <linyaa@google.com> Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org> Tested-by: Lina Versace <linyaa@google.com> Reviewed-by: Dawn Han <dawnhan@google.com> Commit-Queue: Lina Versace <linyaa@google.com>
2023-07-18minigbm: add some validation check in cros_grallocdawnhan
1. Check if the buffer handle - Validate if the handle is null or not - Check the size of the handle to make sure it will not cause oob read/write 2. Check num_planes to make sure it matches with numFds 3. Created b/291606090 for the follow up about updating cros_gralloc_driver level api to take cros_gralloc_handle_t BUG=b:289303132 TEST=patch the change on rvc-arc and tested with ARCVM Change-Id: Id03ec45f928fe6db62bb1722ee0dbc6c8831fd46 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4674736 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Dawn Han <dawnhan@google.com> Tested-by: Dawn Han <dawnhan@google.com>
2023-07-17minigbm: update format of mediatek.cDawn Han
Run clang-format to correct the format in mediatek.c BUG=N/A TEST=CQ Change-Id: I2c6630792ade67fd09a4fd8e7d13140ec4da7c90 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4517884 Commit-Queue: Dawn Han <dawnhan@google.com> Tested-by: Dawn Han <dawnhan@google.com> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2023-07-07Revert "i915: Vertical align video encode buffers to macroblock size"Ren-Pei Zeng
This reverts commit 670301f61a843aa3014176632239096774e75642. Reason for revert: b/289983468 Original change's description: > i915: Vertical align video encode buffers to macroblock size > > Verically align buffers used in video encoding to the size of a > macroblock. This prevents uninitialized data from entering the encoding > pipeline, which causes quality degradations. > > BUG=b:274756117 b:277690367 > TEST=Tested by running "./video_encode_accelerator_perf_tests > --codec=av1 --bitrate=84120 180p_perf.yuv 180p_perf.json > --gtest_filter=VideoEncoderTest.MeasureProducedBitstreamQuality" on a > Rex. The average PSNR goes from 34.4939dB to 38.6649dB. > > Change-Id: I6783f1986869e11b1dd19e949d25c4450229c4c6 > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4615698 > Tested-by: Justin Green <greenjustin@google.com> > Commit-Queue: Justin Green <greenjustin@google.com> > Reviewed-by: Hirokazu Honda <hiroh@chromium.org> > Reviewed-by: Dominik Behr <dbehr@chromium.org> BUG=b:274756117 b:277690367 Change-Id: I0ac9a1fecd74bffa9c10cebaa38469331224b9b8 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4671806 Commit-Queue: Ren-Pei Zeng <kamesan@chromium.org> Tested-by: Ren-Pei Zeng <kamesan@chromium.org> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
2023-07-05minigbm: drv: Fix MINIGBM_DEBUG usage on AndroidAmit Pundir
MINIGBM_DEBUG usage in drv_get_os_option() is broken on Cuttlefish at the moment and we run into following selinux denial. W libc : Access denied finding property "MINIGBM_DEBUG". I auditd : type=1400 audit(0.0:39): avc: denied { read } \ for comm="android.hardwar" name="u:object_r:default_prop:s0" \ dev="tmpfs" ino=184 scontext=u:r:hal_graphics_allocator_default:s0 \ tcontext=u:object_r:default_prop:s0 tclass=file permissive=0 On Android builds, MINIGBM_DEBUG can translate to a vendor property if not used as an env variable. To fix that property usage on Android, we start with using the proper (lowercase) Android property nomenclature. This will sadly break the usage of MINIGBM_DEBUG env variable on Android builds and will force users to use vendor.minigbm.debug property instead. Change-Id: I05a6213d2460cf5f7d20d3d04a014965ca03bebe Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4630128 Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Jason Macnak <natsu@google.com> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
2023-06-27mediatek: Add BO_USE_PROTECTED use_flag for gpu and video decoderJason-JH.Lin
BO_USE_PROTECTED use_flag is for allocating a secure buffer from GEM, so we also need to add it for the formats of gpu and video decoder. BUG=b:248609774 TEST="emerge-cherry libdrm minigbm" pass Change-Id: I36f433ac173724a4c3794ad9642dea1f8d9db051 Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4603653 Reviewed-by: Dominik Behr <dbehr@chromium.org> Reviewed-by: Jeffrey Kardatzke <jkardatzke@google.com> Tested-by: Jeffrey Kardatzke <jkardatzke@google.com> Commit-Queue: Jeffrey Kardatzke <jkardatzke@google.com>
2023-06-27i915: Vertical align video encode buffers to macroblock sizeJustin Green
Verically align buffers used in video encoding to the size of a macroblock. This prevents uninitialized data from entering the encoding pipeline, which causes quality degradations. BUG=b:274756117 b:277690367 TEST=Tested by running "./video_encode_accelerator_perf_tests --codec=av1 --bitrate=84120 180p_perf.yuv 180p_perf.json --gtest_filter=VideoEncoderTest.MeasureProducedBitstreamQuality" on a Rex. The average PSNR goes from 34.4939dB to 38.6649dB. Change-Id: I6783f1986869e11b1dd19e949d25c4450229c4c6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4615698 Tested-by: Justin Green <greenjustin@google.com> Commit-Queue: Justin Green <greenjustin@google.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Dominik Behr <dbehr@chromium.org>
2023-06-23Don't print verbose messages by defaultRoman Stratiienko
Apply the same logic as ALOGV from cutils/log.h does. Change-Id: Ia372ae760a23ad193c33a9bdb30296122b6d8a3f Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4432230 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
2023-06-21virgl: Store format modifier in blob's bo metaBartłomiej Grzesik
Prior this change the format modifier was not set for blob's meta, which lead to incorrect reporting of format modifier to clients. This changes fixes this issue. BUG=b:267299128 TEST=ExoPlayer demo app Change-Id: I15c2f9095d3cb20e2a5a34d749af6657e98f7ba6 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4628256 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>