Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Qualification fixtures are hashed byte-for-byte on every host.
examples/quality-transparency/assets/transparent-quad.gltf text eol=lf
examples/quality-masked/assets/masked-card.gltf text eol=lf
27 changes: 27 additions & 0 deletions docs/evidence/issue-153-radeon760m-completion-audit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Issue #153 Windows completion audit

Scope: the user replaced the unavailable RTX 4080 machine with this Windows Radeon 760M host. The requested qualification accepts strict failures when complete evidence is returned. It does not require silently making every image pass, weakening thresholds, or claiming RTX 4080 certification.

| Requirement | Authoritative evidence | State |
| --- | --- | --- |
| Start from requested renderer revision | Branch ancestry includes `4508eaff082b849203ac60f9d8f3a327b71d95c9`; source.patch records Windows corrections | Verified, with necessary execution fixes |
| Clean measured source | Both final result.json files name `8309985bf9f5358c38e5dd2cbc0e328d2bccb6f8`, `git_dirty=false` | Verified |
| Complete pinned assets and approved baselines | Asset check PASS; original hashes unchanged; Bistro revision `7c9f9f9ac0915024ccf3dddbccd8bfc643a42607` | Verified |
| Strict full nine-case run without report-only | Two full result.json files, all nine IDs, `report_only=false`, exit code 1 each | Verified; 7 pass, 2 visual failures |
| Correct available host identity | Native telemetry: Windows, Vulkan, AMD Radeon 760M Graphics, driver 24.12.1 | Verified for user-approved substitute hardware |
| Hardware ray-query in required cases | Sponza/Bistro native `ssgi_trace_backend=hw-ray-query` | Verified |
| Correct pixel dimensions and measurement evidence | Final PNG dimensions match every manifest case; telemetry and intermediate captures exist for all nine | Verified |
| Host quietness records | Both preflights and all 18 postflights accepted | Verified CPU snapshots; continuous background GPU/process-start monitoring not claimed |
| Preserve baselines, thresholds and noise bounds | Git diff against pinned source changes none; full result records strict visual failures | Verified |
| Repeatability | repro-check PASS, stable metadata equal, 257/257 artifacts byte-identical | Verified |
| Seeded regressions remain detectable | Five negative controls DETECTED, exit 0 | Verified |
| Diagnose remaining strict failures | Original baseline-source renderer produces byte-identical Sponza/skinned-alpha images on this host; controls preserved | Verified that failures predate intervening source changes under this configuration; precise portability cause unresolved |
| Runnable final local state | Temporary anisotropy reduction reverted; affected executables rebuilt; restored captures byte-identical to final qualification | Verified |
| Complete downloadable evidence | Versioned ZIP, CRC check, SHA-256 sidecar; report and source patch included | Published as a GitHub prerelease; uploaded size and SHA-256 verified against GitHub asset metadata |
| GitHub review and issue handoff | Draft PR #154 and reports posted on #153 and #128 | Published with explicit user authorization; PR draft state, integration base, and published bodies verified through the GitHub API |

The original RTX 4080 certification remains unperformed; this hardware substitution is documented rather than represented as that certification. Radeon performance numbers are measured, with no invented hard budget. The evidence permits renderer work to proceed on this Windows machine.

