Skip to content

[TRACKER] 4.0 Android rendering issues #39033

@pouleyKetchoupp

Description

@pouleyKetchoupp

This tracker lists remaining rendering issues on Android after integrating Vulkan support from #36919.


Minimal project I'm using for tests:
line-edit-keyboard.zip

Debug APK for quick test:
line-edit-keyboard_debug_apk.zip


  • Missing 3D support (needs a new renderer implementation & shaders)
    Shaders currently fail because of descriptor set limits (tested on Galaxy Note 5):
ERROR: On shader stage 'Vertex', uniform 'transforms' uses a set (4) index larger than what is supported by the hardware (4).
   at: shader_create (drivers\vulkan\rendering_device_vulkan.cpp:3903) - Condition "set >= limits.maxBoundDescriptorSets" is true. returned: RID()

Reproduced on:
Samsung Galaxy Note 5 (Android 7.0)
Google Pixel 2 XL (Android 10)
Google Pixel 3 XL (Android 10)

  • Not rendering on some devices
    Could be related to this error:
ERROR: Condition "p_rasterization_state.patch_control_points < 1 || p_rasterization_state.patch_control_points > limits.maxTessellationPatchSize" is true. Returning: RID()
   at: render_pipeline_create (drivers\vulkan\rendering_device_vulkan.cpp:5003) - Condition "p_rasterization_state.patch_control_points < 1 || p_rasterization_state.patch_control_points > limits.maxTessellationPatchSize" is true. Returning: RID()

Reproduced on:
Google Pixel 2 XL (Android 10)

  • Colors are off on some devices
    Note: This could be due to poor Vulkan support with some drivers on older versions of Android

Reproduced on:
Samsung Galaxy Note 5 (Android 7.0)
Samsung Galaxy S7 Edge (Exynos variant, Android 8.0)
Honor 10 (Android 9)

Can't repro on:
Google Pixel 3a (Android 10)
Google Pixel 3 XL (Android 10)
OnePlus 6 (Android 10)
Xiaomi Mi MIX 3 (Android 10)

Example with TextureRect :

Normal Glitch
  • Vulkan validation layers are not working (fails on vkGetInstanceProcAddr)
    It's disabled on Android for now to avoid crashes.

  • Errors when using format list in RenderingDeviceVulkan::texture_create
    vmaCreateImage fails with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT (returns VK_ERROR_OUT_OF_HOST_MEMORY)
    It's disabled on Android for now to avoid crashes.

  • Errors in RenderingDeviceVulkan::compute_pipeline_create
    vkCreateComputePipelines returns VK_ERROR_INITIALIZATION_FAILED in some cases

ERROR: vkCreateComputePipelines returned error -3
   at: compute_pipeline_create (drivers\vulkan\rendering_device_vulkan.cpp:5143) - Condition "err" is true. returned: RID()
  • Missing VR support
    There's specific initialization for GL, based on xrMode, it's not handled for Vulkan.

  • Missing fallback to GLES2

  • Building templates with Android API 18 to 23
    Vulkan support should be disabled in this case.

  • Properly handle onVkSurfaceChanged event to update the rendering system
    Right now, pausing and resuming the app causes it to restart completely instead.
    addressed in Proper surface reset when resuming app on Android #39004

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions