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,73 @@
|
||||
iter5 vertex+UBO probe — captured 2026-05-19 on ohm
|
||||
(PineTab2 v2.0, RK3566, Mali-G52 r1 MC1, Mesa 26.0.6, kernel 7.0.0-danctnix1-6)
|
||||
|
||||
Source: panvk-bifrost/iter5/{probe_vbo_ubo.c, .vert, .frag, Makefile}
|
||||
Deployed to: /tmp/panvk-iter5/
|
||||
|
||||
===== RUN #1 (baseline) =====
|
||||
[step] vkCreateInstance
|
||||
WARNING: panvk is not a conformant Vulkan implementation, testing use only.
|
||||
[info] gpu='Mali-G52 r1 MC1'
|
||||
[step] vkCreateDevice
|
||||
[step] vkCreateBuffer vertex buffer
|
||||
[step] vkCreateBuffer UBO
|
||||
[step] vkCreateDescriptorSetLayout (UBO @ vertex)
|
||||
[step] vkCreatePipelineLayout + shaders
|
||||
[step] vkCreateGraphicsPipelines
|
||||
[step] record cmd buffer
|
||||
[step] submit + wait
|
||||
[step] verify
|
||||
[info] center (32,28) = 0xff5d564c (R=4c G=56 B=5d)
|
||||
[info] TL=0x00000000 TR=0x00000000
|
||||
[info] covered (non-clear) pixels = 338 / 4096
|
||||
[PASS]
|
||||
|
||||
===== RUN #2 (VK_LAYER_KHRONOS_validation) =====
|
||||
[no validation warnings]
|
||||
covered = 338 [PASS]
|
||||
|
||||
===== STABILITY: 5 reruns =====
|
||||
covered = 338 [PASS] x5
|
||||
|
||||
7/7 PASS after coverage-range fix.
|
||||
|
||||
===== INITIAL FAILURE NOTE =====
|
||||
|
||||
First run reported "coverage out of range: 338 (want 800..1600)" — that was a
|
||||
verification-side arithmetic error on my (claude-noether's) part, not a driver
|
||||
issue. Triangle area = 0.5 * 0.8 * 0.8 = 0.32 sq units in NDC; viewport area
|
||||
is 4 sq units, so 8% coverage = ~328 pixels. The driver produced exactly 338,
|
||||
which matches the expected coverage within edge-rule tolerance.
|
||||
|
||||
Substantive PASS criteria (interpolated center color, clear corners) were
|
||||
satisfied on the first run; only the loose coverage-range check needed
|
||||
calibration. Fixed in-tree at `iter5/probe_vbo_ubo.c`.
|
||||
|
||||
===== KEY OBSERVATIONS =====
|
||||
|
||||
1. Vertex input binding works:
|
||||
binding 0: stride 32, INPUT_RATE_VERTEX
|
||||
attribute 0: R32G32_SFLOAT, offset 0 (pos)
|
||||
attribute 1: R32G32B32_SFLOAT, offset 16 (color)
|
||||
GPU correctly fetched both attributes from the bound vertex buffer.
|
||||
|
||||
2. UBO binding at vertex stage works:
|
||||
mat4 transform with scale 0.8 in x/y was correctly applied.
|
||||
Triangle vertices at NDC (-0.5,-0.5)/(0.5,-0.5)/(0,0.5) scaled to
|
||||
(-0.4,-0.4)/(0.4,-0.4)/(0,0.4) — visible from the 338-pixel coverage
|
||||
(matches 0.8-scaled area, NOT unscaled 0.5-scaled area which would be
|
||||
~500 pixels).
|
||||
|
||||
3. Varying interpolation works:
|
||||
center pixel at (32, 28) has R=0x4c G=0x56 B=0x5d. All three vertex
|
||||
colors (red/green/blue) contributed via barycentric interpolation —
|
||||
none of the channels are zero, none are saturated, all are in a
|
||||
reasonable middle-of-range value.
|
||||
|
||||
4. Bifrost vertex-side descriptor model handles UBO + vertex-stage shader
|
||||
correctly (the headline hypothesis for this iter — that vertex-stage
|
||||
descriptor binding would fail on Bifrost — did not materialize).
|
||||
|
||||
5. Deterministic across runs: identical 338 covered pixels each time.
|
||||
|
||||
No GPU faults, no validation warnings, all 7 runs identical.
|
||||
Reference in New Issue
Block a user