Closes the one route t32-blend-mode-not-on-disc.md left open: the executable's
draw path. Canary's UI draw capture now logs RB_BLENDCONTROL0 per draw, and the
game was driven to the main menu and to EXTRAS with F10 at each.
The title-side UI uses two blend states and ONE pixel shader:
0x07010701 src=ONE dst=1-SRC_ALPHA alpha-over (premultiplied)
ptbase, pteff05, the fade quad, ptmsg, ptmsg2, pttitle, buttons
0x01010101 src=ONE dst=ONE ADDITIVE
ptframe1, ptframe2, ptframe3, pteff20, both rotated sweep strips
Two controls, both run before the result was read:
* the NDC->pixel conversion that identifies a draw by its quad size reproduces
1134 and 1303 px for the two rotated sweep strips -- numbers measured by a
different tool in a different session -- on BOTH screens. The tool prints
PASS/FAIL and disclaims its own output on FAIL.
* pixel shader 0xE59B2B3DA4AA9008 is used with BOTH states, 12 draws additive
and 18 alpha-over. ptframe1 and ptbase run the same shader; only the blend
register differs. So this is a blend result, not a shader result.
This confirms the port's independent measurement -- it solved the composite per
pixel from two backgrounds and found additive halves alpha-over's error on both
frames -- by a route with nothing in common with it.
So the blend is no longer authored: 'any blend you choose is authored' was true
of the disc and is not true of the game. What is still unknown is which field
selects it; elements sharing a mode are batched into one draw call, so the
selection happens before the draw.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
44 lines
8.0 KiB
Plaintext
44 lines
8.0 KiB
Plaintext
# every draw in SUBMISSION ORDER, undeduplicated, frames 1..4
|
|
# tex dimensions identify the sprite; base is the guest address
|
|
0 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
|
vb=0x150388F8 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
|
1 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x15038950 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
|
2 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x150389B0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [1.29,1.58,z=0.00000,col=E2FFFFFF] [1.83,1.02,z=0.00000,col=E2FFFFFF] [0.99,-1.57,z=0.00000,col=E2FFFFFF] [0.45,-1.02,z=0.00000,col=E2FFFFFF]
|
|
3 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
|
vb=0x15038A10 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.89,1.02,z=0.00000,col=D0FFFFFF] [-1.45,1.81,z=0.00000,col=D0FFFFFF] [0.14,-1.02,z=0.00000,col=D0FFFFFF] [-0.30,-1.81,z=0.00000,col=D0FFFFFF]
|
|
4 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
|
vb=0x15038A70 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
|
5 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
|
vb=0x15038AD0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
|
6 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
|
vb=0x15038B30 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
|
7 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x15038B90 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF]
|
|
8 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x15038DD0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF]
|
|
9 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
|
10 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
|
--- frame 3 ---
|
|
11 prim=8 indices=3 vs=0x0A6D1DD7767FDF27 ps=0x2E372EA28CC404B7 blend=0x00010001[c:src=1 op=0 dst=0 a:src=1 op=0 dst=0] cc=0x00000000 mask=0xFFFF
|
|
vb=0x15079138 stride=28 attrs=[57@0 38@12 ] fmt0=57 v: [-0.50,-0.50,z=0.00000] [1279.50,-0.50,z=0.00000] [1279.50,719.50,z=0.00000]
|
|
12 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x15079190 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
|
13 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x150791F0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [1.33,1.58,z=0.00000,col=E4FFFFFF] [1.87,1.02,z=0.00000,col=E4FFFFFF] [1.02,-1.57,z=0.00000,col=E4FFFFFF] [0.48,-1.02,z=0.00000,col=E4FFFFFF]
|
|
14 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
|
vb=0x15079250 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.92,1.02,z=0.00000,col=D1FFFFFF] [-1.48,1.81,z=0.00000,col=D1FFFFFF] [0.11,-1.02,z=0.00000,col=D1FFFFFF] [-0.33,-1.81,z=0.00000,col=D1FFFFFF]
|
|
15 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x0C3B0000 1280x768 fmt=6]
|
|
vb=0x150792B0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,1.00,z=0.00000,col=FFFFFFFF] [1.00,-1.00,z=0.00000,col=FFFFFFFF] [-1.00,-1.00,z=0.00000,col=FFFFFFFF]
|
|
16 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0x5773DC18083C4C20 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF
|
|
vb=0x15079310 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-1.00,1.00,z=0.00000,col=40000000] [1.00,1.00,z=0.00000,col=40000000] [1.00,-1.00,z=0.00000,col=40000000] [-1.00,-1.00,z=0.00000,col=40000000]
|
|
17 prim=13 indices=4 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x0BFE0000 1280x768 fmt=6]
|
|
vb=0x15079370 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,1.00,z=0.00000,col=FFFFFFFF] [0.64,-1.00,z=0.00000,col=FFFFFFFF] [-0.64,-1.00,z=0.00000,col=FFFFFFFF]
|
|
18 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x01010101[c:src=1 op=0 dst=1 a:src=1 op=0 dst=1] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x150793D0 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,0.67,z=0.00000,col=80FFFFFF] [0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.48,-0.77,z=0.00000,col=80FFFFFF] [-0.31,0.36,z=0.00000,col=FFFFFFFF] [0.07,0.36,z=0.00000,col=FFFFFFFF] [0.07,-0.25,z=0.00000,col=FFFFFFFF] [-0.31,-0.25,z=0.00000,col=FFFFFFFF]
|
|
19 prim=13 indices=24 vs=0xE0BAFB4F520FE441 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x11C30000 1280x768 fmt=6]
|
|
vb=0x15079610 stride=24 attrs=[57@0 6@12 37@16 ] fmt0=57 v: [-0.27,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.51,z=0.00000,col=FFFFFFFF] [0.28,-0.62,z=0.00000,col=FFFFFFFF] [-0.27,-0.62,z=0.00000,col=FFFFFFFF] [-0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.72,z=0.00000,col=FFFFFFFF] [0.14,0.63,z=0.00000,col=FFFFFFFF] [-0.14,0.63,z=0.00000,col=FFFFFFFF]
|
|
20 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|
|
21 prim=8 indices=3 vs=0x72CBCAA6A7984111 ps=0xE59B2B3DA4AA9008 blend=0x07010701[c:src=1 op=0 dst=7 a:src=1 op=0 dst=7] cc=0x8700000C mask=0xF tex[base=0x10000000 1x1 fmt=26]
|