summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2024-04-04 01:31:11 +0530
committerAmit Pundir <amit.pundir@linaro.org>2024-04-05 16:41:54 +0000
commite4d2a6165f94cf2b061fe7455705dd4146bee740 (patch)
tree61269c16463c3f6d17037ae55d6d9de1f22e414b
parent6fd947effdab0a982342d702d7a58fa9f699a690 (diff)
downloaddragonboard-e4d2a6165f94cf2b061fe7455705dd4146bee740.tar.gz
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 <amit.pundir@linaro.org> Change-Id: I1e2462b8f2dc848bc31a268aa1de405248cf16e5
-rw-r--r--shared/graphics/mesa/BoardConfig.mk2
-rw-r--r--sm8x50/BoardConfig.mk4
-rw-r--r--sm8x50/init.environ.rc3
-rw-r--r--sm8x50/sm8x50.mk13
4 files changed, 18 insertions, 4 deletions
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)