Merge pull request 'mesa-panvk-bifrost: r5 -> r6 — advertise VK_EXT_legacy_dithering on Bifrost' (#94) from claude-noether/marfrit-packages:noether/mesa-panvk-bifrost-r6-legacy-dithering into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 6s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 5m50s
build and publish packages / mesa-panvk-bifrost-video-aarch64 (push) Successful in 4s
build and publish packages / lmcp-any (push) Successful in 4s
build and publish packages / lmcp-debian (push) Successful in 6s
build and publish packages / claude-his-any (push) Successful in 6s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 9s
build and publish packages / claude-his-debian (push) Successful in 7s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 8s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 8s
build and publish packages / daedalus-v4l2-debian (push) Successful in 9s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 5s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 5s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 4s
build and publish packages / mpv-fourier-debian (push) Successful in 6s
build and publish packages / distcc-avahi-aarch64 (push) Successful in 6s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 5m50s
build and publish packages / mesa-panvk-bifrost-video-aarch64 (push) Successful in 4s
build and publish packages / lmcp-any (push) Successful in 4s
build and publish packages / lmcp-debian (push) Successful in 6s
build and publish packages / claude-his-any (push) Successful in 6s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 9s
build and publish packages / claude-his-debian (push) Successful in 7s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 8s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 8s
build and publish packages / daedalus-v4l2-debian (push) Successful in 9s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 5s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 5s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 4s
build and publish packages / mpv-fourier-debian (push) Successful in 6s
Reviewed-on: #94
This commit was merged in pull request #94.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
From: marfrit-packages noether <claude-noether@reauktion.de>
|
||||
Subject: [PATCH] panvk: advertise VK_EXT_legacy_dithering on Bifrost
|
||||
|
||||
Backports Mesa main's flip — vanilla 26.0.6 doesn't have the extension
|
||||
in the panvk advertisement list; main does (line 172 / 647 on snapshot
|
||||
617da94, 2026-05-06).
|
||||
|
||||
VK_EXT_legacy_dithering exposes the classic OpenGL-style dithering
|
||||
behavior to Vulkan apps. Pure-software composition; no new HW path.
|
||||
ARM's own libmali driver release r51p0 (BXODROIDN2PL, Aug 2024) lists
|
||||
this extension in its Vulkan implementation for ODROID-N2 boards
|
||||
using the same Mali-G52 architecture family — confirms ARM ships it
|
||||
for Mali-G52-class hardware.
|
||||
|
||||
Consumer benefit: dithering matters for low-bit-depth framebuffers
|
||||
(RGB565 / RGB5A1 — common on portable / battery-saving renders)
|
||||
where banding is visible. DXVK / vkd3d-proton both opt in when
|
||||
available.
|
||||
|
||||
Verify-before-ship: vulkaninfo lists the extension and
|
||||
VkPhysicalDeviceLegacyDitheringFeaturesEXT.legacyDithering == true.
|
||||
|
||||
Cross-refs:
|
||||
- marfrit/panvk-bifrost research/r6_r7_mali_g52_feature_audit_2026-05-24.md
|
||||
- ARM blob r51p0 strings dump (in-blob extension confirmed)
|
||||
|
||||
---
|
||||
src/panfrost/vulkan/panvk_vX_physical_device.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/panfrost/vulkan/panvk_vX_physical_device.c b/src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
--- a/src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
+++ b/src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
@@ -156,6 +156,7 @@
|
||||
.EXT_image_drm_format_modifier = true,
|
||||
.EXT_image_robustness = true,
|
||||
.EXT_index_type_uint8 = true,
|
||||
+ .EXT_legacy_dithering = true,
|
||||
.EXT_line_rasterization = true,
|
||||
.EXT_load_store_op_none = true,
|
||||
.EXT_non_seamless_cube_map = true,
|
||||
@@ -552,6 +553,9 @@
|
||||
|
||||
/* VK_EXT_multisampled_render_to_single_sampled */
|
||||
.multisampledRenderToSingleSampled = true,
|
||||
+
|
||||
+ /* VK_EXT_legacy_dithering */
|
||||
+ .legacyDithering = true,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
pkgname=mesa-panvk-bifrost
|
||||
_mesaver=26.0.6
|
||||
pkgver=26.0.6.r5
|
||||
pkgver=26.0.6.r6
|
||||
pkgrel=1
|
||||
pkgdesc="Patched Mesa libvulkan_panfrost.so exposing Bifrost-gen Mali to Vulkan apps (panvk-bifrost campaign)"
|
||||
arch=('aarch64')
|
||||
@@ -82,6 +82,7 @@ source=(
|
||||
"0003-panvk-bifrost-vk-ext-transform-feedback.patch"
|
||||
"0004-panvk-bifrost-xfb-primitive-decomposition.patch"
|
||||
"0005-panvk-bifrost-fragment-stores-atomics.patch"
|
||||
"0006-panvk-bifrost-legacy-dithering.patch"
|
||||
"brave-vulkan"
|
||||
"icd.json"
|
||||
)
|
||||
@@ -94,6 +95,7 @@ sha256sums=(
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
)
|
||||
|
||||
prepare() {
|
||||
@@ -140,6 +142,16 @@ prepare() {
|
||||
# dEQP-VK.image.store.* show no new Failed vs r4 baseline.
|
||||
patch -p1 < "${srcdir}/0005-panvk-bifrost-fragment-stores-atomics.patch"
|
||||
|
||||
# r6 (2026-05-25): advertise VK_EXT_legacy_dithering. Backports Mesa
|
||||
# main's unconditional flip. Pure-software composition; vk_render_pass
|
||||
# already gates on enabled_features.legacyDithering and panvk_vX_blend
|
||||
# + pan_format already plumb the dithered BLEND descriptor (BFMT2 table
|
||||
# has MALI_BLEND_AU encodings for RGB565/RGB5A1/RGBA4/RGB10A2 on
|
||||
# PAN_ARCH 7). Closes the EXT_legacy_dithering gap surfaced by
|
||||
# marfrit/panvk-bifrost research/r6_r7_*. ARM blob r51p0 confirms the
|
||||
# extension as Mali-G52-architecture supported.
|
||||
patch -p1 < "${srcdir}/0006-panvk-bifrost-legacy-dithering.patch"
|
||||
|
||||
# Sanity-check the patches landed.
|
||||
grep -q "KHR_robustness2 = true," src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
grep -q "EXT_robustness2 = true," src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
@@ -153,6 +165,9 @@ prepare() {
|
||||
grep -q "panvk_per_arch(nir_lower_xfb)" src/panfrost/vulkan/panvk_vX_shader.c
|
||||
# r5 sanity: fragmentStoresAndAtomics = true patch landed
|
||||
grep -q "fragmentStoresAndAtomics = true ||" src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
# r6 sanity: VK_EXT_legacy_dithering advertised
|
||||
grep -q '\.EXT_legacy_dithering = true,' src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
grep -q '\.legacyDithering = true,' src/panfrost/vulkan/panvk_vX_physical_device.c
|
||||
grep -q "xfb_topology" src/panfrost/vulkan/panvk_shader.h
|
||||
grep -q "panvk_xfb_topology" src/panfrost/vulkan/panvk_shader.h
|
||||
test -f src/panfrost/vulkan/panvk_vX_xfb_lower.c
|
||||
|
||||
Reference in New Issue
Block a user