What happened?
CesiumJS fails to render in Safari 27 because the globe atmosphere vertex shader cannot be linked by Safari’s ANGLE/Metal backend.
Error
Safari reports an internal Metal compilation error involving ANGLE_Out, thread float3, and __metal_generic float3. Full logs are attached.
Console.txt
Workaround
Using local variables for the atmosphere-scattering outputs before assigning the vertex outputs links successfully. Disabling both fog and ground atmosphere also avoids the failure:
viewer.scene.globe.showGroundAtmosphere = false;
viewer.scene.fog.enabled = false;
Could GlobeVS.glsl use local temporary variables for the computeAtmosphereScattering outputs to avoid this Safari translator issue?
Console.txt
Reproduction steps
The issue is reproducible in Cesium Sandcastle when fog or ground atmosphere is enabled. Chrome renders the same scene correctly.
Sandcastle example
https://sandcastle.cesium.com
Environment
- CesiumJS: 1.137; the same shader pattern remains in current versions
- Safari: 27.0 (
22625.1.24.11.2)
- macOS: 27.0 (
26A5388g)
- GPU: Apple M4 Pro
AI acknowledgment
What happened?
CesiumJS fails to render in Safari 27 because the globe atmosphere vertex shader cannot be linked by Safari’s ANGLE/Metal backend.
Error
Safari reports an internal Metal compilation error involving
ANGLE_Out,thread float3, and__metal_generic float3. Full logs are attached.Console.txt
Workaround
Using local variables for the atmosphere-scattering outputs before assigning the vertex outputs links successfully. Disabling both fog and ground atmosphere also avoids the failure:
Could
GlobeVS.glsluse local temporary variables for thecomputeAtmosphereScatteringoutputs to avoid this Safari translator issue?Console.txt
Reproduction steps
The issue is reproducible in Cesium Sandcastle when fog or ground atmosphere is enabled. Chrome renders the same scene correctly.
Sandcastle example
https://sandcastle.cesium.com
Environment
22625.1.24.11.2)26A5388g)AI acknowledgment