FA-10721 / Rendering state / Open access
Render target clear selected · case 01
Clearing one framebuffer operation overwrites all attachments.
ROOT CAUSE
Clearing one framebuffer operation overwrites all attachments.
VERIFIED REPAIR
Use the stage contract: Clear only selected valid attachment indices in a list of scalar target values; preserve every unselected attachment.
Unsuccessful approach: Clearing only the first selected attachment ignores multiple draw buffers.
Case contract
Clear only selected valid attachment indices in a list of scalar target values; preserve every unselected attachment.
Why this case matters
A deterministic software graphics stage with explicit channel and coordinate conventions; no hardware, device profile or API behavior is inferred.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(targets, selected, color):
return [color for old in targets]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(['a', 'b', 'c'], [0, 2], 'x')), ['x', 'b', 'x'])
check('fixture 2', solve(*(['a', 'b'], [], 'x')), ['a', 'b'])
check('fixture 3', solve(*(['a', 'b'], [1], 'x')), ['a', 'x'])
check('fixture 4', solve(*([], [], 'x')), [])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['x', 'x', 'x'] | ['x', 'b', 'x'] | Failed |
| fixture 2 | ['x', 'x'] | ['a', 'b'] | Failed |
| fixture 3 | ['x', 'x'] | ['a', 'x'] | Failed |
| fixture 4 | [] | [] | Passed |
SHA-256 / 441774d8cae522a46c7e790ed04e896fe6c986f3f932c22bd331e4f6097bff62
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(targets, selected, color):
return [color if i==min(selected) else old for i,old in enumerate(targets)] if selected else list(targets)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(['a', 'b', 'c'], [0, 2], 'x')), ['x', 'b', 'x'])
check('fixture 2', solve(*(['a', 'b'], [], 'x')), ['a', 'b'])
check('fixture 3', solve(*(['a', 'b'], [1], 'x')), ['a', 'x'])
check('fixture 4', solve(*([], [], 'x')), [])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['x', 'b', 'c'] | ['x', 'b', 'x'] | Failed |
| fixture 2 | ['a', 'b'] | ['a', 'b'] | Passed |
| fixture 3 | ['a', 'x'] | ['a', 'x'] | Passed |
| fixture 4 | [] | [] | Passed |
SHA-256 / 414025da1c07d0f191e2349a0a4db7f2770486c3b7c36824bd0a5ccaa7a86600
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(targets, selected, color):
return [color if i in selected else old for i,old in enumerate(targets)]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(['a', 'b', 'c'], [0, 2], 'x')), ['x', 'b', 'x'])
check('fixture 2', solve(*(['a', 'b'], [], 'x')), ['a', 'b'])
check('fixture 3', solve(*(['a', 'b'], [1], 'x')), ['a', 'x'])
check('fixture 4', solve(*([], [], 'x')), [])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | ['x', 'b', 'x'] | ['x', 'b', 'x'] | Passed |
| fixture 2 | ['a', 'b'] | ['a', 'b'] | Passed |
| fixture 3 | ['a', 'x'] | ['a', 'x'] | Passed |
| fixture 4 | [] | [] | Passed |
SHA-256 / 779de8860f60362ab5c3e35c8543dc49ce825a9d9f76ec3a572ef91094b8d438
Verification & scope
This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:38:41.646315+00:00.
Case digest / 2c403df6b29aee6ca27e3ced861d4b4fd9996b542f964b3605ed7b4d5306a7b6