Vulkan on Mali-G52 — limited Panfrost / panvk-bifrost in Brave

panvk — the Mesa Vulkan driver for Arm Mali GPUs — supports the modern Valhall generation upstream. The older Bifrost generation (Mali-G31, G51, G52, G72, G76) is implemented far enough to enumerate adapters but Mesa keeps it behind an explicit opt-out: PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1. That name is not subtle. It is the upstream maintainers stating, accurately, that this code path is not a Khronos-conformant Vulkan implementation.

This post announces a downstream package, mesa-panvk-bifrost, that takes that opt-out path and turns it into something specific: good enough to host Brave’s Vulkan GPU process on Mali-G52 hardware. Not good enough for general-purpose Vulkan, not conformant, not upstream-bound.

What ships

mesa-panvk-bifrost is a downstream-patched Mesa 26.0.6 Vulkan ICD, co-installed at /usr/lib/panvk-bifrost/ alongside the system Mesa. It does not replace anything. Opt-in is per-process, either via VK_ICD_FILENAMES or via the brave-vulkan launcher that ships with the package.

Available as an Arch Linux ARM package from the marfrit repo (packages.reauktion.de):

pacman -S mesa-panvk-bifrost

On a PineTab2 (RK3566, Mali-G52 r1 MC1): Brave’s chrome://gpu reports „Vulkan backend — Mali-G52 r1 MC1“ under Integrated GPU.

What „limited and non-certified“ actually means here

Non-certified. PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1 still has to be set; the launcher (brave-vulkan) sets it for you, but the label is accurate. For context only: a full dEQP-VK 1.3.10.0 sweep against r5 ran 2.26 million tests at a 97.65% runnable-pass rate — shape, not credentials. Not a Khronos submission, not a conformance claim.

Limited. Bifrost only. Primary target is Mali-G52 r1 MC1 (Bifrost gen-2, PAN_ARCH 7) in RK3566 — PineTab2, PineNote, Quartz64-B, ODROID-M1S. Same code path expected to work on G31, G72, G76; none hands-on-validated here. Valhall hardware (Mali-G610 etc.) is served by upstream panvk directly — this package is not for those.

Downstream. These patches are not being upstreamed. They live in the marfrit-packages overlay and ship via the ALARM repo above.

Lineage

  • r1–r4 — extension enablement (VK_KHR_robustness2, VK_EXT_transform_feedback) plus a NIR pass that decomposes XFB primitives into shapes Bifrost can emit.
  • r5fragmentStoresAndAtomics = true (Chromium Dawn gate). +32 atomic-operations CTS tests, zero regressions.
  • r6VK_EXT_legacy_dithering advertised. Five-line backport from Mesa main.
  • r7 — XFB packed-varying channel-extract SIGSEGV fix.
  • r9maxImageDimension3D bumped 512 → 2048. The revision that actually unblocked Dawn adapter acceptance. (r8 hit a CTS version-skew issue and was abandoned mid-Phase-3.)

Where the code lives

If your machine is one of the Bifrost SBCs above and you want the Chromium GPU process running on real Vulkan rather than llvmpipe, this is now an option.

Hinterlasse einen Kommentar.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.