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

Map flickers on certain devices #2479

Open
akharche4 opened this issue Sep 16, 2024 · 12 comments
Open

Map flickers on certain devices #2479

akharche4 opened this issue Sep 16, 2024 · 12 comments
Labels
bug 🪲 Something isn't working

Comments

@akharche4
Copy link

akharche4 commented Sep 16, 2024

Environment

  • Android OS version: 11
  • Devices affected: Samsung Galaxy M30s (physical device)
  • Maps SDK Version: 11.5.1

Observed behavior and steps to reproduce

Video attached:

mapbox-flickers-samsung.mp4

When mapboxGlNative is set to 11.5.2 or higher in libs.versions.toml, the map flickers as shown in the video. It flickers only on certain zoom levels as can be seen in video attached.

When mapboxGlNative is set to 11.5.1, the map behaves as expected.

Notes / preliminary analysis

this issue did not occur on physical device pixel 6, android 14
the issue also did not occur on emulator pixel 6, api 30

@akharche4 akharche4 added the bug 🪲 Something isn't working label Sep 16, 2024
@barnisfar
Copy link

I can confirm this behaviour on:
Samsung Galaxy A40
Android version: 11
OneUI version: 3.1
Mapbox sdk version: 11.5.1

@flasher297
Copy link
Contributor

Thank you for raising an issue.
We've created an internal ticket to investigate it.
Will be back as soon as we have any updates.

@msuonp
Copy link

msuonp commented Oct 12, 2024

I’m experiencing similar map flickering issues on certain devices (Honor X7a, Redmi 9C) when using Mapbox SDK versions 11.7.0 and 11.7.1. The map is unresponsive to gestures, although camera change callbacks are still triggered, and the cameraState reflects the updated camera position. The issue does not occur with earlier SDK versions.

Mapbox.flashing.screen.mp4

@kiryldz
Copy link
Contributor

kiryldz commented Oct 14, 2024

@akharche4 can you confirm that you reproduce this in our example activity with no additions? Also can you share the logs? And also another question - is 11.5.1 the first version you saw this?

@msuonp can you also share the logs and also confirm that on Honor X7a, Redmi 9C you face the same issue in activity that @akharche4 reported? Trying to narrow down the root cause here...

@akharche4
Copy link
Author

akharche4 commented Oct 14, 2024

@kiryldz just to sort of be clear, I experience issues ONLY for when mapboxGlNative was set to 11.5.2 or higher. So NO issues on 11.5.1 of mapboxGlNative

from above desc:

When mapboxGlNative is set to 11.5.2 or higher in libs.versions.toml, the map flickers as shown in the video. It flickers only on certain zoom levels as can be seen in video attached.

When mapboxGlNative is set to 11.5.1, the map behaves as expected.

I did not change anything in Activity.

Logs of what exactly would you like?

@kiryldz
Copy link
Contributor

kiryldz commented Oct 14, 2024

Logs with Mapbox tag of level warning and error if there are any.

Edit: in general all the logs will be appreciated as we're leaning to the theory that this issue is hardware specific so there might be GPU driver error logs in logcat as well.

@msuonp
Copy link

msuonp commented Oct 17, 2024

@kiryldz I tested the example activity on the Redmi 9C, and it exhibits flickering and various rendering issues, such as markers not always being drawn. Unfortunately, there are no errors or warnings in the logs related to Mapbox or the GPU.

I currently don't have access to the Honor X7a to test on that device. The issue was originally reported by an end user, and I was able to reproduce it on the Redmi 9C.

Mapbox.test.activity.Redmi.9C.mp4

@clmoreno
Copy link

clmoreno commented Nov 4, 2024

I'm experiencing same issue with v11.7.1 :(

@Manahil26397
Copy link

I am experiencing the same flickering on my Redmi A3x Android 14 device when I upgraded to mapbox version 11.7.1

az_recorder_20241105_124141_edited.mp4

@Manahil26397
Copy link

This is still present in version 11.8.0

@akharche4
Copy link
Author

akharche4 commented Nov 12, 2024

@kiryldz

@akharche4 can you confirm that you reproduce this in our example activity with no additions? Also can you share the logs? And also another question - is 11.5.1 the first version you saw this?

@msuonp can you also share the logs and also confirm that on Honor X7a, Redmi 9C you face the same issue in activity that @akharche4 reported? Trying to narrow down the root cause here...

Logs:
commit: 3ab81e9

