Thanks for the review Mike! On Tue, Nov 19, 2024 at 5:30 PM Mike Taylor <miketa...@chromium.org> wrote:
> > On 11/19/24 5:21 AM, 'François Beaufort' via blink-dev wrote: > > Contact emails > > 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 > > 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 > > 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? > This intent is for deprecating this limit for some period of time to give developers enough time to migrate and eventually remove it. > > > 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? > Yes. Those are mostly libraries that handle getting the maxInterStageShaderComponents limit, but not "real" apps actually requiring the limit when the limit is not high enough for their use case. > > 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. > The first one happens when a web app calls the GPUSupportedLimits attribute getter adapter.limits.maxInterStageShaderComponents for instance. The high usage is due to scripts using this for analytics/bot protection/fingerprinting. The second one is the one we care the most. It is web apps that actually require a maxInterStageShaderComponents GPU limit when requesting a GPU device. We don't want to break those, and that's why we'll add deprecation warnings so that they can use the maxInterStageShaderVariables limit instead. Also, what about https://github.com/gpuweb/gpuweb/pull/4781 - do we ship > this behavior in Chromium? > I'm actually working on this as we speak. It's not in Chromium yet. > > > 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 > > 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: > > 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 > > 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 > > 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/CAPpwU5KWoG-SDcSnQ2%3DWUU1ZFEVF3dYmdGQxMRwZfHRq22di8Q%40mail.gmail.com.