On 9/9/24 11:45 AM, François Beaufort wrote:
On Mon, Sep 9, 2024 at 5:39 PM Mike Taylor <miketa...@chromium.org> wrote:
On 9/9/24 10:38 AM, 'François Beaufort' via blink-dev wrote:
Contact emails
fbeauf...@google.com
Explainer
None
Specification
https://gpuweb.github.io/gpuweb/#dom-gpuadapter-info
Summary
The WebGPU WG decided it was impractical for requestAdapterInfo()
to trigger a permission prompt so they’ve removed that option and
replaced it with the GPUAdapter info attribute so that web
developers can get the same GPUAdapterInfo value synchronously
this time. See the previous intent to ship at
https://groups.google.com/a/chromium.org/g/blink-dev/c/eZqMmX7q_bA/m/euMLVMpxAgAJ
Blink component
Blink>WebGPU
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>
Motivation
The requestAdapterInfo() asynchronous method in WebGPU is
redundant because developers can already get GPUAdapterInfo
synchronously using the GPUAdapter info attribute. Hence, it
should be removed.
A search for the string "requestAdapterInfo" in HTTPArchive
yielded no results.
According to
https://chromestatus.com/metrics/feature/timeline/popularity/4977,
the requestAdapterInfo() method accounted for approximately 0.41%
of page loads in September 2024.
Chrome UKMs helped us in identifying the most popular websites
using the WebGPU requestAdapterInfo() method: - Twitch: The team
has been contacted and has indicated that they will update their
code. - Dynatrace: Used by the vast majority of those websites
for analytics, they have been made aware of this deprecation.
Initial public proposal
None
TAG review
None
TAG review status
Not applicable
Risks
Interoperability and Compatibility
When WebGPU eventually launches in Safari and Firefox, websites
will be able to get GPUAdapterInfo values exclusively through the
standardized GPUAdapter info attribute. We anticipate Safari and
Firefox will soon support WebGPU, but won't include this
non-standard method. Therefore, the sooner Chromium implements
the Deprecate and Remove process, the less likely it is that
content will work in Chromium but not in other browsers. In
Chromium-based browsers, as the requestAdapterInfo() asynchronous
method returned a promise, websites that followed best practices
were already catching rejected promises. Web developers have been
made aware of this change in July 2024 at
https://developer.chrome.com/blog/new-in-webgpu-127?hl=en#gpuadapter_info_attribute.
They can use the following one-line code during the transition
period: const info = adapter.info <http://adapter.info> || await
adapter.requestAdapterInfo();
I know that WebKit !== Safari, but I do see they have
requestAdapterInfo
<https://github.com/WebKit/WebKit/blob/e5b033ce5afcc666cf85ec75d53179dbd75006df/Source/WebCore/Modules/WebGPU/GPUAdapter.idl#L41>
today. Do we have any sense of what their plans are there (maybe a
standards position could clarify that)?
As you can see in
https://github.com/gpuweb/gpuweb/pull/4662#issuecomment-2141279713,
they re-added temporarily requestAdapterInfo() at the time to avoid
breaking websites that didn't make the move yet.
FYI, I've updated Apache TVM used by WebLLM to use adapter.info
<http://adapter.info> in apache/tvm#17051
<https://github.com/apache/tvm/pull/17051>.
Cool - does that mean WebKit is willing to remove it now (or shortly
after we do)?
/Gecko/: No signal
/WebKit/: No signal
/Web developers/: No signals
/Other signals/:
WebView application risks
Does this intent deprecate or change behavior of existing APIs,
such that it has potentially high risk for Android WebView-based
applications?
None
Debuggability
None
Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
No
Flag name on chrome://flags
None
Finch feature name
None
Non-finch justification
None
Requires code in //chrome?
False
Estimated milestones
No milestones specified
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5140787340509184?gate=5110989125844992
This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
--
You received this message because you are subscribed to the
Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5KohE-NU%2B0bAsWzgaNLUCPGCqBr%2BH3jpoY58yGK-frwOg%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5KohE-NU%2B0bAsWzgaNLUCPGCqBr%2BH3jpoY58yGK-frwOg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8559a28a-d196-4b29-bfe1-607285d0e11a%40chromium.org.