---------------------------- PROCESS STARTED (23095) for package com.mapbox.maps.testapp ----------------------------
MapboxInitializer       MapboxSDKCommonInitializer create() is called
MapboxInitializer       MapboxInitializer started MapboxSDKCommonInitializerImpl initialization, attempt 1
Mapbox                  [common]: Using Mapbox Common SDK v24.5.0(edbe9cbfd)
MapboxInitializer       Initialized MapboxSDKCommonInitializerImpl successfully
MapboxInitializer       MapboxMapsInitializer create() is called
MapboxInitializer       MapboxInitializer started MapboxMapsInitializerImpl initialization, attempt 1
Mapbox                  [MapboxReachability]: Application permission for ACCESS_NETWORK_STATE granted
Mapbox                  [maps-core]: Using Mapbox Core Maps SDK v11.5.2(b21f926fdb)
MapboxInitializer       Initialized MapboxMapsInitializerImpl successfully
Mapbox                  [config_service]: Stored configuration options are expired or lacks expiration date.
Mapbox                  [config_service]: Stored configuration options are expired or lacks expiration date.
Mapbox                  [LifecycleUtils]: Task: TaskInfo{userId=0 stackId=1270 taskId=1270 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.mapbox.maps.testapp/.ExampleOverviewActivity } baseActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} topActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} origActivity=null realActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} numActivities=1 lastActiveTime=413411 lastGainFocusTime=412723 supportsSplitScreenMultiWindow=true resizeMode=1 isResizeable=true token=android.window.WindowContainerToken@ad89b71 topActivityType=1 pictureInPictureParams=null topActivityInfo=ActivityInfo{7fccd56 com.mapbox.maps.testapp.ExampleOverviewActivity} isPairTask=false pairedTaskIds=[] pairWindowingMode=0 pairDockSide=0 topLaunchHomeActivity=false launchSplitWindowingMode=0 splitScreenCreateMode=SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT topDockSide=0 topSplitRatio=0.00000 launchSplitMode=0
Mapbox                  [LifecycleUtils]: Task: TaskInfo{userId=0 stackId=1270 taskId=1270 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.mapbox.maps.testapp/.ExampleOverviewActivity } baseActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} topActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} origActivity=null realActivity=ComponentInfo{com.mapbox.maps.testapp/com.mapbox.maps.testapp.ExampleOverviewActivity} numActivities=1 lastActiveTime=414410 lastGainFocusTime=412723 supportsSplitScreenMultiWindow=true resizeMode=1 isResizeable=true token=android.window.WindowContainerToken@ad89b71 topActivityType=1 pictureInPictureParams=null topActivityInfo=ActivityInfo{6c339d8 com.mapbox.maps.testapp.ExampleOverviewActivity} isPairTask=false pairedTaskIds=[] pairWindowingMode=0 pairDockSide=0 topLaunchHomeActivity=false launchSplitWindowingMode=0 splitScreenCreateMode=SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT topDockSide=0 topSplitRatio=0.00000 launchSplitMode=0
Mapbox                  [metrics]: Metrics collection period: 0s
Mapbox                  [config_service]: Stored configuration options are expired or lacks expiration date.
Mapbox                  [metrics]: Metrics collection period: 0s
Mapbox                  [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
Mapbox                  [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
Mapbox                  [config_service]: No configuration options found stored on the disk.
Mapbox                  [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
Mapbox                  [maps-android\Mbgl-RenderThread]: Renderer resumed, renderThreadPrepared=false, surface.isValid=null
Mapbox                  [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
Mapbox                  [maps-android\Mbgl-RenderThread]: renderThreadPrepared=false and Android surface is not valid (isValid=null). Waiting for new one.
Mapbox                  [maps-android\Mbgl-RenderThread]: onSurfaceCreated
Mapbox                  [maps-android\Mbgl-RenderThread]: onSurfaceCreated: waiting Android surface to be processed...
Mapbox                  [maps-android\Mbgl-RenderThread]: Setting up render thread, flags: creatingSurface=true, nativeRenderCreated=false, eglContextMadeCurrent=false, eglContextCreated=false, paused=false
Mapbox                  [maps-android\Mbgl-EGLConfigChooser]: In emulator: false
Mapbox                  [maps-android\Mbgl-EglCore]: EGLContext created, client version 3
Mapbox                  [maps-core]: Using OpenGL render backend
Mapbox                  [maps-android\Mbgl-RenderThread]: Native renderer created.
Mapbox                  [maps-android\Mbgl-RenderThread]: onSurfaceCreated: Android surface was processed.
Mapbox                  [tile_store]: Searching for stray files to clean up
Mapbox                  [tile_store]: Cleanup of stray partial downloads complete
Mapbox                  [tile_store]: Searching for stale partial downloads to clean up
Mapbox                  [tile_store]: Cleanup of stray partial downloads complete
Mapbox                  [maps-core]: {}[Render]: The layer 'natural-point-label�basemap' uses more data-driven properties than some devices may support. Though it will render correctly on this device, it may have rendering errors on other devices. To ensure compatibility with all devices, use 1 fewer data-driven properties in this layer.
Mapbox                  [maps-core]: {}[Render]: The layer 'road-number-shield�basemap' uses more data-driven properties than some devices may support. Though it will render correctly on this device, it may have rendering errors on other devices. To ensure compatibility with all devices, use 1 fewer data-driven properties in this layer.
Mapbox                  [maps-core]: {}[Render]: The layer 'poi-label�basemap' uses more data-driven properties than some devices may support. Though it will render correctly on this device, it may have rendering errors on other devices. To ensure compatibility with all devices, use 1 fewer data-driven properties in this layer.
Mapbox                  [maps-core]: {}[Render]: The layer 'water-line-label�basemap' uses more data-driven properties than some devices may support. Though it will render correctly on this device, it may have rendering errors on other devices. To ensure compatibility with all devices, use 1 fewer data-driven properties in this layer.
Mapbox                  [maps-core]: {}[Render]: The layer 'water-point-label�basemap' uses more data-driven properties than some devices may support. Though it will render correctly on this device, it may have rendering errors on other devices. To ensure compatibility with all devices, use 1 fewer data-driven properties in this layer.

@kiryldz
Copy link
Contributor

kiryldz commented Nov 18, 2024

The issue should be fixed in 11.8.1 and backported to 11.7.3. Both patches are expected this week.

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

No branches or pull requests

7 participants