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://gpuweb.github.io/gpuweb/#dom-supported-limits-maxinterstageshadervariables
Removes the maxInterStageShaderComponents limit from WebGPU, which has been deemed to be unnecessary. This removal is a minor breaking change.
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.
A search for the string "maxInterStageShaderComponents" in HTTPArchive yielded no results.
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 and https://chromestatus.com/metrics/feature/timeline/popularity/5111.
None
None
Not applicable as we're simply removing a WebGPU limit.
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
WebKit: No signal Apple representative strongly suggested removing the limit from the spec: https://github.com/gpuweb/gpuweb/issues/4688#issuecomment-2218446444
Web developers: No signals
Other signals:
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
None
None
WebGPUMaxInterStageShaderComponentsLimit
None
False
https://issues.chromium.org/issues/364338810
https://chromestatus.com/feature/4853767735083008?gate=5110989125844992
This intent message was generated by Chrome Platform Status.
Contact emails
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
Specification
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
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.
A search for the string "maxInterStageShaderComponents" in HTTPArchive yielded no results.
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 and 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?
--
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+...@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.
On 11/19/24 5:21 AM, 'François Beaufort' via blink-dev wrote:
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?Contact emails
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
Specification
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
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.
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?
A search for the string "maxInterStageShaderComponents" in HTTPArchive yielded no results.
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 and 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?
Thanks for the review Mike!
On Tue, Nov 19, 2024 at 5:30 PM Mike Taylor <mike...@chromium.org> wrote:
On 11/19/24 5:21 AM, 'François Beaufort' via blink-dev wrote:
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?Contact emails
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
Specification
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
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.
This intent is for deprecating this limit for some period of time to give developers enough time to migrate and eventually remove it.
On 11/19/24 11:55 AM, François Beaufort wrote:
Thanks François - so what is the plan? If we send a deprecation message - how long do you think doing so would be effective?Thanks for the review Mike!
On Tue, Nov 19, 2024 at 5:30 PM Mike Taylor <mike...@chromium.org> wrote:
On 11/19/24 5:21 AM, 'François Beaufort' via blink-dev wrote:
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?Contact emails
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
Specification
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
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.
This intent is for deprecating this limit for some period of time to give developers enough time to migrate and eventually remove it.
LGTM1 to deprecate now with full removal in M135. The amount of fingerprinting/tracking scripts that access this is scarily high but I trust those to be suitably robust.
/Daniel
Note, this doesn't show up as "intent to ship (deprecate/remove)" in chromestatus so there is probably some buttons you need to press there.
/Daniel
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/07aa7ef6-83ba-49a2-abd8-607e5bd33c7a%40gmail.com.
There is an API Owner dashboard in Chromestatus showing
everything that has an "intent to ship" but is not yet approved
(or rejected), and this one doesn't show up there which also means
that I cannot record the LGTM1
I'm not absolutely sure how to get it there since I'm on the other end, but it should be the steps listed on https://www.chromium.org/blink/launching-features/ under "Feature Deprecations" -> "Step 6: Prepare to Ship".
/Daniel
LGTM2
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/36461972-9e22-42e1-bc14-2a0698eab83e%40chromium.org.