Target Devices:
Google Pixel 10 Pro (Device Codename: hazel / Tensor G5 SoC with Imagination Technologies PowerVR GPU)
- The Problem Breakdown
The Google Pixel 10 Pro features a high-performance 120Hz LTPO display capable of Variable Refresh Rate (VRR). However, when launching and running PUBG Mobile, the game is strictly capped and throttled to 60Hz / 60 FPS, preventing users from accessing competitive high-frame-rate modes (90 FPS / 120 FPS).
This is caused by a two-fold issue across the Game Engine and Android OS:
Missing SoC Profile Whitelist: Because the Tensor G5 features a completely new GPU architecture (switching from ARM Mali to PowerVR), the game engine does not recognize the hardware ID. The engine defaults to a legacy fallback profile, hiding the 120 FPS graphics option from the user interface.
The OS-Level 60Hz Aggressive Throttle: Android’s system-level SurfaceFlinger and Hardware Composer (HWC) fail to recognize the surface view of the game as a priority high-refresh-rate layer. The LTPO panel aggressively forces a 60Hz mode to conserve power, overriding user-facing display settings.
- Steps to Reproduce
On a Pixel 10 Pro, enable "Show refresh rate" inside Android Developer Options.
Launch PUBG Mobile. Observe the system overlay showing the display running at 120Hz in the menus.
Enter a match. Once the 3D environment renders, the system overlay aggressively drops and locks to 60Hz.
Attempting to force peak refresh rates or toggling Android 15/16's "Disable default frame rate for games" in Developer Settings fails to bypass this hard limit.
- Technical Solutions for the Developer Teams
To the PUBG Mobile / Tencent Engine Team:
Update the SoC Whitelist: Add the Tensor G5 / PowerVR hardware signature to the high-performance profile category inside your server-side configuration files to unlock the 120 FPS graphics tier.
Implement Explicit VSync & Choreographer Handling: Ensure the rendering engine explicitly requests 120Hz frames by initializing a hardware-accelerated surface view. Utilize Choreographer.getInstance().postFrameCallback() at 8.33ms intervals instead of defaulting to the system's baseline 16.67ms (60Hz) clock.
To the Google Android / Pixel Software Team:
Fix Adaptive Refresh Rate (ARR) Game Detection: Fix the bug where SurfaceFlinger misidentifies full-screen OpenGL ES / Vulkan game windows as static content or media video playback, which causes the LTPO backplane to lock down to 60Hz.
Enforce Window Manager Refresh Rate Override: Ensure that when a user activates Settings.Global.CUSTOM_DISPLAY_REFRESH_RATE or the "Disable default frame rate for games" developer toggle, the Hardware Composer (HWC) strictly honors the 120Hz request and suspends power-saving LTPO downclocking for foreground gaming packages (com.tencent.ig).
Target Devices:
Google Pixel 10 Pro (Device Codename: hazel / Tensor G5 SoC with Imagination Technologies PowerVR GPU)
The Google Pixel 10 Pro features a high-performance 120Hz LTPO display capable of Variable Refresh Rate (VRR). However, when launching and running PUBG Mobile, the game is strictly capped and throttled to 60Hz / 60 FPS, preventing users from accessing competitive high-frame-rate modes (90 FPS / 120 FPS).
This is caused by a two-fold issue across the Game Engine and Android OS:
Missing SoC Profile Whitelist: Because the Tensor G5 features a completely new GPU architecture (switching from ARM Mali to PowerVR), the game engine does not recognize the hardware ID. The engine defaults to a legacy fallback profile, hiding the 120 FPS graphics option from the user interface.
The OS-Level 60Hz Aggressive Throttle: Android’s system-level SurfaceFlinger and Hardware Composer (HWC) fail to recognize the surface view of the game as a priority high-refresh-rate layer. The LTPO panel aggressively forces a 60Hz mode to conserve power, overriding user-facing display settings.
On a Pixel 10 Pro, enable "Show refresh rate" inside Android Developer Options.
Launch PUBG Mobile. Observe the system overlay showing the display running at 120Hz in the menus.
Enter a match. Once the 3D environment renders, the system overlay aggressively drops and locks to 60Hz.
Attempting to force peak refresh rates or toggling Android 15/16's "Disable default frame rate for games" in Developer Settings fails to bypass this hard limit.
To the PUBG Mobile / Tencent Engine Team:
Update the SoC Whitelist: Add the Tensor G5 / PowerVR hardware signature to the high-performance profile category inside your server-side configuration files to unlock the 120 FPS graphics tier.
Implement Explicit VSync & Choreographer Handling: Ensure the rendering engine explicitly requests 120Hz frames by initializing a hardware-accelerated surface view. Utilize Choreographer.getInstance().postFrameCallback() at 8.33ms intervals instead of defaulting to the system's baseline 16.67ms (60Hz) clock.
To the Google Android / Pixel Software Team:
Fix Adaptive Refresh Rate (ARR) Game Detection: Fix the bug where SurfaceFlinger misidentifies full-screen OpenGL ES / Vulkan game windows as static content or media video playback, which causes the LTPO backplane to lock down to 60Hz.
Enforce Window Manager Refresh Rate Override: Ensure that when a user activates Settings.Global.CUSTOM_DISPLAY_REFRESH_RATE or the "Disable default frame rate for games" developer toggle, the Hardware Composer (HWC) strictly honors the 120Hz request and suspends power-saving LTPO downclocking for foreground gaming packages (com.tencent.ig).