Vendor GPU userspace packages for the CIX Sky1 (CD8180) SoC with ARM Mali Valhall (Titan) GPU. Provides a vendor Mali driver stack as an alternative to the default open-source Panthor + Mesa stack, selectable at boot time via kernel command line.
Part of Sky1 Linux.
Mali UMD (user-mode driver) r54p1 binaries for Vulkan 1.4.305 (driver version 54.1.0).
Contents:
libmali.so.0.54.1-- core Mali userspace librarylibEGL_cix,libgbm,libOpenCLbackends in/opt/cixgpu-pro/- Vulkan ICD (
mali.json), EGL vendor JSON (40_cix.json), OpenCL ICD (mali.icd) - Mali CSF firmware (
mali_csffw.bin) - Bundled Vulkan WSI layer (
libVkLayer_window_system_integration.so) - Bundled Vulkan compat layer (
libVkLayer_sky1_compat.so) - CIX tools:
mali_clcc,malisc,gpu_utilization_clock_tracing
Depends on sky1-gpu-switcher.
Boot-time GPU stack selector. A systemd oneshot service that runs before display-manager.service and configures the system for either the vendor or open-source GPU stack.
- Reads
sky1.gpu=from kernel command line (vendorormesa, defaultmesa) - Blacklists both GPU kernel modules, then loads the correct one (
mali_kbaseorpanthor) - Deploys appropriate Vulkan ICD configs, implicit layers, and
ld.so.conffragments from staging - Includes
gpu-compat-runwrapper for routing OpenGL through Zink on the vendor stack - Includes
sky1-gpu-statusdiagnostic tool
Depends on cix-gpu-kmd-dkms.
Vulkan implicit layer that patches feature gaps in the Mali vendor driver so desktop compositors and applications work correctly:
- Shims
fillModeNonSolidandextendedDynamicState3PolygonMode(Mali does not support wireframe rendering) - Emulates
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHRviaVK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR - Injects
VK_EXT_physical_device_drmproperties (Mali has no DRM render node; this lets Zink match the Vulkan device to GBM/DRM) - Fixes
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(EXT reports 0, should mirror KHR value)
Build all .deb packages:
./build-debs.shThis compiles the compat layer (make -C vk-compat-layer), copies the resulting .so into the UMD package tree, and produces two .deb files via dpkg-deb.
Build the compat layer standalone:
make -C vk-compat-layerBuild dependency: libvulkan-dev (for Vulkan headers).
Install both packages:
sudo apt install ./cix-gpu-umd_*.deb ./sky1-gpu-switcher_*.debThe default GPU stack is Panthor + Mesa (open-source). To switch to the vendor Mali stack, add to the kernel command line:
sky1.gpu=vendor
To switch back to Mesa:
sky1.gpu=mesa
The change takes effect on next boot. Check the active stack with:
sky1-gpu-statusThe vendor Mali driver provides Vulkan only. OpenGL 4.6 is achieved through Mesa's Zink driver, which translates OpenGL calls to Vulkan. Use the gpu-compat-run wrapper to launch OpenGL applications with the correct environment:
gpu-compat-run glxgears- cix-gpu-kmd -- Mali kernel-mode driver (DKMS)
- vulkan-wsi-layer -- Vulkan WSI layer
- linux -- Mainline Linux kernel with Sky1 support
- UMD binaries (
/opt/cixgpu-pro/, firmware): ARM Mali EULA (seecix-gpu-umd/usr/share/doc/cix-gpu-umd/copyright). Redistributed under clause 1.1(ii). - gpu-switcher, vk-compat-layer, build scripts: MIT