maplibre / maplibre-gl-js

MapLibre GL JS - Interactive vector tile maps in the browser
https://maplibre.org/maplibre-gl-js/docs/
Other
6.72k stars 719 forks source link

Circle layer won't render on Mali GPU #717

Closed jleedev closed 2 years ago

jleedev commented 2 years ago

Circle layers are having trouble rendering on my device (specifically Acer Chromebook Spin 311 with MediaTek CPU and Mali-G72 GPU). I can reproduce on the built-in Chrome browser as well as Firefox for Android. (Firefox in Crostini uses a software renderer and is unaffected.)

This example from the docs renders the polygon only, not the circles: https://maplibre.org/maplibre-gl-js-docs/example/multiple-geometries/

The same example with Mapbox works properly: https://docs.mapbox.com/mapbox-gl-js/example/multiple-geometries/

It works in Mapbox GL JS 2.0.0, but was broken in 1.13.2.

The culprit seems to be related to the circle-radius property. This is broken:

      'circle-radius': 10,

but making it depend on some property works:

      'circle-radius': [ 'coalesce', ['get', 'asdf'], 10, ],

I have further examples at https://twister.43foldrs.com/maplibregl-circles/

jleedev commented 2 years ago

This is also fixed by adding 'circle-pitch-alignment': 'map'.

mattdsteele commented 2 years ago

I can confirm the same behavior on my device (Lenovo Chromebook Duet tablet, Mediatek Helio P60 chip, with Arm Mali-G72 MP3 GPU) and maplibre version 2.1.9,

I'm working around using the same circle-pitch-alignment method @jleedev mentioned.

jleedev commented 2 years ago

Well, my machine updated to Chrome 101, and the first link in the docs works now (as do OSMCha and Mapillary, which all had the same issue). Going to assume there was some driver fix; at any rate this is no longer an issue for me and I can't debug it further.

Current version details:

Google Chrome 101.0.4951.72 (Official Build) (32-bit)
Revision 28feeaf02ad3b067d69d3d6468545339fda35eb7-refs/branch-heads/4951@{#1274}
Platform 14588.123.0 (Official Build) stable-channel jacuzzi
Firmware Version Google_Juniper.12573.244.0
skinkie commented 2 days ago

@jleedev I still(?) have this issue. I can reproduce it in the hosted maputnik version on a regular Linux machine with Radeon GPU. Workaround with property dependency works, 'circle-pitch-alignment': 'map' does not.

Should I open a new issue?