mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 06:08:30 +09:00
[Docs] (tools/trace_replay): localise the improved-transparency ANGLE divergence to the OIT composite
This commit is contained in:
@@ -324,3 +324,33 @@ draw-buffer slot restriction is already handled by
|
|||||||
means bisecting inside the frame to find which GLES construct ANGLE mistranslates;
|
means bisecting inside the frame to find which GLES construct ANGLE mistranslates;
|
||||||
the accommodation, once known, belongs with the existing
|
the accommodation, once known, belongs with the existing
|
||||||
`--avoid-angle-llvmpipe-*` flags rather than in shared backend code.
|
`--avoid-angle-llvmpipe-*` flags rather than in shared backend code.
|
||||||
|
|
||||||
|
#### Where in the frame it goes wrong
|
||||||
|
|
||||||
|
Snapshotting the same intra-frame call points on both stacks (`--target-call`,
|
||||||
|
ten replays in parallel, logs to `/dev/null`) localises it. SSIM against the
|
||||||
|
golden at each point:
|
||||||
|
|
||||||
|
| target call | what runs there | Mesa | ANGLE | gap |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| 2667445 | last opaque draw, into FBO 29 | 0.146477 | 0.000195 | - |
|
||||||
|
| 2667488 | **OIT composite**: fullscreen triangle, program 50, into FBO 3 | 0.976448 | 0.945409 | 0.031 |
|
||||||
|
| 2667543 | post draw, program 56 | 0.985380 | 0.954480 | 0.031 |
|
||||||
|
| 2667595 | post draw, program 64 | 0.985685 | 0.954788 | 0.031 |
|
||||||
|
| 2667619 | golden point | 1.000000 | 0.970127 | 0.030 |
|
||||||
|
|
||||||
|
The gap opens at the composite and is then constant to four decimal places -
|
||||||
|
every pass after 2667488 contributes the same increment on both drivers. So
|
||||||
|
nothing downstream of the composite is implicated, and the GUI/post chain is
|
||||||
|
fine. The two stacks already disagree at 2667445, before the composite runs,
|
||||||
|
which points at the translucent accumulation targets the composite samples
|
||||||
|
rather than at the composite draw itself.
|
||||||
|
|
||||||
|
That is as far as this went. What is still unknown is **which** GLES construct
|
||||||
|
in the accumulation chain ANGLE translates differently - naming it needs the
|
||||||
|
intermediate FBO attachments dumped either side of 2667488 on both stacks,
|
||||||
|
which the replay CLI cannot currently do (it snapshots one framebuffer, not all
|
||||||
|
attachments). Until it is named there is nothing to put behind an
|
||||||
|
`--avoid-angle-llvmpipe-*` flag and nothing precise enough to file upstream, so
|
||||||
|
the fixture stays red on the Android DirectGLES lane rather than being papered
|
||||||
|
over.
|
||||||
|
|||||||
Reference in New Issue
Block a user