CNA-GAP-028: The METAL renderer applies KHR_materials_specular factors only and samples neither specular texture
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.
Every other PBR renderer samples specularTexture and specularColorTexture; METAL reads the factor and colour but not the two maps, which the renderer-policy test pins as factor-only.
- Identifier
CNA-GAP-028- Category
- Functional gap
- 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
- PbrEffect rendering of KHR_materials_specular materials on the METAL renderer
Expected behaviour
The imported specularTexture and specularColorTexture should modulate the specular term wherever PBR materials are drawn.
Actual behaviour at TARGET
SpecularTextureInventoryClassifiesEveryPbrRenderer in GltfRendererPbrFallbackPolicyTests.cpp lists metal as the only factor-only renderer (“it genuinely IS factor-only”). gltf-limitations.md names EasyGL, OpenGL4, DirectX9/11/12, SDL GPU and Vulkan as applying the textures.
Source locations
modules/content/tests/CNA/Internal/GltfImport/GltfRendererPbrFallbackPolicyTests.cpp— SpecularTextureInventoryClassifiesEveryPbrRenderer: factorOnly = {metal}docs/gltf-limitations.md— KHR_materials_specular: IMPLEMENTED_WITH_A_NAMED_LIMIT
Evidence
Checked by reading at 009d40f5; not executed; METAL runs only on macOS.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
The policy test pins the classification so that a change is noticed.
Regression test
When METAL samples the maps, move it to the sampling set and add a pixel witness.
Blast radius
glTF materials with specular maps drawn on METAL: the specular term is uniform across the surface.
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
- glTF conformance: capability
- Known issues
- Functional gap index