Published on 2026-09-10: [draft PR #154](https://github.com/Bloom-Engine/engine/pull/154), [evidence prerelease](https://github.com/Bloom-Engine/engine/releases/tag/quality-evidence-153-radeon760m-20260910), [#153 report](https://github.com/Bloom-Engine/engine/issues/153#issuecomment-5622704289), and [#128 report](https://github.com/Bloom-Engine/engine/issues/128#issuecomment-5622704740).

The uploaded v2 ZIP is 267,221,734 bytes with SHA-256 `aa099676ecd801ebb7ed586ddb9f9732b8f913f13a6d926604ad193b078d82a4`. Its source snapshot and release tag remain pinned to `5dc8277e7f6b0ca69908e8b34c33f99cdbe15ba0`; this publication audit was updated afterward. The archive therefore preserves the audit as it stood before publication.
143 changes: 143 additions & 0 deletions docs/evidence/issue-153-radeon760m-owner-isolation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
{
"schema": "bloom-issue153-windows-owner-isolation-v1",
"baseline_source_commit": "09ad0b755af9f10083712327d7f0edb1d88f228b",
"current_renderer_commit": "8309985bf9f5358c38e5dd2cbc0e328d2bccb6f8",
"baseline_source_images_identical_to_current": true,
"negative_controls_passed": true,
"negative_control_count": 5,
"runs": [
{
"run": "windows-radeon760m-vulkan-corrected",
"git_commit": "8309985bf9f5358c38e5dd2cbc0e328d2bccb6f8",
"git_dirty": false,
"backend": "vulkan",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.972333014,
"rmse_luminance": 0.012245284,
"image_sha256": "a02b5309c5b346d26b85cc599a9b50a423a8ec79bf8c27089a0206f30bfa01ca",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.931997895,
"rmse_luminance": 0.047519531,
"image_sha256": "dabb8e43ccbfd606d8e4fe8f5f5f9cb2e0ec4f59f9da4a6b16c2fe12c7ccd8df",
"status": "fail"
}
]
},
{
"run": "radeon-owner-software-gi",
"git_commit": "2c4af1948ab4a408b9c28f9aa568a372fd630b52",
"git_dirty": false,
"backend": "vulkan",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.969276249,
"rmse_luminance": 0.01358667,
"image_sha256": "b67f7e5d40875f1fff630525fd696e458e1ff974dea387765f49bee74e3db2a9",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.931530952,
"rmse_luminance": 0.047676153,
"image_sha256": "78fc7ad35a89a1c256a2b8fece63b0474459c3249f5c556afd3f94ff7655832b",
"status": "fail"
}
]
},
{
"run": "radeon-owner-bound-materials",
"git_commit": "2c4af1948ab4a408b9c28f9aa568a372fd630b52",
"git_dirty": false,
"backend": "vulkan",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.972333014,
"rmse_luminance": 0.012245284,
"image_sha256": "a02b5309c5b346d26b85cc599a9b50a423a8ec79bf8c27089a0206f30bfa01ca",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.931997895,
"rmse_luminance": 0.047519531,
"image_sha256": "dabb8e43ccbfd606d8e4fe8f5f5f9cb2e0ec4f59f9da4a6b16c2fe12c7ccd8df",
"status": "fail"
}
]
},
{
"run": "radeon-owner-dx12-software-gi",
"git_commit": "2c4af1948ab4a408b9c28f9aa568a372fd630b52",
"git_dirty": false,
"backend": "dx12",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.970000505,
"rmse_luminance": 0.013674281,
"image_sha256": "075b3df8d0a253391f1a1f8ff9534fb84ac4dd63d5757cba0b3a8cad8667ade2",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.931594729,
"rmse_luminance": 0.047674358,
"image_sha256": "02e6e354ba286b80e6d0b4dc67748fa5795c24d08e8d519f571704d0966ea61d",
"status": "fail"
}
]
},
{
"run": "radeon-owner-anisotropy-1",
"git_commit": "2c4af1948ab4a408b9c28f9aa568a372fd630b52",
"git_dirty": true,
"backend": "vulkan",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.95216471,
"rmse_luminance": 0.014432787,
"image_sha256": "4c829636947bfa841b38873b14e162f9565cbeddeb2f2127222bb46c436f6758",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.923400104,
"rmse_luminance": 0.048658907,
"image_sha256": "d0d90bf6c5ada752e4e181baf812f274c46bf196dd8eb56c6f225da4dfbd1a9c",
"status": "fail"
}
]
},
{
"run": "radeon-owner-baseline-source",
"git_commit": "09ad0b755af9f10083712327d7f0edb1d88f228b",
"git_dirty": true,
"backend": "vulkan",
"cases": [
{
"id": "sponza-interior",
"ssim": 0.972333014,
"rmse_luminance": 0.012245284,
"image_sha256": "a02b5309c5b346d26b85cc599a9b50a423a8ec79bf8c27089a0206f30bfa01ca",
"status": "fail"
},
{
"id": "skinned-alpha-motion",
"ssim": 0.931997895,
"rmse_luminance": 0.047519531,
"image_sha256": "dabb8e43ccbfd606d8e4fe8f5f5f9cb2e0ec4f59f9da4a6b16c2fe12c7ccd8df",
"status": "fail"
}
]
}
],
"conclusion": "Both failures predate changes since the approved baseline source, under the tested Windows/Radeon/compiler configuration. The precise cause of the cross-platform baseline discrepancy is not isolated."
}
30 changes: 30 additions & 0 deletions docs/evidence/issue-153-radeon760m-owner-isolation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Issue #153: Windows baseline portability investigation

