Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fill-extrude layer is drawn above the next-above symbol layer #2259

Closed
westnordost opened this issue Apr 12, 2024 · 4 comments · Fixed by #2956
Closed

fill-extrude layer is drawn above the next-above symbol layer #2259

westnordost opened this issue Apr 12, 2024 · 4 comments · Fixed by #2956
Assignees
Labels
bug Something isn't working OpenGL Issues related to the OpenGL renderer backend

Comments

@westnordost
Copy link
Collaborator

Describe the bug
The icons shown in a symbol layer are drawn behind the geometries in a fill-extrude layer if the latter is immediately below the former in the layer list.

To Reproduce
Steps to reproduce the behavior:

  1. Put a symbol layer directly above (i.e. after, in the layer list) a fill-extrude layer in a style json
  2. Notice that the symbols are drawn behind the geometry in the fill-extrude layer

Expected behavior
fill-extrude should respect the layer order or the documentation should be updated to explain this.

Screenshots
Screenshot_20240412_142612

Platform information (please complete the following information):

  • OS: Android 13
  • Version 11-pre04

(Only tested with v11-pre04)

@westnordost westnordost added the bug Something isn't working label Apr 12, 2024
@louwers louwers added the OpenGL Issues related to the OpenGL renderer backend label Apr 12, 2024
@westnordost
Copy link
Collaborator Author

It looks like this is fixed with org.maplibre.gl:android-sdk:11.3.0-vulkan-pre0.

@louwers
Copy link
Collaborator

louwers commented Oct 8, 2024

#2894 contains a reproduction


From @Zverik:

Sometimes extruded buildings cover symbols and labels. Which never happens with MapLibre GL JS (on web) — and that made debugging this quite hard.

I was testing with Flutter package, which uses MapLibre Native for Android. We have also encountered this bug on a native Android application using the SDK.

After some experimenting, I narrowed styles to replicate this to those two:

  • style2.json — between zooms 15 and 15.5, poi_r1 layer is covered by building-3d layer. There is no mention of zoom 15.5 in the style, so the reason buildings cover POI on on zoom and don't on others is unknown.
  • style2_old.json — same style without building and poi_r7 layers. While it should not have affected the outcome, instead extruded buildings cover POI on all zooms 15+.

When you remove any layers from the label group, suddenly extruded buildings stop covering POI symbols. That is the most baffling: why labels affect this, and why not "all labels".

Versions:

  • maplibre_gl flutter package: ^0.20.0
  • maplibre-native for android: v11.0.0
  • android 14 on sony xperia 10 vi

A screenshot:

extruded-fail

@Zverik
Copy link
Contributor

Zverik commented Oct 14, 2024

We have been testing, and the bug does not seem to completely go away with the Vulcan build. For POI — yes, it is fixed. But instead, landuse labels (e.g. park and pond names) get obscured by extruded buldings. Even on non-adjusted styles: osm-liberty shows this between zooms 14 and 15.

I'm doing more tests (using modified flutter library, so not sure it does use vulkan), but our Android developer reports this.

black-pearl-vulcan-bug

@alexcristici
Copy link
Collaborator

From what I tested so far it seems that this issue is happening only on OpenGL, not on Vulkan or Metal.
I'm looking into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working OpenGL Issues related to the OpenGL renderer backend
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants