Real-browser D3D9 clear regression: memory-blocked
The assigned base is accepted main 36ca14d2806bd839a7918f99f1d844d5cb9fc8c3.
Its donor and actual remote main/task refs matched before checkout. This task adds
an isolated real-WebGL pixel harness, but does not close pixel acceptance.
The single fresh browser admission at 2026-10-24T08:03:37Z measured
MemAvailable 2413625344 bytes, below the required 2684354560. The
supervisor exited 2 before starting Node/CDP or Chrome. No browser retry occurred.
The actual denial and cleanup receipt is
evidence/d3d9-clear-real-webgl-20261024/browser-denied.json.
Harness and intended discrimination
test/fixtures/d3d9-clear-real-pixels.js creates actual production Device and
WebGLBackend instances, real WebGL2 contexts, color textures/framebuffers and
D16/D24S8 renderbuffers. Production RenderClear descriptor construction,
structured cloning, Device attachment binding, target initialization and clears
are retained. Independent direct GLSL triangles and RGBA readPixels observe the
stored depth and stencil. No GL method or allocation is mocked. No guest fixture
or host COM path executes; this is a focused Device/wrapper closure.
The planned observations cover normalized .25 followed by the wrapper's default 1 and the positional adapter's default 1; nondefault cached .25/52 followed by fresh implicit/named initialization and repeated requests; existing identity switches; D16 and D24S8 precision; all 16 channel masks; top-left clipped color, depth and stencil rectangles; absent depth rejection; zero flags/empty regions; and color, depth and stencil retention using later tested draws. Capability or allocation errors fail the candidate; no passing skip exists.
tools/d3d9-clear-real-cdp.js uses installed Chrome and Node built-in WebSocket
and fetch, with loopback CDP on about:blank. It loads exact production source
bytes without a package or local web server. Four sequential source variants
share one browser tree: current candidate; exact producer ffe822a9 Device with
current GPU; exact intermediate 77180c76 GPU with current Device; and a current
Device mutation dropping rectangle restrictions. These are explicitly hybrid
blob controls, not whole historical builds. Acceptance requires candidate pixels
passing and each control failing its specified pixel assertion without harness
errors. Compact numeric mismatches, source hashes, runtime GL identity/extensions
and small PNGs would be emitted before the summary. None were emitted in this
task because browser admission was denied.
tools/test-d3d9-clear-real-browser.py is the sole resource supervisor. It checks
fresh memory, task-owned allocated disk bytes plus full external session/events,
positive SQLite growth, future allowance and 8 MiB reserve. It starts one child
session, bounds wall and aggregate sampled CPU at 60 seconds, retains the
256 MiB Node heap and 24 MiB file bound, and cleans the entire process group and
adopted/detached descendants with TERM followed by KILL after at most 5 seconds,
then reaps. Chromium's ordinary sandbox remains enabled. The startup gate and
syntax checks executed; browser-tree cleanup and pixel behavior remain untested.
Results and qualification
JavaScript syntax checks and Python syntax parsing passed. Exact candidate and
historical source identities are recorded in source-identities.json. Existing
independent oracles were not changed or rerun. Accepted offline results remain
in d3d9-fresh-cache-independent-20261024.md.
Candidate, producer, intermediate and rectangle-rejecting pixel outcomes are all UNEXECUTED. Runtime browser version, GL version, renderer, extensions, hardware/software driver identity and PNGs are unavailable. There is no real-GL, hardware, full-module, guest or gameplay qualification, and no production defect was established. The sole blocker is the measured browser-memory gate. The coordinator owns any future capacity change and reassignment; this worker stopped browser work on its first denial.
Artifacts were retained before task result.json was written last under
evidence/d3d9-clear-real-webgl-20261024/. This subsystem has no assigned corpus
candidate ID, so the task evidence remains with this investigation note and is
not linked to an unrelated game/dashboard capture. No image was produced to
inspect. The denial receipt was inspected; reviewed task metadata never means
reviewed pixels.
Recovery and ownership
Private checkout /tmp/d3d9-clear-real-webgl-pixels-oct24/repo, branch
task/d3d9-clear-real-webgl-pixels-oct24. Recover the committed harness and note
by fetching that task branch. Its base ancestry supplies both historical blob
controls. Checkout used git init, read-only alternates, explicit non-cone paths,
and GIT_NO_LAZY_FETCH=1; donors and root tracked files/index/refs were untouched.
All Git remote operations use the assigned dedicated identity and known-hosts
file with BatchMode, IdentitiesOnly and StrictHostKeyChecking; no trust edits.
Initial missing evidence-helper path and alternate-depth diagnostics were
corrected within this task and charged to cumulative capture, with no reset.
After an actual capacity change, a coordinator-assigned follow-up can prepare a
fresh accounting JSON naming allocation, complete external session/event
paths, sqliteBaseline, sqliteDirectory and future bytes, then use:
python3 tools/test-d3d9-clear-real-browser.py FRESH_SHORT_OUTPUT ACCOUNTING_JSON
OUTPUT must be a fresh direct child of allocation, with an absolute pathname at most 58 bytes for Chrome sockets. Use the retained accounting.json as a recipe; remeasure all required budgets for the new task. This task's exact command and external accounting are preserved under its private root. No installs, downloads, compiler/full build, deployment, main merge, guest mount or box operations occur. Box ID/state/expiry are N/A; lifecycle ownership remains with the coordinator.