Skip to content

Chrome 146 WebGPU compatibility mode featureLevel option#29551

Open
chrisdavidmills wants to merge 2 commits intomdn:mainfrom
chrisdavidmills:webgpu-compatibility-mode
Open

Chrome 146 WebGPU compatibility mode featureLevel option#29551
chrisdavidmills wants to merge 2 commits intomdn:mainfrom
chrisdavidmills:webgpu-compatibility-mode

Conversation

@chrisdavidmills
Copy link
Copy Markdown
Contributor

@chrisdavidmills chrisdavidmills commented Apr 27, 2026

Summary

Chrome 146 adds support for WebGPU compatibility mode: see https://chromestatus.com/feature/6436406437871616, and also see https://developer.chrome.com/blog/new-in-webgpu-146#support_webgpu_compatibility_mode_on_opengl_es_31 for more info and context.

This PR adds a data point for the featureLevel option of the GPU.requestAdapter() method, which is used to opt in to compatibility mode. Note that:

  • featureLevelis recognized and can be used on any Chrome 146+ browser; however, at the moment, only old Android devices running OpenGL ES 3.1 and above will support compatibility mode. Support will be added later for other older device/API combinations. Hence, the partial implementation and the note, which still describes support on Chrome desktop as well as Android.
  • OpenGL ES 3.1 is available on Android 5.0: I got this information from https://developer.android.com/develop/ui/views/graphics/opengl/about-opengl.
  • There is no GPUAdapter property to describe whether the adapter was successfully requested with featureLevel: "compatibility" set. Instead, you have to use adapter.features.has("core-features-and-limits") to test. If it returns false, your adapter is in compatibility mode.

Test results and supporting details

Related issues

@github-actions github-actions Bot added the data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API label Apr 27, 2026
@chrisdavidmills chrisdavidmills requested a review from caugner April 27, 2026 11:57
@github-actions github-actions Bot added the size:m [PR only] 25-100 LoC changed label Apr 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 27, 2026

Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs).

@chrisdavidmills
Copy link
Copy Markdown
Contributor Author

It would be good to get @beaufortfrancois to look at this data and comment on whether it makes sense.

Comment thread api/GPU.json Outdated
"chrome": {
"version_added": "146",
"partial_implementation": true,
"notes": "Compatibility mode supported only on Android 5.0 and above (running OpenGL ES 3.1 and above)."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Kangz Is it safe to assume Android 5.0 for OpenGL ES 3.1 and above?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated the Android version to 10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API size:m [PR only] 25-100 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants