Skip to content

Safari 27: Globe atmosphere vertex shader fails to link through ANGLE/Metal #13650

Description

@kinglau66

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.

Image

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

  • I used AI to generate this issue report.
  • (If the above is checked) I have reviewed the AI-generated content before submitting.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions