Skip to content

Sustained 60Hz Cap on Google Pixel 10 Pro due to LTPO / HWC Conflict and Lack of Tensor G5 Whitelisting #1

Description

@abdallahno2007-ai

Target Devices:
Google Pixel 10 Pro (Device Codename: hazel / Tensor G5 SoC with Imagination Technologies PowerVR GPU)

  1. 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.
  2. 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.
  3. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions