본문으로 건너뛰기
CHOI HONGSU
1 min read

[URP 17.3.0 / Vulkan 1.1.0] Glitches and flicker on Mali-G72 devices

 

 

유니티 서포트 문의 내용

Hello.

While updating the Unity engine version 6000.0.60f1 → 6000.3.9f1,

we also updated URP from 17.0.3 → 17.3.0.

After the update, screen glitches and flicker began occurring on certain devices — issues that did not occur on the prior version.

Devices where the issue occurs

  • Galaxy S9
    • GPU: Mali-G72
    • OS: Android 10
    • Graphics API: Vulkan 1.1.0
    • Driver: 19.0.0 (0x04c000000)
  • Galaxy Note 9
    • GPU: Mali-G72
    • OS: Android 10
    • Graphics API: Vulkan 1.1.0
    • Driver: 19.0.0 (0x04c000000)

Devices working normally

  • Galaxy S9+
    • GPU: Mali-G72
    • OS: Android 9
    • Graphics API: Vulkan 1.0.97
    • Driver: 16.0.0 (0x04000000)

Despite all being on the Mali-G72 GPU family,

environments differing in OS / Vulkan version / driver version work normally.

Symptoms

  • Glitch-like corruption and flicker appear on the in-game screen.
  • Reproduced under Unity 6000.3.9f1 + URP 17.3.0.
  • The same issue did not occur on the earlier Unity 6000.0.60f1 + URP 17.0.3.

What we've checked

  • The same issue occurs even with all custom Renderer Features disabled in the project.

  • So rather than a specific custom Renderer Feature, we primarily suspect a

    URP default rendering path / Vulkan path / driver compatibility issue.

  • Forcing OpenGL ES works correctly.

  • However, our project's GPU Instancing-based assets / implementation do not work correctly on the OpenGL ES path, so we need Vulkan.

**\

Questions**

We'd appreciate your input on the following:

  1. Are there any known compatibility issues with the combination of URP 17.3.0 and Mali-G72 / Android 10 / Vulkan 1.1.0?

  2. Compared to Unity 6000.0.60f1 + URP 17.0.3, were there any changes to the Vulkan rendering path or URP internals in 6000.3.9f1 + URP 17.3.0?

  3. Can this be treated as a Unity / URP regression or known issue?

  4. Are there recommended settings, workarounds, or verification points we should try?

If needed, we can share reproduction footage, screenshots, and additional test results.

Please let us know.

Thank you.

자체 해결 과정

In the shaders above, types inside the UnityPerMaterial CBUFFER were simplified to float-family types,
and bitmask-related values are stored as float in the CBUFFER and cast to (int) only at the bit-op site.
After this change, the prior flickering / blinking and rendering anomalies no longer reproduce.

The same code worked fine on the previous engine version. Since the issue stopped reproducing after cleaning up the CBUFFER layout, we suspect a shader CBUFFER compatibility issue surfaced during the version upgrade.

Before / After

CBUFFER alignment

 

After
Before
BEFOREAFTER

추가 답변

VRS
Re: how to disable VRS, which you asked about during the meeting.
VRS only operates when you add a specific renderer feature and configure it. Unless you have set it up like the sample below, it is not applied by default, so there's no need to disable it explicitly.


Compatibility Mode

During our review we noticed you are currently using Compatibility Mode, so a quick note.
As you may already be aware, Compatibility Mode is offered as a temporary solution for project upgrades and will be removed in a future release. Where possible, we recommend migrating custom effects and passes to Render Graph.
Details are available at the Discussion link below.