WebGPU build fails on Android (works fine on PC) — BindGroup creation validation error

Hi everyone :wave:

I’m trying to test a WebGPU build in PlayCanvas, and it works perfectly fine on desktop (PC) browsers, but fails on Android mobile (Chrome) — even though my device fully supports WebGPU.

To reproduce, I didn’t add any custom code — I’m just displaying the default box in a new PlayCanvas scene.

However, when I run the build on Android (Chrome), I get the following console error:

viewport-error-console.ts:163 WebGPU BindGroup creation validation error:
None of the supported sample types (UnfilterableFloat) of [Texture “LightsTexture”] match the expected sample types (Float).

  • While validating entries[1] as a Sampled Texture.
    Expected entry layout: {sampleType: TextureSampleType::Float, viewDimension: TextureViewDimension::e2D, multisampled: 0}
  • While validating [BindGroupDescriptor “MeshBindGroup_2”] against [BindGroupLayout “BindGroupFormat_5”]
  • While calling [Device “PlayCanvasWebGPUDevice”].CreateBindGroup([BindGroupDescriptor “MeshBindGroup_2”]).
    while rendering Pass:RenderPassForward RT:WebgpuFramebuffer | Camera: camera, Layer: World(OPAQUE) | Node: Box, Material: Default Material

What I’ve checked:

  • My Android device supports WebGPU, verified by running several demos such as PlayCanvas WebGPU Hello World, which runs perfectly fine.
  • Using latest Chrome on Android.
  • Using the latest engine build from PlayCanvas Editor.

Question:

  • Is there any known compatibility issue or extra step required for WebGPU builds on Android mobile in PlayCanvas?
  • Do I need to configure anything in the project (e.g., lighting, render targets, texture sample types) to make it run?

I believe this was fixed here:

and was released as part of the engine 2.12.0. This should be promoted to be the engine used by the Editor projects by the end of this week.

1 Like