CNA-PLAT-003: EasyGL on GLES/WebGL contexts without GL_NV_polygon_mode or WEBGL_polygon_mode refuses wireframe triangle draws
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.
FillMode::WireFrame triangle draws throw NotSupportedException there instead of being approximated with lines; GraphicsCapability::WireFrame reports false so a game can choose Solid.
- Identifier
CNA-PLAT-003- Category
- Platform limitation
- Subsystem
- Graphics & renderers
- 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
- RasterizerState.FillMode = WireFrame on the GLES and WebGL EasyGL profiles
Expected behaviour
XNA HiDef supports wireframe fill; OpenGL ES and WebGL have no polygon mode unless an extension provides it.
Actual behaviour at TARGET
EasyGLRenderer.cpp's RequireSupportedFillModeEXT throws NotSupportedException for TriangleList/TriangleStrip draws when wireframe is requested and neither extension is present, with a message pointing at SupportsCapability(GraphicsCapability::WireFrame).
Source locations
modules/renderers/easygl/src/EasyGLRenderer.cpp— EasyGLRenderer::RequireSupportedFillModeEXT
Evidence
Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry.
Independent re-verification: Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry. The shared WireFrame tests (GraphicsDeviceCapabilityTests.cpp) assert that the reported capability matches the actual draw, so both the positive and the refusal arm exist. In CI they run only in the unfiltered general job, which builds the OPENGLES3 identity (an ES context); platform-ci's OPENGL33 leg runs smoke games rather than these fixtures, so no CI job runs them on desktop GL, and which arm the CI ES context takes depends on whether it exposes GL_NV_polygon_mode.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
EasyGL wireframe fixtures run on desktop GL in CI; the refusal branch is exercised only where a context lacks the extensions.
Regression test
A GLES/WebGL context test that asserts the capability is false and the draw throws.
Blast radius
Debug wireframe views and wireframe art styles on mobile and browser builds.
Workaround
Check the WireFrame capability and fall back to Solid, or draw line lists.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Deep dives
- EasyGL semantics: wireframe
- Known issues
- Platform limitation index