Skip to content

Map flickers on certain devices #2479

Closed

Description

@akharche4

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

Activity

  1. barnisfar commented on Oct 2, 2024

    @barnisfar

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

  2. flasher297 commented on Oct 7, 2024

    @flasher297
    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.

  3. msuonp commented on Oct 12, 2024

    @msuonp

    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
  4. kiryldz commented on Oct 14, 2024

    @kiryldz
    Contributor

    @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...

  5. akharche4 commented on Oct 14, 2024

    @akharche4
    Author

    @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?

  6. kiryldz commented on Oct 14, 2024

    @kiryldz
    Contributor

    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.

  7. msuonp commented on Oct 17, 2024

    @msuonp

    @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
  8. clmoreno commented on Nov 4, 2024

    @clmoreno

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

  9. Manahil26397 commented on Nov 5, 2024

    @Manahil26397

    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
  10. Manahil26397 commented on Nov 12, 2024

    @Manahil26397

    This is still present in version 11.8.0

  11. akharche4 commented on Nov 12, 2024

    @akharche4
    Author

    @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.
    
    
  12. kiryldz commented on Nov 18, 2024

    @kiryldz
    Contributor

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

  13. flasher297 commented on Nov 20, 2024

    @flasher297
    Contributor

    11.7.3 patch release with a fix for this problem has been published. You can give it a try.
    https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.7.3

  14. msuonp commented on Nov 26, 2024

    @msuonp

    Verified with Mapbox SDK 11.7.3 and Redmi 9C that map doesn't flicker anymore. Thanks for fixing the issue!

  15. flasher297 commented on Dec 4, 2024

    @flasher297
    Contributor

    @msuonp thank you for verifying.
    Yesterday we released a patch for 11.8 SDK with the same fix
    https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.8.1
    And 5 days ago 11.9.0-beta.1 was released that already contains the fix for the issue.
    https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.9.0-beta.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug 🪲Something isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions