Contact emails

[email protected], [email protected]

Explainer

https://github.com/gpuweb/gpuweb/issues/614

Specification

https://gpuweb.github.io/gpuweb/#timestamp

Summary

WebGPU timestamp queries allow WebGPU applications to measure precisely
(down to the nanosecond) how much time their GPU commands take to execute,
especially at the beginning and end of passes. Timestamp queries are
heavily used to gain insights into the performance and behavior of GPU
workloads.

While the WebGPU specification makes timestamp queries an optional feature
due to timing attack concerns, we believe that timestamp queries
quantization provides a good middle ground by reducing the precision of
timers. To offer even more advanced protection against timing attacks and
fingerprinting, timestamp queries are also coarsened based on site
isolation status:

- Isolated contexts: timestamp queries are exposed with a resolution of 100
microseconds.

- Non-isolated contexts: timestamp queries are not exposed at all.

Blink component

Blink>WebGPU
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>

TAG review

WebGPU spec: https://github.com/w3ctag/design-reviews/issues/626

TAG review status

A new TAG review was not requested because timestamp queries were already
part of the original one for the WebGPU spec and was approved.

Risks

Interoperability and Compatibility

Timestamp queries have not yet been implemented in any browser, but have
been approved by the GPU for the Web Community Group, with representatives
from Chrome, Firefox, and Safari. See
https://github.com/gpuweb/gpuweb/wiki/Minutes-2021-09-27#:~:text=consensus%20to%20support%20end/begin%2Dpass%20timestamp%20queries

Gecko: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1827998)

WebKit: Positive (https://github.com/gpuweb/gpuweb/pull/2190)

Web developers: Positive. It’s one of the most common requested features.
Many developers already use it today by running chrome with a special flag.
See
https://omar-shehata.medium.com/how-to-use-webgpu-timestamp-query-9bf81fb5344a
Note that it was heavily used to benchmark and optimize Tensorflow.js.

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 at the moment, WebGPU currently does not ship on Android WebView.
Parallel work is occurring to launch WebGPU on Android.


Debuggability

No DevTools changes are required.

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?

No

All platforms will eventually have support. Will immediately be available
on ChromeOS, Mac, and Windows, since those platforms already support
WebGPU. Linux and Android are planned to have WebGPU support in the future,
so this feature will become available when WebGPU does.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

Yes

WebGPU/WGSL have a conformance test suite (https://github.com/gpuweb/cts)
that is regularly pulled into Chromium and part of the testing of Dawn/Tint
in Chromium.

Flag name on chrome://flags

None

Finch feature name

None

Non-finch justification

None

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/dawn/issues/detail?id=1800

Availability expectation

Feature is available only in Chromium browsers for the near future, on the
order of months. Other browsers intend to ship WebGPU support, but don't
have specified timelines.

Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open
source repository and its open-source dependencies to function?

No

Estimated milestones

Shipping on desktop

121

Anticipated spec changes

Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5136606877188096

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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5%2BEFoeuehbvaMwzXK3wZ6UxX0U4n7yZJwwJgVOADbBwHA%40mail.gmail.com.

Reply via email to