Skip to content

Releases: MineGraph-bilibili/panvk-Android

Mesa 26.3.0 panvk.6

Choose a tag to compare

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 判断走哪条纹理路径;仅日志,不改行为。
  • 099dd7cb AIMapper 不可用时改走 MTK gralloc_extra_query 元数据:探测 mediatek/arm/ro.board.platform/ro.hardware/default 多个 mapper 名;只有拿到精确 stride/size 才接受缓冲,尺寸不符时告警,PANVK_KBASE_NO_GUESS=1 时直接拒绝导入。

源码树与补丁栈对齐(10-24)

  • 1b808c83 源码树替换为 Mesa 5a07217f(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)。
  • 8ffdb16a kbase bring-up 系列(common / android / kbase-common / app-loader):AHB→dma-buf fd、vendor mapper(HIDL mapper4)、/dev/mali* 枚举、kbase 队列与 WSI 集成、导出 Vulkan ICD 符号供 Android 加载器热加载。
  • 115cba4b Android WSI 系列:VK_KHR_android_surface + AHB swapchain;wsi/018(自研)把 present 压成单次拷贝,去掉中间 bounce 及其同步开销。
  • 0b2db769 CSF 系列(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 SLC ENOTTY 重试(186)、空 polygon list 防护(188)。
  • e0653974 JM 系列(v9 28 + v7 5):JM job atom 提交、Vulkan 1.3 multiview、EXEC_VA/JIT、drawIndirectCount、细分/几何/XFB、深度边界模拟、primitive-index override、G77/G78 型号行;v6/v7 与 v9 为实验性,未硬件验证。
  • afc63a42 perf/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)。
  • 33b713d5 local/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 条补丁逐条说明)。
  • 424752d9 local/005:VK_KHR_driver_properties 报告 Panvk / Mesa 26.3.0-devel,DXVK HUD 与 DXVKHUB 显示的驱动名与版本随之统一。

WSI 与补丁归档(10-26)

  • b2fb307d 归档 gpu/001 AFRC opt-in(未启用)。
  • 1b80a0bf wsi/019:present 零拷贝写入窗口 buffer。

稳定性与新编译器(10-30 ~ 10-31)

  • f3237a1d tiler 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 默认关闭。
  • dbdae635 KRAID 选择修复: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 导入驱动:

  1. 在 Winlator Mali 的「驱动 / Drivers」页导入本 zip(不要解压);列表中出现 Mesa 26.3.0 panvk 即导入成功;
  2. 新建或编辑容器,把「GPU 驱动 / Vulkan 驱动」选为 Mesa 26.3.0 panvk;
  3. 其他支持自定义驱动的加载器理论上也可用,但本版只在 Winlator Mali 上验证过;
  4. 新编译器(KRAID、Rust 着色器后端,PAN_USE_KRAID)目前属实验性、尚不可用,不建议打开——默认就是关闭的,正常游玩不需要它;
  5. 不要打开 wrapper 的 BCn 转码,也不要启用 bcn_layer 的 BCn 转码:PanVK 自带 BCn→ASTC/ETC2/EAC 转码路径,两层叠加会重复转换并相互冲突,表现为花屏或采样错误;
  6. 如需问题排查,可临时设置 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, effective textureCompressionBC) so emulators and vkd3d-proton can pick the right texture path. Diagnostic only, no behaviour change.
  • 099dd7cb — fall back to MTK gralloc_extra_query metadata 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 when PANVK_KBASE_NO_GUESS=1.

Source tree and patch stack alignment (10-24)

  • 1b808c83 — replace the tree with Mesa 5a07217f (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 to BASE_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_surface plus 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 SLC ENOTTY retry (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...
Read more

Mesa 26.3.0 panvk.4 - D3D12 (vkd3d) support for Mali-G610

Choose a tag to compare

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 编译器本已为 core robustBufferAccess(原值为 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

Choose a tag to compare

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), rewritten VK_EXT_multi_draw entry points, and reporting of robustImageAccess2, shaderClipDistance / shaderCullDistance and transformFeedbackQueries on 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:

Hades II via vkd3d — 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.zip SHA-256: 779C882E36655A288A5691252E0A1E87EA54168FDA4A87980E8AEEF27816FC99
  • MD5: 08152FAF391A554E1ECCE5CDAEDEC247

Acknowledgments

Mesa 26.3.0 panvk

Choose a tag to compare

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 vkCreateImage INVALID_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 模拟器)

  1. 设置 → 图形 → 驱动程序 → 安装驱动,选择 Mesa 26.3.0 panvk.zip
  2. 安装后在驱动列表选择 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 钩子与资源泄漏修复):

  1. 将 libbcn_layer.so 与 libbcn_layer.json 放入同一目录(如容器 imagefs/usr/lib/)
  2. 设置环境变量 VK_LAYER_PATH=<该目录>
  3. 设置 ENABLE_BCN_COMPUTE=1 启用(DISABLE_BCN_COMPUTE=1 关闭)
  4. 仅 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 驱动加载机制