# Guest presentation cadence against ADV.wmv's declared 30.000 fps.
# One presented frame = one RESOLVE to dest=0x14570000 (595 of them here,
# against the logger's own FRAMES=600 budget, so the two agree).

presented frames in log      : 595
movie luma draws             : 156
movie spans frames           : 439..594  (156 frames)
presented frames per movie fr: 1.0000

distinct luma bases          : 3  ['0x11590000', '0x11720000', '0x118B0000']
uses of each                 : [('118B0000', 52), ('11720000', 52), ('11590000', 52)]
perfect repeating 3-cycle    : True  (pattern ['0x118B0000', '0x11720000', '0x11590000'])
chroma planes per luma draw  : {2: 156}  (YUV420 -> expect 2)

run lengths (frames holding one luma base):
   1 frame(s): 156

RATIO = 1.0000 labels per movie frame
  H_A  30 fps guest ->  60 units/s  predicted 1.0 (band 0.85-1.15)
  H_B  60 fps guest -> 120 units/s  predicted 2.0 (band 1.70-2.30)
  VERDICT: H_A

=> guest presents at 30 x 1.0000 = 30.00 fps ; units/s = 2 x that = 60.00

# CONTROL -- the splash era of this SAME log, frames 4..226.
# The PRE-REGISTERED control was the +34/frame alpha step. It could NOT be
# run: this logger build emits vb= addresses, not vertex contents. A weaker
# control is substituted and labelled as such -- the three splash pixel
# shaders and their blend states must reproduce.
# Committed, splash-draw-pass-census.txt, an INDEPENDENT boot:
#   0xE59B2B3DA4AA9008 blend=0x07010701   the sprite shader
#   0x2E372EA28CC404B7 blend=0x00010001   the clear
#   0x5773DC18083C4C20 blend=0x07010701   the black backdrop
# This capture:
#   0xE59B2B3DA4AA9008 blend=0x07010701  x446
#   0x2E372EA28CC404B7 blend=0x00010001  x223
#   0x5773DC18083C4C20 blend=0x07010701  x223
# Same three, same blends, on an independent boot. This validates the log's
# STRUCTURE -- frame delimitation, shader and blend fields -- which is what
# the cadence measurement uses. It does NOT validate alpha extraction, and
# the cadence measurement does not use alpha.
