CNA-VGAP-021: No SpriteFont/DrawString pixel test exists for DIRECTX9, DIRECT2D, GDI, METAL, CANVAS, SVG_DOM, PORTABLEGL or FNA3D
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.
SpriteFont/DrawString reach pixels in a registered test on EasyGL, OPENGL4, SOFTWARE, SDL_RENDERER, VULKAN, SDL_GPU and WEBGPU (the latter two through the shared sprite_font parity fixture), the DIRECTX11/12 parity set, FREEDIRECT and, in its browser suite, HTML_DOM. Eight families rely on shared glyph-layout code without any text pixel test.
- Identifier
CNA-VGAP-021- 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
- SpriteBatch::DrawString / SpriteFont rendering per renderer
Expected behaviour
Text rendering combines shared layout with each renderer's sprite path (filtering, premultiplication, sub-pixel handling), so each family needs at least one pixel check.
Actual behaviour at TARGET
A count of SpriteFont/DrawString registrations in each renderer's examples/CMakeLists.txt and in the shared corpora finds them for EasyGL, OPENGL4 (EasyGLParityCorpus.cmake), SOFTWARE, SDL_RENDERER, VULKAN and FREEDIRECT, plus the DIRECTX11/12 parity fixtures in DirectXParityTests.cmake. The shared parity fixture parity_sprite_font (WEBGPU-179: a SpriteFont string, a newline and a default-character substitution reach pixels) is registered by cna_register_parity_fixtures for SDL_GPU (SdlGpu_Parity_sprite_font), WEBGPU (WebGPU_Parity_sprite_font), EasyGL and OPENGL4. HTML_DOM's browser suite (htmldom_smoke_test.cpp and htmldom_pixel_verification_test.cpp, run by htmldom-ci.yml) also draws strings and checks their pixels. None is registered for DIRECTX9, DIRECT2D, GDI, METAL, CANVAS, SVG_DOM, PORTABLEGL or FNA3D; HEADLESS and STUB rasterise nothing.
Source locations
cmake/DirectXParityTests.cmake— SpriteFont_* parity fixtures for DIRECTX11/12modules/renderers/opengl4/examples/EasyGLParityCorpus.cmake— OPENGL4 text fixtures
Evidence
Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry. Coverage established by grepping registrations; tests were not run.
Independent re-verification: Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry. The first count missed the shared parity_sprite_font fixture and HTML_DOM's browser pixel page. Coverage was established by grepping registrations, the shared parity inventory and each renderer's example directory; tests were not run. SdlGpu_Parity_sprite_font is not among the failing classic SDL_GPU tests in CNA's latest record (PSG-0009, STREETS-0008). The blast radius is text output on the eight listed renderers.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
Renderer-independent SpriteFont layout tests exist in the graphics module; they do not rasterise.
Regression test
Register the existing EasyGL SpriteFont fixtures (single glyph, multi-glyph spacing) for each missing family that supports textures.
Blast radius
Text output on the listed renderers: glyph placement, filtering and colour are unproven there.
Workaround
No workaround is known.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Deep dives
- SpriteFont text layout: evidence
- Known issues
- Verification gap index