CNA-VGAP-030: Model drawing on VULKAN, SOFTWARE and the Direct3D renderers is checked in CI only 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 009d40f5; 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 are reused verbatim as CTests on SOFTWARE, VULKAN, SDL_GPU, OPENGL4 and the DirectX parity set, but no workflow runs those registrations; the whole-corpus L7 image campaigns for VULKAN, SOFTWARE and DIRECTX11 are committed reports from one earlier commit, not CI jobs.
- Identifier
CNA-VGAP-030- Category
- Verification gap
- Subsystem
- Testing & evidence
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - 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_*), CMakeLists.txt (Vulkan_Model_*), CMakeLists.txt (SdlGpu_EasyGLOracle_model_*), EasyGLParityCorpus.cmake and DirectXParityTests.cmake; HEADLESS has a Model::Draw check in headless_effects_test.cpp and SDL_RENDERER has the refusal test sdlrenderer_model_draw_throws_test.cpp. No workflow runs any of these non-EasyGL registrations: platform-ci.yml builds SOFTWARE and VULKAN with examples but filters ctest to platform tests, and gltf-renderer-stride-ci.yml builds CnaTests only. What CI does run on VULKAN, SOFTWARE and OPENGLES3 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; the l7-corpus job runs the whole-corpus image rung for OPENGLES3 only. The VULKAN, SOFTWARE and DIRECTX11 (under DXVK) whole-corpus results are the committed reports gltf-l7-vulkan-corpus-report.json, gltf-l7-software-corpus-report.json and gltf-l7-directx11-report.json, captured on 2026-08-18 at CNA commit b6c180fd.
Source locations
.github/workflows/gltf-renderer-stride-ci.yml— conformance matrix and the OPENGLES3-only l7-corpus jobdocs/gltf-l7-vulkan-corpus-report.json— capturedOn 2026-08-18, cnaCommit b6c180fddocs/gltf-l7-software-corpus-report.json— same capturedocs/gltf-l7-directx11-report.json— same capture, DIRECTX11 through DXVKmodules/renderers/easygl/examples/easygl_model_draw_test.cpp— one of the EasyGL-only Model programs
Evidence
Checked by listing the renderer example directories, reading the workflow and the report headers at 009d40f5; not executed. The reports are CNA's own records for their commit, not for 009d40f5.
Independent re-verification: Checked by reading each renderer's CMake registrations of the shared Model programs, every workflow's ctest selection and the report headers at 009d40f5; not executed. The reports are CNA's own records for their commit, not for 009d40f5. The regression test should be a CI job that runs the Vulkan_Model_* and Software_Model_* CTests and reruns the VULKAN (lavapipe) and SOFTWARE L7 rungs against their committed goldens.
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 reruns the VULKAN (lavapipe) and SOFTWARE L7 rungs against their committed goldens; a small renderer-local Model hierarchy program shared by the 3D renderers.
Blast radius
Evidence only: regressions in Model drawing on VULKAN, SOFTWARE and the Direct3D renderers 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