The source revision that produced the approved baselines (`09ad0b755af9f10083712327d7f0edb1d88f228b`) and the current renderer produce **byte-identical final PNGs** for Sponza and skinned/alpha motion on this Windows Radeon 760M host. Both retain the same strict failures against the approved portable images. Under this tested configuration, these are not regressions introduced since that baseline source.

This comparison uses the old renderer, loaders, shaders and scene sources from its checkout, with the current Windows launch/headless corrections and qualification orchestrator overlaid to execute it on this host. The current corpus manifest and approved PNGs were copied in so the comparison uses identical inputs and thresholds. The original/current resolution, frame counts, seed, timestep, render scale, camera, settings and thresholds were independently compared and match for both cases. The exact adaptation patch is preserved at `tools/quality/out/radeon-evidence/windows-oracle-adaptations.patch`. Native build records identify `engine-quality-baseline/native/shared` and `engine-quality-baseline/native/windows`. The old-source checkout is a diagnostic oracle, not a clean qualification commit.

## Controls

| Configuration | Sponza SSIM | Skinned/alpha SSIM | Skinned/alpha luminance RMSE |
| --- | --- | --- | --- |
| windows-radeon760m-vulkan-corrected | 0.972333014 | 0.931997895 | 0.047519531 |
| radeon-owner-software-gi | 0.969276249 | 0.931530952 | 0.047676153 |
| radeon-owner-bound-materials | 0.972333014 | 0.931997895 | 0.047519531 |
| radeon-owner-dx12-software-gi | 0.970000505 | 0.931594729 | 0.047674358 |
| radeon-owner-anisotropy-1 | 0.952164710 | 0.923400104 | 0.048658907 |
| radeon-owner-baseline-source | 0.972333014 | 0.931997895 | 0.047519531 |

- Forcing software GI retains both errors, so simply changing GI is not a fix.
- Forcing bound material bindings produces exactly the current qualification images.
- DirectX 12 with software GI produces essentially the same failures as Vulkan with software GI. This is an image-only diagnostic; it does not claim a governed DirectX timing run.
- Reducing the material sampler from 16x to 1x anisotropy worsens both images. This temporary diagnostic was reverted. Its patch is preserved; no reduced-quality sampler setting is shipped.
- The old-source/current byte equality rules out the intervening Three.js material compatibility changes as the cause in these cases.

The remaining difference is between the approved portable baseline and this Windows/GPU/compiler configuration. This does not yet identify a specific driver, compiler or rasterization cause, and it does not authorize a baseline or threshold update. Further cross-platform normalization work needs a separate renderer investigation or a human-reviewed backend-specific baseline decision. The qualification task explicitly accepts a complete strict failure bundle.

## Detection and final state

The negative-control command detected all five governed seeded faults: BRDF energy, shadow placement, GI leakage, motion history and texture orientation. Its exit code was 0 and `result.json` records all five as detected.

The Windows fixes remain on `codex/issue-153-radeon760m`. No experimental rendering changes remain in that branch. The two full runs still provide the definitive nine-case Windows/Radeon qualification: seven passes, two strict visual failures, all required hardware ray-query cases measured, and reproducibility PASS with 257 byte-identical artifacts.
Loading