Skip to content

GPU support packages for Sky1/CD8180: vendor Mali UMD, GPU stack switcher, Vulkan compat layer

Notifications You must be signed in to change notification settings

Sky1-Linux/sky1-gpu-support

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sky1-gpu-support

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.

Packages

cix-gpu-umd (2.0.0-sky1.3)

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 library
  • libEGL_cix, libgbm, libOpenCL backends 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.

sky1-gpu-switcher (1.0.0-sky1.3)

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 (vendor or mesa, default mesa)
  • Blacklists both GPU kernel modules, then loads the correct one (mali_kbase or panthor)
  • Deploys appropriate Vulkan ICD configs, implicit layers, and ld.so.conf fragments from staging
  • Includes gpu-compat-run wrapper for routing OpenGL through Zink on the vendor stack
  • Includes sky1-gpu-status diagnostic tool

Depends on cix-gpu-kmd-dkms.

vk-compat-layer (source)

Vulkan implicit layer that patches feature gaps in the Mali vendor driver so desktop compositors and applications work correctly:

  • Shims fillModeNonSolid and extendedDynamicState3PolygonMode (Mali does not support wireframe rendering)
  • Emulates VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR via VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
  • Injects VK_EXT_physical_device_drm properties (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)

Building

Build all .deb packages:

./build-debs.sh

This 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-layer

Build dependency: libvulkan-dev (for Vulkan headers).

Usage

Install both packages:

sudo apt install ./cix-gpu-umd_*.deb ./sky1-gpu-switcher_*.deb

The 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-status

OpenGL on the vendor stack

The 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

Related repositories

License

  • UMD binaries (/opt/cixgpu-pro/, firmware): ARM Mali EULA (see cix-gpu-umd/usr/share/doc/cix-gpu-umd/copyright). Redistributed under clause 1.1(ii).
  • gpu-switcher, vk-compat-layer, build scripts: MIT

About

GPU support packages for Sky1/CD8180: vendor Mali UMD, GPU stack switcher, Vulkan compat layer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published