From da5a6591e849fb2fe5cf0e63c039a60c8cbcd255 Mon Sep 17 00:00:00 2001 From: sydarn Date: Fri, 13 Feb 2026 18:16:39 +0100 Subject: [PATCH] rk3566: vulkan sorta' --- projects/ROCKNIX/devices/RK3566/options | 8 +++- .../graphics/libmali-vulkan/package.mk | 39 +++++++++++++++---- .../graphics/libmali-vulkan/sources/mali.json | 2 +- .../quirks/platforms/RK3566/090-ui_service | 4 ++ 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/projects/ROCKNIX/devices/RK3566/options b/projects/ROCKNIX/devices/RK3566/options index 7470feddd9..b5aba0e635 100644 --- a/projects/ROCKNIX/devices/RK3566/options +++ b/projects/ROCKNIX/devices/RK3566/options @@ -48,6 +48,12 @@ # For maximum cross compatbility PREFER_GLES="yes" + # VULKAN_SUPPORT + VULKAN_SUPPORT="yes" + + # Vulkan implementation to use (vulkan-loader / no) + VULKAN="vulkan-loader" + # Displayserver to use (wl / no) DISPLAYSERVER="wl" @@ -69,7 +75,7 @@ FIRMWARE="" # Additional packages to install - ADDITIONAL_PACKAGES="libmali" + ADDITIONAL_PACKAGES="libmali libmali-vulkan" ADDITIONAL_PACKAGES_32BIT="libmali" # Debug tty path diff --git a/projects/ROCKNIX/packages/graphics/libmali-vulkan/package.mk b/projects/ROCKNIX/packages/graphics/libmali-vulkan/package.mk index 18907f2487..c5484cf4eb 100644 --- a/projects/ROCKNIX/packages/graphics/libmali-vulkan/package.mk +++ b/projects/ROCKNIX/packages/graphics/libmali-vulkan/package.mk @@ -2,23 +2,46 @@ # Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX) PKG_NAME="libmali-vulkan" -PKG_VERSION="11759f18e195e89300bcfeb5ada0d977a7851151" PKG_LICENSE="mali_driver" PKG_ARCH="arm aarch64" -PKG_URL="https://github.com/r3claimer/packages/raw/${PKG_VERSION}/g610-vulkan-mali.tar.gz" -PKG_SOURCE_NAME="g610-vulkan-mali.tar.gz" PKG_DEPENDS_TARGET="toolchain mesa vulkan-tools vulkan-headers libmali vulkan-wsi-layer" PKG_TOOLCHAIN="manual" PKG_LONGDESC="Vulkan Mali drivers for RK3588 soc" +case ${DEVICE} in + RK3588) + PKG_VERSION="11759f18e195e89300bcfeb5ada0d977a7851151" + PKG_SOURCE_NAME="g610-vulkan-mali.tar.gz" + FILENAME="libmali-valhall-g610-g6p0-wayland-gbm-vulkan.so" + # This is some weird default? I didn't want to change behavior of rk3588 + APIVER="1.0.5" + PKG_URL="https://github.com/r3claimer/packages/raw/${PKG_VERSION}/g610-vulkan-mali.tar.gz" + ;; + RK3566) + PKG_VERSION="rk3576" + PKG_SOURCE_NAME="g52-vulkan-mali.tar.gz" + FILENAME="libmali-vulkan-g52.so" + APIVER="1.2.207" + PKG_URL="https://github.com/sydarn/libmali/releases/download/${PKG_VERSION}/libmali.so.1.9.0.zip" + ;; +esac + # Need a custom unpack() as --strip-components=1 in extract script strips everything unpack() { - mkdir -p ${PKG_BUILD} - tar -xf ${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME} -C ${PKG_BUILD} +mkdir -p ${PKG_BUILD} +case ${DEVICE} in + RK3588) + tar -xf ${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME} -C ${PKG_BUILD} + ;; + RK3566) + unzip -j ${SOURCES}/${PKG_NAME}/${PKG_SOURCE_NAME} libmali.so.1.9.0 -d ${PKG_BUILD} + mv ${PKG_BUILD}/libmali.so.1.9.0 ${PKG_BUILD}/${FILENAME} + ;; +esac } make_target() { - : + sed -i "s~@APIVER@~${APIVER}~g" ${PKG_BUILD}/mali.json } makeinstall_target() { @@ -26,9 +49,9 @@ makeinstall_target() { mkdir -p ${INSTALL}/usr/share/vulkan/implicit_layer.d mkdir -p ${INSTALL}/usr/share/vulkan/icd.d - cp -r ${PKG_BUILD}/libmali-valhall-g610-g6p0-wayland-gbm-vulkan.so ${INSTALL}/usr/lib/ + cp ${PKG_BUILD}/${FILENAME} ${INSTALL}/usr/lib/ cp -r ${PKG_BUILD}/mali.json ${INSTALL}/usr/share/vulkan/icd.d - ln -sfv /usr/lib/libmali-valhall-g610-g6p0-wayland-gbm-vulkan.so ${INSTALL}/usr/lib/libMaliVulkan.so.1 + ln -sfv /usr/lib/${FILENAME} ${INSTALL}/usr/lib/libMaliVulkan.so.1 ln -sfv /usr/lib/libMaliVulkan.so.1 ${INSTALL}/usr/lib/libMaliVulkan.so } diff --git a/projects/ROCKNIX/packages/graphics/libmali-vulkan/sources/mali.json b/projects/ROCKNIX/packages/graphics/libmali-vulkan/sources/mali.json index d8de25dbb6..4ae92f441b 100644 --- a/projects/ROCKNIX/packages/graphics/libmali-vulkan/sources/mali.json +++ b/projects/ROCKNIX/packages/graphics/libmali-vulkan/sources/mali.json @@ -2,6 +2,6 @@ "file_format_version" : "1.0.0", "ICD" : { "library_path" : "/usr/lib/libMaliVulkan.so.1", - "api_version" : "1.0.5" + "api_version" : "@APIVER@" } } diff --git a/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3566/090-ui_service b/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3566/090-ui_service index 25b69c38d2..67cbbd0d02 100755 --- a/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3566/090-ui_service +++ b/projects/ROCKNIX/packages/hardware/quirks/platforms/RK3566/090-ui_service @@ -6,5 +6,9 @@ ### Set the default device configuration cat </storage/.config/profile.d/090-ui_service UI_SERVICE="sway.service essway.service" +if [ "$(gpudriver)" = "libmali" ]; then MALI_WAYLAND_AFBC=0 +# libmali has no working Xorg +unset DISPLAY +fi EOF