-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Area fill colors get corrupted upon scroll (Android). #1702
Comments
@mb12 Does this only happen on Nexus S? Have you been able to reproduce this on other phones? |
I haven't seen this issue on iOS. The closest thing I can think of is that fills are all screwed up after loading Pencil style. |
Never seen this issue on my Moto G 2 test device. |
See #636 and https://github.com/mapbox/mapbox-gl-styles/blob/mb-pages/styles/pencil-v7.json. |
@mb12 Can you get the GL info from your phone? It will be in the app logcat towards the start. This is either an interaction with some specific set of GL extensions your phone has, or some sort of bug in the GPU driver for your phone. |
Is this what you are looking for? |
@mb12 thanks |
I have a similar problem on a Samsung S3 (Android version 4.4.4). Some tiles don't always load it seems or rendering is invalid. |
@ljbade and @bleege Is it possible to analyze this for B1? There are at least two devices where this reproduces consistently (S3 and Nexus S). I would be more than happy to mail you one of my test devices to reproduce the issue. |
@mb12 Could you provide some more information on the S3? Specifically, Android API number that your device is running. It's an older phone that looks like it originally came with Android 2.3. |
@ljbade The symptoms of this bug look very similar to z fighting. Is it possible to have this code reviewed (esp. the usage of glDepthRange, glDepthMask in translucent phase etc)? z fighting may also explain why symbols/lines sometimes disappear upon panning or just do not show up on some Android devices. I've verified that the Depth buffer size is 24 bits on the device where it reproduces (Its also 24 bits on where it does not reproduce). |
@kkaefer , @ansis , @jfirebaugh Is it possible to prioritize this bug since it happens on a variety of Android devices (Similar symptoms have also been reported on S3, Lenovo Tab, Nexus 10 running Android 5.1). It looks like a combination of several bugs in the opengl client code. I've included some of the analysis below.
|
@mb12: thanks for your observations, certainly looks like these are multiple bugs. Can you check whether https://github.com/mapbox/mapbox-gl-native/tree/fix-android-rendering-bugs fixes any of the above bugs for you? |
This still reproduces the issue. 1.) For lines, very frequently the map goes to a state, where panning to one side causes the line to disappear and panning to the other makes them appear (similar to this issue #1478). This happens on master repo as well. I've attached two screenshots showing the line disappearance issue. 2.) Red lines around fills still persists and they expand to fill the area upon pan. |
Here is more information regarding the lines disappearing issue: 1.) Lines disappear/appear at a point a new tile enters/leaves the Viewport. By this I mean, with renderDebugFrame turned on, move the red frame line into and out of the ViewPort. 2.) Whenever this happens, the list of RenderItems changes, resulting in new depth ranges being mapped to each RenderItem bucket. 3.) The issue happens independently of fill buckets. Remove fill style layers from style.json or always return nullptr from TileWorker::createFillBucket. |
@kkaefer I have been able to narrow down the line disappearance issue to LineSdfShader. If I replace dashed lines with regular lines in the style or make the equivalent change in painter_line.cpp the disappearing line issue goes away. I am unable to figure out how panning can interact with LineSdfShader causing lines to disappear. Please do let me know what else I can try to narrow down the issue further. |
Map is really messed up now in commit d400fe0 on a samsung s3 device |
@erf Are you still seeing this issue? |
It's been a while since we've heard much noise about this particular issue, and we haven't been able to reproduce it in-house. Can we get a status check on this @mb12 @erf and see if things are still wonky? A lot has changed in the meantime and it's possible that either we fixed this inadvertently or that it only shows up on very old Android versions. |
@adam-mapbox It consistently reproduces on Galaxy Nexus S. @ljbade also purchased one from ebay and confirmed that he was able to reproduce the issue. This issue no longer reproduces on S3. |
@mb12 Can you confirm what version of Android (API level would be ideal) that the Galaxy Nexus S is running? According to Wikipedia it's running 2.3.3. |
I haven't seen this issue on other devices, including the screenshots taken from 220 devices on AWS device farm and the Nexus S is a device from 2010 and is too old to keep supporting. Closing. |
@tobrun Do you know if there is a way to mark a particular device as unsupported in AndroidManifest.xml? |
This is consistently reproducible on Samsung Nexus S.
Just go to any area with fill colors and scroll. I've attached two screenshots from Samsung Nexus S (one that shows expected fill colors and the other that shows corrupted fill colors).
The text was updated successfully, but these errors were encountered: