From e4d2a6165f94cf2b061fe7455705dd4146bee740 Mon Sep 17 00:00:00 2001 From: Amit Pundir Date: Thu, 4 Apr 2024 01:31:11 +0530 Subject: sm8x50: Add Mesa (zink+turnip) support Add Mesa support in sm8x50-userdebug device config but do not enable it yet, until a740* Adreno binaries land in linux-firmware project. TARGET_USES_SWR still defaults to "true" i.e. we boot with s/w rendering by default. SM8550-HDK uses Zink Gallium and Freedreno/Turnip Vulkan driver to boot with h/w accelerated Mesa graphics. Turnip Vulkan driver doesn't have Android Hardware Buffer support implemented yet, so setting HWUI renderer to SkiaGL. This pending Mesa MR fixes an AOSP breakage upstream https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28579 Signed-off-by: Amit Pundir Change-Id: I1e2462b8f2dc848bc31a268aa1de405248cf16e5 --- shared/graphics/mesa/BoardConfig.mk | 2 +- sm8x50/BoardConfig.mk | 4 ++++ sm8x50/init.environ.rc | 3 +++ sm8x50/sm8x50.mk | 13 ++++++++++--- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 sm8x50/init.environ.rc diff --git a/shared/graphics/mesa/BoardConfig.mk b/shared/graphics/mesa/BoardConfig.mk index 8836060..e05a372 100644 --- a/shared/graphics/mesa/BoardConfig.mk +++ b/shared/graphics/mesa/BoardConfig.mk @@ -17,7 +17,7 @@ BOARD_GPU_DRIVERS := freedreno ifeq ($(TARGET_BUILD_MESA),true) BOARD_MESA3D_USES_MESON_BUILD := true -BOARD_MESA3D_GALLIUM_DRIVERS := freedreno +BOARD_MESA3D_GALLIUM_DRIVERS := freedreno zink BOARD_MESA3D_VULKAN_DRIVERS := freedreno else BOARD_USE_CUSTOMIZED_MESA := true diff --git a/sm8x50/BoardConfig.mk b/sm8x50/BoardConfig.mk index 9015b1c..4995b75 100644 --- a/sm8x50/BoardConfig.mk +++ b/sm8x50/BoardConfig.mk @@ -48,5 +48,9 @@ BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/utils/dlkm_loader/sepoli # Graphics include device/linaro/dragonboard/shared/graphics/drm_hwcomposer/BoardConfig.mk +ifeq ($(TARGET_USES_SWR), true) BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/graphics/swangle/sepolicy +else +include device/linaro/dragonboard/shared/graphics/mesa/BoardConfig.mk +endif BOARD_SEPOLICY_DIRS += device/linaro/dragonboard/shared/graphics/minigbm_msm/sepolicy diff --git a/sm8x50/init.environ.rc b/sm8x50/init.environ.rc new file mode 100644 index 0000000..bd44494 --- /dev/null +++ b/sm8x50/init.environ.rc @@ -0,0 +1,3 @@ +# set up the global environment +on early-init + export MESA_LOADER_DRIVER_OVERRIDE zink diff --git a/sm8x50/sm8x50.mk b/sm8x50/sm8x50.mk index 79d5441..55f8476 100644 --- a/sm8x50/sm8x50.mk +++ b/sm8x50/sm8x50.mk @@ -2,10 +2,17 @@ $(call inherit-product, device/linaro/dragonboard/full.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) -# Target boots with software rendering -TARGET_USES_SWR := true +# Target boots with software rendering by default +TARGET_USES_SWR ?= true $(call inherit-product, device/linaro/dragonboard/shared/graphics/drm_hwcomposer/device.mk) -$(call inherit-product, device/linaro/dragonboard/shared/graphics/swangle/device.mk) +ifeq ($(TARGET_USES_SWR), true) + $(call inherit-product, device/linaro/dragonboard/shared/graphics/swangle/device.mk) +else + $(call inherit-product, device/linaro/dragonboard/shared/graphics/mesa/device.mk) + TARGET_USES_VULKAN := true + PRODUCT_VENDOR_PROPERTIES += debug.hwui.renderer=skiagl + PRODUCT_COPY_FILES += $(LOCAL_PATH)/init.environ.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.environ.rc +endif $(call inherit-product, device/linaro/dragonboard/shared/graphics/minigbm_msm/device.mk) $(call inherit-product, device/linaro/dragonboard/sm8x50/device.mk) -- cgit v1.2.3