Skip to content

Document accurate root cause for 17 subtle pixel-diff tests#1705

Open
bkaradzic-microsoft wants to merge 1 commit into
BabylonJS:masterfrom
bkaradzic-microsoft:weekend/tpc-1599-subtle-pixel-diffs
Open

Document accurate root cause for 17 subtle pixel-diff tests#1705
bkaradzic-microsoft wants to merge 1 commit into
BabylonJS:masterfrom
bkaradzic-microsoft:weekend/tpc-1599-subtle-pixel-diffs

Conversation

@bkaradzic-microsoft
Copy link
Copy Markdown
Contributor

@bkaradzic-microsoft bkaradzic-microsoft commented May 18, 2026

Per-test PIL-composite triage of all 17 subtle pixel-diff tests. None of them are deterministic-cosmetic (no re-bakes possible - all show real visible regressions).

Updates the reason field in Apps/Playground/Scripts/config.json for 17 tests with accurate symptom descriptions, classifying into recurring root-cause clusters:

  • 9 GUI green->red color regressions (idx 160, 174, 175, 196, 197, 370, 402, 566, 587)
  • 4 OpenPBR analytic-lights right-column red rendering (580, 584, 587, 592)
  • 1 instanced billboard foliage red (169)
  • 1 LineEdgesRenderer extra red lines (179)
  • 1 Background blur red splotches (602)
  • 1 Clip planes GUI sliders red (182)
  • 1 Instanced Bones edge-AA (256, borderline)

No source changes, no test re-enables, no PNGs. Metadata-only correction so the issue tracker reflects actionable root causes.

Landing context

This PR is one of 7 splits from the proven CI-green combined preview in draft PR #1702 (see #1702 for the full intended end-state and verified CI run 26044922430).

Note: the original split included an 8th PR (#1709, ES2020+ -> ES2019 syntax-repair polyfill for Chakra). It was closed in favour of investigating @babel/standalone properly (#1711).

Recommended landing order

Tier 1 - parallel-reviewable, no source conflicts:

  1. Fix ExternalTexture_OpenGL throw-stubs to avoid MSVC C4702 under /WX #1703 - ExternalTexture C4702 build fix
  2. Document accurate root cause for post-#1695 pixel-diff fallouts #1704 - config.json reason rewrites (5 entries)
  3. Document accurate root cause for 17 subtle pixel-diff tests #1705 - config.json reason rewrites (17 entries)

Tier 2 - sequential, each touches Apps/Playground/CMakeLists.txt SCRIPTS list + Apps/Playground/Shared/AppContext.cpp LoadScript order; rebase the next branch after the previous merges:

  1. Add File/Blob/FileReader polyfill for Playground (re-enables 19 GLTF tests) #1706 - File/Blob/FileReader polyfill (largest test impact: 19 re-enables)
  2. Add fetch() polyfill over XMLHttpRequest for Playground #1707 - fetch polyfill
  3. Add DOM globals polyfill + native AbortController for Playground #1708 - DOM globals + native AbortController + Android CMake link
  4. Add cubemap auto-expand polyfill for Playground (re-enables 7 PBR tests) #1710 - Cubemap auto-expand polyfill (loaded after babylon.max.js)

Reference policy reminder

Reference PNGs across all 7 PRs come from Babylon.js; never re-baked by BN. Combined diff: 0 PNGs.

Triaged 17 tests previously documented as `Pixel comparison fails` /
`Newly added test crashes` / `Framebuffer creation fails` /
`Test fails locally on Win32 D3D11 sweep`. None of these descriptions match
current behaviour. All 17 reach the renderer and produce pixel diffs (no
crash, no FB-creation failure), but with consistent visible regressions:

- 9 tests (160, 174, 175, 196, 197, 370, 402, 566, 587 partial) show
  GUI controls rendering with red/orange backgrounds where reference
  expects green/white -- a recurring BN GUI color regression.
- 4 tests (580, 584, 587, 592) show OpenPBR analytic-lights spheres
  rendering saturated red where reference shows pink/white subsurface
  scattering or anisotropy -- spirv-cross HLSL emit gap.
- 1 test (169) shows instanced billboard foliage rendering red instead
  of green -- vertex/instance color routing.
- 1 test (179) emits extra red LineEdgesRenderer lines not in reference.
- 1 test (602) Background material blur produces red splotches.
- 1 test (182) has GUI slider handles red instead of green plus minor
  skull edge AA differences.
- 1 test (256) Instanced Bones has deterministic ~3.5% px sub-pixel
  animation/edge-AA delta with structurally-correct render.

These updated reasons help future debuggers triage rather than send them
chasing the misleading `crashes` / `framebuffer creation fails` claims.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant