Legacy DISABLE capability reconciliation — 2026-10-24
Exact baseline: current authenticated remote main
e5f45399bc5564a84b6b1428e15ffa412db9e929. The independently accepted
stage-zero DISABLE implementation is already present; this change only reconciles
its advertised capability. d3dim_fill_device_desc7 wrote 0xE at byte 180,
omitting DISABLE. It now writes 0xF: DISABLE, SELECTARG1, SELECTARG2, MODULATE.
Both blend-stage and simultaneous-texture limits remain one.
Microsoft's legacy D3DHAL_D3DEXTENDEDCAPS contract
defines dwTextureOpCaps as supported operations and explicitly associates
D3DTEXOPCAPS_DISABLE with supported D3DTOP_DISABLE. The
operation contract
defines DISABLE=1 and stage-zero termination. These support advertising the
already implemented diffuse-RGBA termination, without adding any operation.
test/test-legacy-texture-disable-capability.js compiles the authentic capability
writer and software excerpts through the existing one-page fixture. It checks
the supported-operation bits independently, excludes every other bit, preserves
descriptor sentinels and one-stage limits, exercises disabled RGBA and both
software routes across four alpha operations, and runs the existing independent
SELECTARG1/2/MODULATE pixel oracle. Exact baseline fails with
missing supported operation 1; candidate passes. Six overclaim controls add
operation bits 5, 6, 7, 10, 26 and 32; all reject specifically on unsupported
advertisement. A seventh control removes DISABLE's early combiner termination
while retaining its advertised bit; it rejects on the diffuse-RGBA assertion.
Compiler/setup failures cannot satisfy those rejecting controls.
Only the nearby caps fixture's obsolete mask expectation and its three mask mutations change: missing DISABLE, added MODULATE2X and missing MODULATE remain rejecting cases. The direct suite passes nine operation pairs, 144 argument combinations, six remaining unsupported-operation diagnostics and 15 controls. The accepted unchanged DISABLE suite passes eight bound/unbound-alpha cases, re-enable/binding preservation and three independent semantic reversions. Unchanged GPU batching and points suites pass. Automatic unit-tier classification of the new filename passes; a whole-repository manifest/build was not run.
Exact commands, executed from the private checkout with installed Node:
node --max-old-space-size=256 test/test-legacy-texture-disable-capability.js --manifest-only
node --max-old-space-size=256 test/test-legacy-texture-disable-capability.js
node --max-old-space-size=256 test/test-legacy-texture-disable.js
node --max-old-space-size=256 test/test-legacy-texture-operation-caps.js --negative-controls
node --max-old-space-size=256 test/test-d3dim-gpu-batching.js
node --max-old-space-size=256 test/test-d3dim-gpu-points.js
Each invocation has 60-second wall/CPU guards and checks MemAvailable >=805306368.
The precompilation manifests bind full compiler Git blobs/SHA-256 in
closure-manifest.json to exact byte offsets, excerpt order and hashes in
baseline-manifest-caps.json / candidate-manifest-caps.json.
Qualification is authentic small Wasm excerpts/software fixture pixels and mocked
GPU lowering. No full canonical compile, COM/native guest, GPU pixels, browser,
gameplay, modifiers or multistage qualification is added. Unsupported-operation
fallback diagnostics and existing fail-fast paths are unchanged.
Retained evidence: /tmp/legacy-texture-disable-capability-oct24/, including
runs.jsonl, uniquely named logs, compiler/excerpt receipts, resource receipts,
closure.json and final seals/publication receipt. Recovery: create an isolated
explicit sparse checkout at the baseline, restore this task's test/fixture, run
the contract against baseline source (expected exit 1), then against this task's
source (expected exit 0), followed by the commands above. Existing immutable
donors and installed tools are standing inputs; they were not copied invisibly.
Initial instruction display overflow is retained and conservatively charged;
an initial misplaced --manifest-only Node option exited 9 before compilation,
then the corrected argument order passed. Neither is a resource denial. All
history and charges are retained. Root tracked files/index/refs and donors are
untouched; the append-only root board is the coordination exception.
Task branch only, pending independent review and coordinator integration. No box assigned (ID/state/expiry N/A); coordinator retains lifecycle ownership.