FAILURE MAP
← Case archive

FA-10771 / Raster memory layout / Open access

Texture mirror repeat period · case 01

Ordinary repeat wraps instead of reversing every alternate texture copy.

Verified by executionVariant 1 · 5 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Ordinary repeat wraps instead of reversing every alternate texture copy.

VERIFIED REPAIR

Use the stage contract: Mirror-repeat integer texel indices with duplicated edge texels and period twice the positive texture size.

Unsuccessful approach: Edge clamping never traverses reflected texels beyond the texture.

Case contract

Mirror-repeat integer texel indices with duplicated edge texels and period twice the positive texture size.

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(coordinate, size):
    return coordinate%size
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(4, 4)), 3)
check('fixture 2', solve(*(5, 4)), 2)
check('fixture 3', solve(*(-1, 4)), 0)
check('fixture 4', solve(*(8, 4)), 0)
check('fixture 5', solve(*(2, 4)), 2)
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 fixtureActualExpectedOutcome
fixture 103Failed
fixture 212Failed
fixture 330Failed
fixture 400Passed
fixture 522Passed

SHA-256 / 10ffe12e6cc957962875000d5825b4a9859a130b584bf4a453775abd6cd69e88

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(coordinate, size):
    return min(size-1,max(0,coordinate))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(4, 4)), 3)
check('fixture 2', solve(*(5, 4)), 2)
check('fixture 3', solve(*(-1, 4)), 0)
check('fixture 4', solve(*(8, 4)), 0)
check('fixture 5', solve(*(2, 4)), 2)
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 fixtureActualExpectedOutcome
fixture 133Passed
fixture 232Failed
fixture 300Passed
fixture 430Failed
fixture 522Passed

SHA-256 / d4dc2ceddd1c6bdd817f5d22eeb7847689cd279bfce6ff0398f5f6cabf7e5735

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(coordinate, size):
    return (coordinate%(2*size)) if coordinate%(2*size)<size else 2*size-1-coordinate%(2*size)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve(*(4, 4)), 3)
check('fixture 2', solve(*(5, 4)), 2)
check('fixture 3', solve(*(-1, 4)), 0)
check('fixture 4', solve(*(8, 4)), 0)
check('fixture 5', solve(*(2, 4)), 2)
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 fixtureActualExpectedOutcome
fixture 133Passed
fixture 222Passed
fixture 300Passed
fixture 400Passed
fixture 522Passed

SHA-256 / 3b89fe6315df06e494b36c24a211e2393e472357b341f5edf20e44b3ec272d7f

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.970420+00:00.

Case digest / 4e71012f4eeac939d1768ffe828e7b860bbeb8f0370a6b32062871113a81d770