re(ui): the game does query the display gamma -- measured, with its control
Last iteration's corrected experiment, run. Boot with --log_mask=12 --log_level=3 (Kernel logging on, Cpu/Gpu off), which changes nothing about the output and so cannot perturb the capture harness the way the gamma-cvar experiment would have. VdGetCurrentDisplayGamma is called once, at video init: d> VdGetSystemCommandBuffer(701CF830, 701CF804) d> VdGetCurrentDisplayGamma(701CE1F8(00000000), 701CE1F0(0)) d> VdSetDisplayMode(40000000) d> VdGetCurrentDisplayInformation(701CF110) The control is in the same log: 359 VdRetrainEDRAM and 358 VdGetSystemCommandBuffer lines, so an absent call would have been visible. Per the export's own comment the returned type is "used in D3D SetGammaRamp/SetPWLGamma" -- the game asks the question a ramp-builder asks, at the moment one would ask it. Still open, and stated: whether it then WRITES the ramp, and whether the measured gamma 1.34-1.49 is that ramp. The write is a GPU register operation (DC_LUT), invisible to kernel logging; a GPU trace records gamma ramps as a command type (TraceWriter::WriteGammaRamp), which is where to look next. Worth its own METHOD line: this had been parked behind "needs the emulator to reach a menu" for several iterations, and it needed the emulator only to BOOT -- video init happens in the first seconds. A blocker that stops one experiment does not stop every experiment in the same area.
This commit is contained in:
@@ -624,3 +624,10 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
|
||||
this harness masks Kernel logging entirely (`log_mask = 13`), so their absence
|
||||
is guaranteed regardless of what the game did. Check the logging configuration
|
||||
before reading silence as a result.
|
||||
* **Check what an experiment actually needs before filing it behind a blocker.**
|
||||
The gamma question sat parked behind "needs the emulator to reach a menu" for
|
||||
several iterations. It needed the emulator only to **boot** — video init, and
|
||||
the `VdGetCurrentDisplayGamma` call, happen in the first seconds, long before
|
||||
any title screen. A blocker that stops one experiment does not stop every
|
||||
experiment in the same area, and it is worth re-reading the parked list against
|
||||
what each item really requires rather than against the area it belongs to.
|
||||
|
||||
Reference in New Issue
Block a user