Repository navigation
Releases: MineGraph-bilibili/panvk-Android
Release list
Mesa 26.3.0 panvk.6
Mesa 26.3.0 panvk.6 — Release Notes
本文件为中英双语发布说明草稿,对应构建产物
Mesa.26.3.0-panvk.6.zip。
简体中文
发布内容
| 项目 | 值 |
|---|---|
| 产物 | Mesa.26.3.0-panvk.6.zip |
| 大小 | 7,022,701 字节 |
| SHA-256 | 1f472f514d2525b1c8d4821e1ddf53aa56bed5d4c8d6cc60c1cc2f4ef72490b5 |
| MD5 | 7d444ffb60d7a3fcc8de4d950cb73279 |
| 包内文件 | libvulkan_panfrost.so、meta.json |
packageVersion / minApi |
26.3.0-panvk.6 / 30 |
| 驱动显示名 / 版本 | Mesa 26.3.0 panvk / Mesa 26.3.0-devel |
驱动提供 DirectX 9/10/11(DXVK)与 DirectX 12(VKD3D-Proton)所需的 Vulkan 能力,并内置 BC1–BC7 纹理转码(ASTC 4x4 LDR/HDR、BC2/BC3 走 AFRC、BC4/BC5 精确 R8/RG8)。
本版改动
以下为本仓库 panvk-Android v1 分支自 2026-10-07 起的提交(共 18 个):
设备适配与诊断(10-07 ~ 10-10)
11cde7a8物理设备枚举时输出一次纹理压缩摘要(ASTC LDR/HDR、ETC2、BC1–7 原生/模拟、实际textureCompressionBC),供模拟器与 vkd3d-proton 判断走哪条纹理路径;仅日志,不改行为。099dd7cbAIMapper 不可用时改走 MTKgralloc_extra_query元数据:探测 mediatek/arm/ro.board.platform/ro.hardware/default 多个 mapper 名;只有拿到精确 stride/size 才接受缓冲,尺寸不符时告警,PANVK_KBASE_NO_GUESS=1时直接拒绝导入。
源码树与补丁栈对齐(10-24)
1b808c83源码树替换为 Mesa5a07217f(26.3.0-devel)+ 221 补丁:kbase(/dev/mali0)后端、CSF v10–v14、Valhall v9 JM、Bifrost v6/v7 JM 统一 ICD;BCn→ASTC/ETC2/EAC 转码栈;render-pass 合并与延迟 fragment 等待;dma-buf 导入默认BASE_MEM_IMPORT_SHARED | BASE_MEM_COHERENT_SYSTEM;kbase ABI 优先 1.18 CS-group(40 B)/ 1.14 tiler-heap(24 B)。8ffdb16akbase bring-up 系列(common / android / kbase-common / app-loader):AHB→dma-buf fd、vendor mapper(HIDL mapper4)、/dev/mali*枚举、kbase 队列与 WSI 集成、导出 Vulkan ICD 符号供 Android 加载器热加载。115cba4bAndroid WSI 系列:VK_KHR_android_surface+ AHB swapchain;wsi/018(自研)把 present 压成单次拷贝,去掉中间 bounce 及其同步开销。0b2db769CSF 系列(csf 2 + csf-v11 155):AFBC/modifier、增量 present 与 colorspace、gpu_prerast(几何/细分/XFB/clip-cull/multi-viewport/大 draw 与 indirect 分块)、pipeline-statistics 查询、VK_EXT_multi_draw、kbase 生命周期(tiler heap 续期/预建/回收、sync_file、CSF trace buffer)、BCn→ASTC/ETC2/EAC 的 1.1.3–1.1.5-FC 迭代、vkd3d/DX12 essentials、寄存器分配与编译期优化(152–164)、render-pass 合并与延迟等待(188–210,默认开启)、MTK SLCENOTTY重试(186)、空 polygon list 防护(188)。e0653974JM 系列(v9 28 + v7 5):JM job atom 提交、Vulkan 1.3 multiview、EXEC_VA/JIT、drawIndirectCount、细分/几何/XFB、深度边界模拟、primitive-index override、G77/G78 型号行;v6/v7 与 v9 为实验性,未硬件验证。afc63a42perf/001–008(自研 CPU 端,不改 GPU 可见语义):cache flush 合并、descriptor bind no-op、CSF ring 64 KB→256 KB、import 日志门控、BO wrapper 缓存、异步 tiler-heap 销毁(约 3.2 ms/次)、空 finish_cs 跳过、pool flush 只写高水位(5.6–7.3 μs→1–2 μs)。33b713d5local/001–004:BC 解码分块(PANVK_BC_CHUNK默认 256,避免单个 job 超过 1M invocation 触发 CSF group 超时 0x72/0x41)、容忍不可 seek 的 dma-buf、跳过 lseek fd 探测、补回 kbase 页大小 helper。a381d57b构建与打包工具链(apply-patches / fetch-mesa / bootstrap-host-tools / build-android / prepare-x11-headers / package-android-adpkg / compute-patch-series-id)、profiles/g615-v11-csf.json、cross file、sources.lock与校验数据。8779469c新增BUILDING.md(英文构建指南)与PATCHES.md(221 条补丁逐条说明)。424752d9local/005:VK_KHR_driver_properties报告Panvk/Mesa 26.3.0-devel,DXVK HUD 与 DXVKHUB 显示的驱动名与版本随之统一。
WSI 与补丁归档(10-26)
b2fb307d归档gpu/001AFRC opt-in(未启用)。1b80a0bfwsi/019:present 零拷贝写入窗口 buffer。
稳定性与新编译器(10-30 ~ 10-31)
f3237a1dtiler heap OOM 时改走增量渲染(移植 0161/0167):kbase group 携带tiler_oom_handler与BASE_CSF_TILER_OOM_EXCEPTION_FLAG(1.18/1.25 布局;1.6 回退不支持并告警);三个 subqueue 共用一个 group(CS i = subqueue i),fragment 在每个 pass 末尾发FINISH_FRAGMENT,vt_end/frag_end保持 0;PANVK_KBASE_TILER_IR=0关闭,v11/v13 默认开启,v14 因首个 submit 挂起而关闭。7d0612f1同步上游 Mesa 27.0 panvk 修复:共享 TLS 大小写入 per-job TSD、nir_lower_descriptors的空表 memcpy、null image descriptor 改用 texture 子描述符、depth/stencil resolve 尊重 aspectMask、sRGB resolve 尊重SKIP_TRANSFER_FUNCTION、merged workgroup 决策时机、GetInstanceProcAddr接受 NULL instance;KRAID 同步 17 个上游提交 + 3 个本地 glue 修复;以-Dpanfrost-rust=true构建,运行时PAN_USE_KRAID默认关闭。dbdae635KRAID 选择修复:PAN_USE_KRAID=all只开 compute 与 fragment;无名 fragment shader(PanVK 自己的 blit/present helper)留在 C 后端;v12 以下 vertex 编成 position/varying 两个专用 IDVS 变体。f9d13649从csf-v11移除 152/153/154/160/161/162/163/164 八个 Bifrost RA 补丁(会误编译 spill,重 tiler 负载下产生 GPU translation fault)。
本次产物即用上述源码树以 g615-v11-csf profile 做 release 构建,并执行 llvm-strip --strip-all。
代码基线与致谢
- 代码基线:zenithblue-oss/panvk-kbase-android —— Mesa
26.3.0-devel(5a07217f)与 mali_kbase 补丁栈,本版以其为基线。 - 致谢:GunaCharanTeja/panvk-kbase-android —— mali_kbase 补丁栈的参考实现与补丁来源(含 Patch 123/124 等 Mali-G615 相关补丁),本项目的构建与打包流程亦在其基础上整理。
仓库提交历史
本仓库(MineGraph-bilibili/panvk-kbase-android,我们自己的仓库)当前的提交历史自 2026-10-07 的提交开始:
fe8aac63—ci: set DEBIAN_FRONTEND=noninteractive and NEEDRESTART_MODE=a to avoid apt hang(2026-10-07)
更早的历史与补丁来源见上游基线与各参考仓库。
支持的 GPU
| 状态 | 硬件 | 说明 |
|---|---|---|
| 已验证 | ARM Mali-G715 Immortalis MC12(Valhall v11,CSF) | 我们的实测机型;与 G615 同属 v11(Valhall 4th gen),本包按 g615-v11-csf profile 构建,同一二进制适用于 v11 CSF 硬件 |
| 附带未验证 | CSF v10–v14 系列 | 仓库内含对应补丁序列,本包按 g615-v11-csf profile 构建,未在其他 CSF 型号上实测 |
| 附带未验证 | Valhall v9 / Bifrost v6–v7(JM) | 仓库内含 jm-v9、jm-v7 序列;Mali-G57 MC2 有社区提交记录,Mali-G68 / G77 / G78 尚无需实测结论 |
已知问题
- D3D11 重负载程序长时间运行后仍可能触发 CSF 队列超时(画面冻结、
DEVICE_LOST)。 - 部分 D3D11 游戏会发生 GPU 页面错误(page fault),严重时内核 panic 导致整机重启;本版未包含该修复。
安装
说明:本包按 Winlator Mali(adrenotools 目录结构)打包,eden 无法使用;适配 eden 的版本暂未发布。
推荐用 Winlator Mali 导入驱动:
- 在 Winlator Mali 的「驱动 / Drivers」页导入本 zip(不要解压);列表中出现
Mesa 26.3.0 panvk即导入成功; - 新建或编辑容器,把「GPU 驱动 / Vulkan 驱动」选为
Mesa 26.3.0 panvk; - 其他支持自定义驱动的加载器理论上也可用,但本版只在 Winlator Mali 上验证过;
- 新编译器(KRAID、Rust 着色器后端,
PAN_USE_KRAID)目前属实验性、尚不可用,不建议打开——默认就是关闭的,正常游玩不需要它; - 不要打开 wrapper 的 BCn 转码,也不要启用
bcn_layer的 BCn 转码:PanVK 自带 BCn→ASTC/ETC2/EAC 转码路径,两层叠加会重复转换并相互冲突,表现为花屏或采样错误; - 如需问题排查,可临时设置
PANVK_DEBUG=kbase_diag获取 kbase 侧日志。
English
What's in this release
| Item | Value |
|---|---|
| Artifact | Mesa.26.3.0-panvk.6.zip |
| Size | 7,022,701 bytes |
| SHA-256 | 1f472f514d2525b1c8d4821e1ddf53aa56bed5d4c8d6cc60c1cc2f4ef72490b5 |
| MD5 | 7d444ffb60d7a3fcc8de4d950cb73279 |
| Contents | libvulkan_panfrost.so, meta.json |
packageVersion / minApi |
26.3.0-panvk.6 / 30 |
| Reported name / version | Mesa 26.3.0 panvk / Mesa 26.3.0-devel |
The driver exposes the Vulkan capabilities required by DirectX 9/10/11 (DXVK) and DirectX 12 (VKD3D-Proton), and ships BC1–BC7 texture transcoding (ASTC 4x4 LDR/HDR, AFRC for BC2/BC3, exact R8/RG8 for BC4/BC5).
Changes in this build
These are the commits on our panvk-Android v1 branch since 2026-10-07 (18 commits):
Device bring-up and diagnostics (10-07 – 10-10)
11cde7a8— log a texture-compression summary once at physical-device enumeration (ASTC LDR/HDR, ETC2, BC1–7 native vs emulated, effectivetextureCompressionBC) so emulators and vkd3d-proton can pick the right texture path. Diagnostic only, no behaviour change.099dd7cb— fall back to MTKgralloc_extra_querymetadata when AIMapper is unavailable: probe mediatek/arm/ro.board.platform/ro.hardware/default mapper names; accept a buffer only with exact stride/size metadata, warn on mismatch, and refuse the import whenPANVK_KBASE_NO_GUESS=1.
Source tree and patch stack alignment (10-24)
1b808c83— replace the tree with Mesa5a07217f(26.3.0-devel) plus the 221-patch series: kbase (/dev/mali0) backend, CSF v10–v14, Valhall v9 JM and Bifrost v6/v7 JM in one universal ICD; BCn→ASTC/ETC2/EAC transcode; render-pass merge and deferred fragment waits; dma-buf imports default toBASE_MEM_IMPORT_SHARED | BASE_MEM_COHERENT_SYSTEM; kbase ABI prefers the 1.18 CS-group (40 B) and 1.14 tiler-heap (24 B) layouts.8ffdb16a— kbase bring-up series (common / android / kbase-common / app-loader): AHB→dma-buf fd, vendor mapper (HIDL mapper4),/dev/mali*enumeration, kbase queue and WSI integration, exported Vulkan ICD symbols for the Android loader.115cba4b— Android WSI series:VK_KHR_android_surfaceplus an AHB-backed swapchain;wsi/018(our own) trims present to a single copy, dropping the intermediate bounce and its synchronisation.0b2db769— CSF series (csf 2 + csf-v11 155): AFBC/modifier, incremental present and colorspace, gpu_prerast (geometry/tessellation/XFB/clip-cull/multi-viewport, large and indirect draw chunking), pipeline-statistics queries,VK_EXT_multi_draw, kbase lifecycle (tiler-heap renewal/pre-creation/reclaim, sync_file, CSF trace buffer), BCn→ASTC/ETC2/EAC 1.1.3–1.1.5-FC iterations, vkd3d/DX12 essentials, register-allocation and compile-time work (152–164), render-pass merge and deferred waits (188–210, on by default), MTK SLCENOTTYretry (186), empty polygon-list guard (188).e0653974— JM series (v9 28 + v7 5): JM job-atom submission, Vulkan 1.3 multiview, EXEC_VA/JIT, drawIndirectCount, tessellation/geometry/XFB, depth-bounds emulation, primitive-index override, G77/G78 model rows; v6/v7 and v9 are experimental and not hardware-validated.afc63a42— perf/001–008 (our own CPU-side work, no GPU-visible change): merged cache flush, descriptor-bind no-op, CSF ring 64 KB→256 KB, import-log gating, BO-wrapper cache, async tiler-heap destroy (~3.2 ms each), skip empty finish_cs, pool flush only up to the write high-water mark (5.6–7.3 μs→1–2 μs).33b713d5— local/001–004: chunked BC decode (PANVK_BC_CHUNK, default 256, so a single job never exceeds 1M invocations and trips the CSF group timeout 0x72/0x41), tolerate unseekable dma-bufs, skip the lseek fd probe, restore the kbase page-size helper.a381d57b— patch/build/package toolchain (apply-patches / fetch-mesa / bootstrap-host-tools / build-android / prepare-x11-headers / packag...
Mesa 26.3.0 panvk.4 - D3D12 (vkd3d) support for Mali-G610
Mesa 26.3.0 panvk.4 — Mali-G610 D3D12 (vkd3d) 支持修复
Mali-G610 (Valhall v10) D3D12/vkd3d 支持修复 + kbase 老 BSP 内核兼容性改进。
修复内容
1. D3D12 / vkd3d 支持(重点修复)
- vkd3d-proton 创建 D3D12 设备时硬性要求
robustBufferAccess2,而 panvk 此前仅在 arch 11+(G715/G720)上暴露该 feature。Mali-G610 / G710(arch 10)上D3D12CreateDevice直接返回VK_ERROR_FEATURE_NOT_PRESENT,所有 D3D12 应用静默失败。 - 现在同样在 v10 上暴露
robustBufferAccess2。v10 编译器本已为 corerobustBufferAccess(原值为 true)对所有 buffer 访问做边界检查,且nullDescriptor早已支持——逐元素边界检查天然满足更严格的 robustBufferAccess2 语义。
2. 老 BSP 内核 MEM_ALLOC_EX 兼容
- 部分 BSP 内核宣传 uAPI ≥ 1.9 但从未实现
KBASE_IOCTL_MEM_ALLOC_EX(ioctl 返回 ENOTTY),导致 BO 分配全部失败、vkCreateDevice无法完成。 - 现在收到 ENOTTY 时自动回退到兼容子集 legacy
KBASE_IOCTL_MEM_ALLOC(相同前四个输入字段、相同输出布局)。
3. CreateDevice 失败诊断
vkCreateDevice失败路径增加 PANVK_DBG 诊断日志(仅错误路径,成功路径开销可忽略),便于后续定位问题。
构建验证
- 已知 D3D11 / DXVK 路径在 G610 上工作正常(DXVK 2.3.1 实测 device + swapchain 创建成功);D3D12 / vkd3d 路径为本次修复重点。
安装
Winlator → GPU 驱动 → 导入本 zip(libvulkan_panfrost.so + meta.json,minApi 30)。
测试提示
若 D3D12 应用仍有问题,请在容器环境变量加:
VKD3D_LOG=debug
VKD3D_LOG_FILE=/sdcard/vkd3d.log
并把 vkd3d.log 反馈上来。
校验值
| 文件 | 值 |
|---|---|
| libvulkan_panfrost.so md5 | 34b012050edf57aacc51f6ac1dcb573e |
| libvulkan_panfrost.so sha256 | 1473315e42d70bf1c6035b2c09c73f742669be4f04187db03ba7328a8de4de33 |
| libvulkan_panfrost.so 大小 | 18,551,344 B |
| zip md5 | 71d855ada65d8aa0701dbef95800e4bf |
| zip 大小 | 4,149,159 B |
Mesa 26.3.0 panvk
Mesa 26.3.0 panvk
Android Vulkan driver package for Mali-G720 / G715 / G710 / G615 / G610 (kbase CSF uAPI), built from Mesa 26.3.0-devel with the panvk kbase-CSF backend.
libvulkan_panfrost.so · minApi 30 · Winlator (DRI3 dmabuf) / Eden (ANB)
What's new
- BCn texture emulation (BC1-BC7 / RGTC / S3TC) — these GPUs have no hardware BC support. Compressed textures now carry a raw-block plane that is decoded on the GPU by precompiled compute shaders at upload / image-copy / zero-initialized-layout-transition time; sampled views read the decoded plane. This makes castable-format BC textures usable by vkd3d-proton (DX12) and DXVK titles. Debug switches:
PANVK_DEBUG=no_bc_emul,no_bc_eager,no_bc_zeroinit,bc_trace. - vkd3d compatibility set:
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,gl_DrawID(draw record index passed to RUN_IDVS), rewrittenVK_EXT_multi_drawentry points, and reporting ofrobustImageAccess2,shaderClipDistance/shaderCullDistanceandtransformFeedbackQuerieson v10+. - kbase CSF stability & memory: single merged CSG for all subqueues (VT/FRAG/COMPUTE as CSI 0/1/2) fixing DX12 stream-progress stalls; retired tiler-heap generations are reclaimed on fence waits to cut steady-state memory; tiler heap budget raised to 512 chunks so DX12-class geometry no longer triggers firmware OOM descheduling.
- Driver device name reported as
Mesa 26.3.0 panvk (MineGraph).
Carried over from earlier builds: GPU model detection for six Mali part numbers with arch v10/v11/v12 fallback; DRI3 dmabuf enabled by default (SHM fallback); gralloc RGB-layout guessing when the vendor mapper is blocked by SELinux; Android ANB import via native-handle fd traversal; per-generation tiler-heap descriptor slots; CSF_EVENT event path fix; MAX_VBS=32; compiler-wide mutex preventing multi-threaded pipeline-compile deadlocks.
vkd3d test
Hades II (DX12 → vkd3d-proton) on MT6985 (Mali-G715) with Winlator, 46 FPS:
Supported GPUs
| GPU | gpu_id | arch | SKU |
|---|---|---|---|
| Mali-G720 | 0xc0000000 / 0xc0010000 | v12 | TTIX |
| Mali-G715 | 0xb0020000 | v11 | TTUX |
| Mali-G615 | 0xb0030000 | v11 | LTUX |
| Mali-G710 | 0xa0020000 | v10 | TTU |
| Mali-G610 | 0xa0070000 | v10 | LTU |
Other Mali parts fall back by architecture (v10 / v11 / v12).
Compatibility notes
- DX12 (vkd3d-proton) and DX9/DX11 (DXVK) games can run; a few DX9/DX11 titles may still be unstable on some devices — use with care.
- BCn emulation trades memory for compatibility: each BC image also keeps a decoded plane, so compressed textures use more RAM than on hardware-BC GPUs.
Install
Install the driver package through the Winlator or Eden driver manager (driver library libvulkan_panfrost.so).
Checksums
Mesa.26.3.0.panvk.zipSHA-256:779C882E36655A288A5691252E0A1E87EA54168FDA4A87980E8AEEF27816FC99- MD5:
08152FAF391A554E1ECCE5CDAEDEC247
Acknowledgments
- zenithblue-oss/panvk-kbase-android — our BCn GPU-decode emulation was designed with reference to their vkd3d BCn emulation work. Many thanks to the author!
- wonderkast02/panvk-g720-kbase-csf — upstream baseline (Mesa 26.3.0-devel, kbase CSF backend).
- The Mesa and panvk developer communities.
Mesa 26.3.0 panvk
Mesa 26.3.0 panvk — 首个 Release
基于 wonderkast02/panvk-g720-kbase-csf(Mesa 26.3.0-devel,Mali kbase CSF 后端)二次修改的 Android 原生 Vulkan 驱动包。
⚠️ 重要提示:本驱动不支持 vkd3d(DX12→Vulkan 转译)。部分 DX9 或 DX11 游戏(DXVK)可能出现卡死甚至设备重启现象,请谨慎使用。
支持的 GPU
| GPU | 识别特征 | arch |
|---|---|---|
| Mali-G720 | TTIX | v12 |
| Mali-G715 | TTUX | v11 |
| Mali-G615 | LTUX | v11 |
| Mali-G710 | TTU | v10 |
| Mali-G610 | LTU | v10 |
启动时按 gpu_id 精确识别 GPU 型号;未列出的 Mali 型号按 arch 兜底(v10/v11/v12)。uAPI 版本经 UK 11.x minor 降序阶梯 VERSION_CHECK 自动匹配,兼容不同内核 kbase 版本。
相对上游的主要修改
- 多 GPU 型号识别:kmod 层扩展 G710/G610/G615/G715/G720 精确匹配 + arch 兜底
- DRI3 dmabuf 默认开启:不依赖容器 env(防启动器重写容器配置丢失变量),可显式回退 SHM
- gralloc 猜测 RGB 布局导入:SELinux 拦截
mapper.mediatek.so时的降级路径 - Android ANB 导入修复:按 native_handle fd 遍历(修复 Eden
vkCreateImageINVALID_EXTERNAL_HANDLE 闪退) - 堆旋转无排空语义 + per-generation tiler heap desc slot(GPU VA 结构性防泄漏)
- CSF_EVENT 事件路径修复(概率性 GPU 静默挂流)
- MAX_VBS=32:顶点缓冲上限对齐 Eden 预期(Maxwell 硬件 32)
- 编译器全程互斥锁:多线程 pipeline 编译防死锁
- 验证基线:
NEEDED=8(liblog/libsync/libnativewindow/libhardware/libm/libz/libdl/libc),零 X11/drm 库泄漏
安装方法
Eden(yuzu 系 Switch 模拟器)
- 设置 → 图形 → 驱动程序 → 安装驱动,选择
Mesa 26.3.0 panvk.zip - 安装后在驱动列表选择 Mesa 26.3.0 panvk 即可(meta.json 驱动名)
Winlator
- 容器设置 → Graphics Driver → 导入 zip(或经驱动插件机制加载
libvulkan_panfrost.so)
libbcn_layer.so(Winlator wrapper BCn 钩子,可选)
修复 DX9/BCn 纹理在 wrapper 下的 RGB 噪声(DXVK ≥2.0 走 vkCmdCopyBufferToImage2 的解码拦截,含 Properties2/Submit2 钩子与资源泄漏修复):
- 将
libbcn_layer.so与libbcn_layer.json放入同一目录(如容器imagefs/usr/lib/) - 设置环境变量
VK_LAYER_PATH=<该目录> - 设置
ENABLE_BCN_COMPUTE=1启用(DISABLE_BCN_COMPUTE=1关闭) - 仅 Winlator/wrapper 场景需要;Eden 原生 SPIR-V 不需要
校验和
| 文件 | 大小 | MD5 |
|---|---|---|
| Mesa 26.3.0 panvk.zip | 3,740,037 | 9B7B008CD5C5714940183443FFA3F745 |
| libbcn_layer.so | 740,264 | 01633B6D2C64EE1D9B1D45786852CA22 |
| libbcn_layer.json | 567 | E24BC0AED6F02350C15E3B6B960375BA |
so sha256:d1bfa20deb48ed6394e9a398d4b954c4911e42c0792853982acb147ada2b21ee
致谢
- wonderkast02 — 本仓库 fork 的原仓库 panvk-g720-kbase-csf 作者,Mali kbase/CSF 移植的全部核心工作
- Mesa / Panfrost 社区(Alyssa Rosenzweig、Boris Brezillon、Collabora 及所有贡献者)— panvk 驱动与 Panfrost 内核驱动基础
- JimVulkan (jim) — mali-panvk Android 化的先行探索
- Pipetto-crypto — bcn_layer 原作者(本包钩子在其 MIT 项目基础上修复)
- Eden / yuzu 团队 — Switch 模拟器与 adrenotools 驱动加载机制
