Ich habs gefunden.
Die Einstellung, die dafür verantwortlich war, war “gfx.color_management.mode = 1”.
Wenn man das auf den default “gfx.color_management.mode = 2” zurücksetzt und FF neu startet, dann funktioniert das Glätten der Kanten wieder.
Ich hab mal Google Gemini gefragt, warum das so ist, und der behauptet, dass eine Änderung in FF 154 im Rendering daran Schuld sei. Ob das stimmt kann ich nicht beurteilen. Ich hab den Output von Gemini mal gepasted, da hat man zumindestens was zu lachen…
Das klingt im ersten Moment völlig unlogisch – warum sollte ausgerechnet das Farbmanagement dafür sorgen, dass Linien kantig (“ohne Antialiasing”) dargestellt werden?
Dass gfx.color_management.mode = 1 (Vollständiges Farbmanagement für alle Renderschritte und Grafik-Assets) zu diesem spezifischen Verhalten bei Kartenbibliotheken wie MapLibre GL auf Kurviger führt, hat technische Gründe in der Shader-Pipeline von WebGL:
1. Alpha-Blending und Gamma-Korrektur (Der “Verdickungs-” & Kanten-Effekt)
Vektorkarten zeichnen glatte, geschwungene Linien nicht durch feine Geometrie, sondern durch Alpha-Blending: Die äußeren Pixel einer Höhenlinie sind teiltransparent (z. B. 20 %, 50 %, 80 % Deckkraft). Das menschliche Auge nimmt diese transparenten Übergänge als “glatte Kante” wahr.
Wenn gfx.color_management.mode = 1 aktiviert ist:
-
Zwingt Firefox alle WebGL-Render-Passes durch eine globale Farbkonvertierung (Color Profile Transformation).
-
Bei Modus 1 rechnet Firefox Farben im sRGB-Farbraum in den Display-Farbraum um – und zwar vor oder während des Alpha-Blendings der Shader.
-
Durch diese mathematische Gamma-Transformation werden die feinen, teiltransparenten Pixel an den Rändern der Linien radikal abgedunkelt oder aufgehellt. Die weichen Übergänge verlieren ihre Transparenz-Schattierung und werden “harte” Pixel. Das Antialiasing geht optisch komplett verloren, und die Linie wirkt extrem treppchenartig und knallig/kantig.
Google Maps ist von diesem Problem oft nicht betroffen, weil es andere Shader-Techniken oder Kachel-Tiles nutzt, die das Alpha-Blending anders handhaben.
2. Der Performance-Fallback (Warum erst ab Firefox 154?)
In neueren Firefox-Versionen wurden massive Änderungen an der WebRender-Pipeline und dem Zusammenspiel mit Wayland/Mesa (unter Linux wie Fedora) vorgenommen.
-
Der Farbraum-Bypass fällt weg: Bis vor kurzem hat Firefox bei WebGL-Inhalten das globale Farbmanagement schlicht ignoriert (Bypass), selbst wenn mode = 1 gesetzt war, um Render-Performance zu sparen.
-
Strengeres WebRender-Blending: Ab Firefox 154 greift die Konvertierung nun konsequent auf den gesamten Compositor-Stack zu. Wenn Grafiktreiber (wie der ältere i915 auf Haswell-CPUs) keine hardwarebeschleunigten 16-Bit-Float-Texturen für das Color-Mapping unterstützen, fällt der WebGL-Canvas auf ein vereinfachtes 8-Bit-Interpolationsverfahren zurück.
-
Das Ergebnis: Der Treiber kann die Zwischenfarben beim WebGL-Drawing nicht mehr mathematisch präzise auflösen. Die Kanten “brechen” weg.
Warum mode = 2 (Default) das Problem löst
Bei gfx.color_management.mode = 2 wendet Firefox das Farbmanagement nur auf Bilder/Tags mit explizitem ICC-Farbprofil an. WebGL-Canvas-Elemente (wie die Karte von Kurviger) bleiben unangetastet: Die Farben und Transparenzwerte der Höhenlinien werden 1:1 direkt vom Grafiktreiber auf den Schirm gerendert. Das Antialiasing funktioniert wieder wie vom Karten-Entwickler vorgesehen.