forked from marfrit/panvk-bifrost
initial seed: retrofit campaign lineage from local working trees
panvk-bifrost campaigns (r1..r4 Vulkan compositor + r5.video1 Vulkan
video decode) shipped before this repo existed; the deliverable
patches live in marfrit-packages, but the reasoning chain, phase docs,
and source-state evidence lived only in local working trees on the
development host.
This retrofit imports:
- mesa-panvk-bifrost/ — r1..r4 era phase docs (iter1..iter18)
(libmali stub blobs at iter18/blob/ excluded
— 109MB of RE artifacts replaced with a README
pointer)
- mesa-panvk-bifrost-video/ — sibling campaign phase docs + probe
- evidence/ — frozen .tgz source snapshots at each milestone
(basis for the 0005 patch diff generation)
Future iterations should branch off here from day one, so each iter is
a commit rather than a snapshot. See [[feedback-session-local-process-pins]]
for the process drift this retrofit closes.
Total: 1.9 MB across 124 files.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
# iter8 step-B diagnostic: install patched libvulkan_panfrost.so under LD_LIBRARY_PATH
|
||||
# (no system overwrite) and characterize what Zink-on-patched-PanVk-Bifrost does.
|
||||
#
|
||||
# Usage on ohm (as user mfritsche):
|
||||
# bash diagnose_zink_smoke.sh /path/to/built/libvulkan_panfrost.so
|
||||
|
||||
set -uo pipefail
|
||||
LIB_SRC="${1:?usage: $0 /path/to/built/libvulkan_panfrost.so}"
|
||||
|
||||
if [[ ! -f "$LIB_SRC" ]]; then
|
||||
echo "FAIL: $LIB_SRC not found"; exit 2
|
||||
fi
|
||||
|
||||
STAGE=/home/mfritsche/panvk-patched-libs
|
||||
mkdir -p "$STAGE"
|
||||
cp "$LIB_SRC" "$STAGE/libvulkan_panfrost.so"
|
||||
|
||||
# Need a matching ICD JSON that points at this lib path, otherwise the loader
|
||||
# uses the system one which points at /usr/lib/libvulkan_panfrost.so.
|
||||
cat > "$STAGE/panfrost_icd_patched.json" <<EOF
|
||||
{
|
||||
"ICD": {
|
||||
"api_version": "1.4.335",
|
||||
"library_path": "$STAGE/libvulkan_panfrost.so"
|
||||
},
|
||||
"file_format_version": "1.0.1"
|
||||
}
|
||||
EOF
|
||||
|
||||
# Environment for all diagnostic runs:
|
||||
COMMON_ENV=(
|
||||
XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||
WAYLAND_DISPLAY=wayland-0
|
||||
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1
|
||||
VK_ICD_FILENAMES="$STAGE/panfrost_icd_patched.json"
|
||||
)
|
||||
|
||||
echo
|
||||
echo "===== STEP 1: vulkaninfo — does VK_EXT_robustness2 / nullDescriptor appear? ====="
|
||||
env "${COMMON_ENV[@]}" vulkaninfo 2>&1 | grep -iE "driverInfo|robust|nullDescriptor" | head -15
|
||||
RC1=$?
|
||||
echo "(RC1=$RC1, but the real signal is whether VK_EXT_robustness2 + nullDescriptor=true appear above.)"
|
||||
|
||||
echo
|
||||
echo "===== STEP 2: eglinfo with Zink — does Zink load against the patched lib? ====="
|
||||
env "${COMMON_ENV[@]}" MESA_LOADER_DRIVER_OVERRIDE=zink eglinfo 2>&1 | grep -iE "renderer|version|zink|llvmpipe|nullDescriptor|Mali|error" | head -20
|
||||
RC2=$?
|
||||
echo "(if 'renderer' line mentions Mali-G52 / Zink => SUCCESS, if 'llvmpipe' => still failing)"
|
||||
|
||||
echo
|
||||
echo "===== STEP 3: es2_info — does GLES2 context create against Zink-on-PanVk? ====="
|
||||
env "${COMMON_ENV[@]}" MESA_LOADER_DRIVER_OVERRIDE=zink es2_info 2>&1 | head -30
|
||||
RC3=$?
|
||||
|
||||
echo
|
||||
echo "===== STEP 4: dmesg for GPU faults from these runs ====="
|
||||
dmesg 2>/dev/null | tail -30 | grep -iE "panfrost|mali|gpu fault|page fault" | tail -10
|
||||
|
||||
echo
|
||||
echo "===== STEP 5: minimal Zink-triggered shader workload ====="
|
||||
# Run vkcube with MESA_VK_VERSION_OVERRIDE to see if Vulkan side still works
|
||||
env "${COMMON_ENV[@]}" timeout 5 vkcube --c 60 --wsi wayland 2>&1 | head -5
|
||||
echo "(vkcube confirms the patched lib still works for native Vulkan, no regression on iter7 baseline.)"
|
||||
|
||||
echo
|
||||
echo "===== DONE ====="
|
||||
Reference in New Issue
Block a user