CNA-VGAP-030: Model drawing on SOFTWARE, SDL_GPU, WEBGPU, FNA3D and DIRECTX9 is checked in CI at most at the stride draw boundary; the shared Model programs and the whole-corpus L7 rung run in CI for OPENGLES3 only
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 3b43bd86; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
The EasyGL Model draw, hierarchy, two-mesh, skinned-playback and .cnj reader programs run verbatim as CTests on SOFTWARE and SDL_GPU, but no workflow runs them; the SOFTWARE whole-corpus L7 campaign is a committed report from an earlier commit.
- Identifier
CNA-VGAP-030- Category
- Verification gap
- Subsystem
- Testing & evidence
- Status
- Open
- Verified against
- CNA
3b43bd86(3b43bd8687ed46523d873f9bec4b32bd8481dcb5) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- ModelMesh::Draw / Model::Draw on each 3D renderer; the glTF L7 image comparison
Expected behaviour
A renderer that draws Model graphs should have repeatable evidence that it does so correctly, ideally in CI.
Actual behaviour at TARGET
The easygl_model_* sources are compiled unchanged by CMakeLists.txt (Software_ModelDraw_RedQuad and Software_Model_*) and CMakeLists.txt (SdlGpu_EasyGLOracle_model_*); HEADLESS has a Model::Draw check in headless_effects_test.cpp. No workflow runs any of these non-EasyGL registrations: gltf-renderer-stride-ci.yml configures SOFTWARE, SDL_GPU and WEBGPU but runs only ctest -L gltf-conformance, and platform-ci.yml filters ctest to platform tests. What CI does run on those renderers is RendererStrideConformance (a real Model::Draw plus Present per glTF stride that passes on no throw or a named refusal, with no pixel check) and the L0-L6 ladder; FNA3D and DIRECTX9 are configured by no automatic workflow. The l7-corpus job runs the whole-corpus image rung for OPENGLES3 only. The SOFTWARE whole-corpus result is the committed report gltf-l7-software-corpus-report.json, captured on 2026-08-18 at CNA commit b6c180fd.
Source locations
.github/workflows/gltf-renderer-stride-ci.yml— conformance matrix (ctest -L gltf-conformance) and the OPENGLES3-only l7-corpus jobdocs/gltf-l7-software-corpus-report.json— capturedOn 2026-08-18, cnaCommit b6c180fdmodules/renderers/sdl-gpu/examples/CMakeLists.txt— SdlGpu_EasyGLOracle_model_* registrationsmodules/renderers/software/examples/CMakeLists.txt— Software_Model_* registrationsmodules/renderers/easygl/examples/easygl_model_draw_test.cpp— one of the shared Model programs
Evidence
Checked by reading each renderer's CMake registrations of the shared Model programs, every workflow's ctest selection and the report header at 3b43bd86; not executed. The report is CNA's own record for its commit, not for 3b43bd86.
Re-verified at c6dec91f: the renderers retired on 2026-10-13 and 2026-10-14 took their Model registrations and their two committed L7 reports with them; the lavapipe cells of the glTF-conformance workflow moved to SDL_GPU and WEBGPU, which run the stride boundary only.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
L0–L6 oracles and the stride test run per renderer in CI; the EasyGL Model programs run where EasyGL is built.
Regression test
A CI job that runs the SdlGpu_EasyGLOracle_model_* and Software_Model_* CTests (lavapipe serves SDL_GPU) and reruns the SOFTWARE L7 rung against its committed goldens.
Blast radius
Evidence only: regressions in Model drawing on SOFTWARE, SDL_GPU, WEBGPU, FNA3D and DIRECTX9 would not be caught by CI image comparison.
Workaround
No workaround is known.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Known issues
- Verification gap index