On 11/19/24 5:21 AM, 'François Beaufort' via blink-dev wrote:
Contact emails
fbeauf...@google.com <mailto:fbeauf...@google.com>
Explainer
The maxInterStageShaderComponents limit is being removed due to a
combination of factors:
- Redundancy with maxInterStageShaderVariables: This limit already
serves a similar purpose, controlling the amount of data passed
between shader stages.
- Minor discrepancies: While there are slight differences in how the
two limits are calculated, these differences are minor and can be
effectively managed within the maxInterStageShaderVariables limit.
- Simplification: Removing maxInterStageShaderComponents streamlines
the shader interface and reduces complexity for developers. Instead of
managing two separate limits with subtle differences, they can focus
on the more appropriately named and comprehensive
maxInterStageShaderVariables.
https://github.com/gpuweb/gpuweb/pull/4783
<https://github.com/gpuweb/gpuweb/pull/4783>
Specification
https://gpuweb.github.io/gpuweb/#dom-supported-limits-maxinterstageshadervariables
<https://gpuweb.github.io/gpuweb/#dom-supported-limits-maxinterstageshadervariables>
Summary
Removes the maxInterStageShaderComponents limit from WebGPU, which has
been deemed to be unnecessary. This removal is a minor breaking change.
Blink component
Blink>WebGPU
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebGPU>
Motivation
Removing maxInterStageShaderComponents eliminates unnecessary
complexity and potential confusion by consolidating the functionality
within the existing maxInterStageShaderVariables limit. This change
promotes cleaner code and a more intuitive development experience.
To clarify, are you requesting to deprecate this for some period of time
(if so, I don't see a deprecation plan), and then come back to remove?
Or just remove it in M133?
A search for the string "maxInterStageShaderComponents" in HTTPArchive
yielded no results.
There does seem to be non-test code calling this when poking around
https://github.com/search?q=maxInterStageShaderComponents+language%3AJavaScript&type=code&l=JavaScript.
Have you looked at that yet?
As of November 16th, 2024, usage of the maxInterStageShaderComponents
limit within GPUAdapter and GPUDevice reached a peak of 0.3163% of
page loads. Additionally, its usage in requiredLimits when called
through requestDevice reached 0.0004% on the same day. These metrics
are tracked in the ChromeStatus dashboard through
https://chromestatus.com/metrics/feature/timeline/popularity/5110
<https://chromestatus.com/metrics/feature/timeline/popularity/5110>and
https://chromestatus.com/metrics/feature/timeline/popularity/5111
<https://chromestatus.com/metrics/feature/timeline/popularity/5111>.
Can you help a non-expert understand the difference between these two
metrics? ~0.32% is quite high.
Also, what about https://github.com/gpuweb/gpuweb/pull/4781 - do we ship
this behavior in Chromium?
Initial public proposal
None
TAG review
None
TAG review status
Not applicable as we're simply removing a WebGPU limit.
Risks
Interoperability and Compatibility
When WebGPU eventually launches in Safari and Firefox, websites will
use exclusively the maxInterStageShaderVariables limit.
We anticipate Safari and Firefox will soon support WebGPU, but won't
include the non-standard maxInterStageShaderComponents limit.
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.
Gecko: No signal - Firefox representative agreed during team meeting
to remove the limit from the spec:
https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-08-28#added-late-ok-to-defer-if-necessary-maxinterstageshadercomponents-seems-to-overlap-with-maxinterstageshadervariables-4688
<https://github.com/gpuweb/gpuweb/wiki/GPU-Web-2024-08-28#added-late-ok-to-defer-if-necessary-maxinterstageshadercomponents-seems-to-overlap-with-maxinterstageshadervariables-4688>
WebKit: No signal Apple representative strongly suggested removing the
limit from the spec:
https://github.com/gpuweb/gpuweb/issues/4688#issuecomment-2218446444
<https://github.com/gpuweb/gpuweb/issues/4688#issuecomment-2218446444>
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
Flag name on chrome://flags
None
Finch feature name
WebGPUMaxInterStageShaderComponentsLimit
Non-finch justification
None
Requires code in //chrome?
False
Tracking bug
https://issues.chromium.org/issues/364338810
<https://issues.chromium.org/issues/364338810>
Estimated milestones
Shipping on desktop
133
Shipping on Android
133
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/4853767735083008?gate=5110989125844992
<https://chromestatus.com/feature/4853767735083008?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 visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Kmb-sNm70ox0xRp5raXxAVBb%2BtJ_AanGJYv47Ysobt9Q%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Kmb-sNm70ox0xRp5raXxAVBb%2BtJ_AanGJYv47Ysobt9Q%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 visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/99f91606-86c1-4327-b942-4bfc41956c7e%40chromium.org.