playcanvas / playcanvas/engine

WebGPU is broken on Pixel 10 (Tensor G5 / PowerVR) — temporary fallback to WebGL2 to be removed when fixed

Open
#8,874 0 comments 0 reactions 1 assignee View on GitHub

@mvaligursky is already working on this.

Since Jun 11, 2026.

area: graphics
Dominant language
JavaScript
Stars
16.8k
Forks
2k
Avg merge
4h 32m
Merged PRs (30d)
222

Description

Problem

The Pixel 10 family (Tensor G5) switched from Arm Mali to an Imagination PowerVR DXT-48-1536 GPU. Chrome's WebGPU support for this GPU is new and still buggy — Dawn carries device-specific workarounds (broken workgroup-memory zero-init, pipeline caching, shader miscompiles) and was still suppressing CTS failures for this device as of June 2026.

In practice, engine content using compute shaders fails on this device — e.g. the gsplat GPU radix sort, which breaks SuperSplat.

Detection

pixel 10 webgpu report.txt

The adapter is identifiable via the standard GPUAdapterInfo API (adapter.info):

  • vendor: "img-tec"
  • architecture: "d-series"

(captured via webgpureport.com on a Pixel 10 Pro)

On Chrome for Android this vendor string currently only matches Tensor G5 devices, as older PowerVR parts were never allowlisted for WebGPU.

Temporary workaround

Detect vendor === 'img-tec' in WebgpuGraphicsDevice.createDevice() after requestAdapter() and fail WebGPU device creation, so createGraphicsDevice() falls back to WebGL2 automatically.

To close this issue

  • Chrome/Dawn ships working support for the PowerVR DXT path
  • Re-test on Pixel 10 with the workaround disabled (engine gsplat examples + SuperSplat)
  • Remove the img-tec blocklist from the engine

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.