Great, thank you Matt!

Rick



On Mon, Mar 24, 2025 at 2:25 PM Matt George <mattmg...@gmail.com> wrote:

> Hi Rick, AFAIK it's only Windows, but currently reaching out to see if
> it's different for our distributors in Europe.
>
> Matt
> On Monday, March 24, 2025 at 10:38:19 AM UTC-7 Rick Byers wrote:
>
>> Thanks for chiming in Matt. Is the scenario you described Windows-only
>> (in which case we should be good with WARP), or also Linux?
>>
>> Rick
>>
>> On Mon, Mar 24, 2025 at 1:22 PM Matt George <matt...@gmail.com> wrote:
>>
>>> Very happy to hear about exploring the use of WARP on windows.
>>>
>>> Just wanted to chime in that from the Esri perspective, we also have a
>>> large number of users accessing our maps SDK from VMs without a GPU. This
>>> is done for security reasons, & not uncommon for public sector clients. We
>>> have a special codepath where when we detect software emulation is being
>>> used, we only render every X frames & then use css transforms in-between.
>>> This is fairly usable, though of course it's a much worse experience than
>>> having a GPU.
>>>
>> On Tuesday, March 11, 2025 at 1:11:42 AM UTC-7 Ashley Gullen wrote:
>>>
>>>> Thanks for the update David - that sounds like a much less disruptive
>>>> approach than removing it completely.
>>>>
>>>>
>>>> On Mon, 10 Mar 2025 at 19:26, David Adrian <dad...@google.com> wrote:
>>>>
>>>>> To cover the testing use case, we have provided a CLI flag to enable
>>>>> SwiftShader. This has been in the release notes since November. If this is
>>>>> insufficient, we could add an enterprise policy.
>>>>>
>>>>> However, rather than attempt a straight removal, we are going to take
>>>>> a multi-pronged approach to attempt to simultaneously reduce the 
>>>>> situations
>>>>> where SwiftShader is available, while maintaining compatibility with
>>>>> devices that require it due to the GPU blocklist.
>>>>>
>>>>>    - SwiftShader is already unused on many Mac clients, since it does
>>>>>    not support ARM. We will run an experiment where we fully remove it on 
>>>>> Mac,
>>>>>    where usage is much smaller. We expect this will be ~fine.
>>>>>    - Similarly, we will try the same on Linux, although this may not
>>>>>    go as well, as there are not a large number of ARM Linux clients.
>>>>>    - We will experiment with removing the automatic fallback to
>>>>>    SwiftShader after 3 OOMs, limiting it to just the devices without a 
>>>>> GPU or
>>>>>    on the GPU blocklist. This should reduce the attack surface across the
>>>>>    board, as attackers would be unable to arbitrarily cause SwiftShader 
>>>>> to be
>>>>>    used. In conjunction with this, we'll see if we can leverage Warp on
>>>>>    Windows.
>>>>>
>>>>> If we can get to a state where SwiftShader is off by default on Mac
>>>>> and Linux, and replaced with Warp on Windows aside from the CLI flag, and
>>>>> the fallback is not triggerable by an attacker on systems with a "normal"
>>>>> GPU, we'll be in much better shape from a security standpoint.
>>>>>
>>>>> We will update this thread with the progress and results of these
>>>>> experiments as they roll out.
>>>>>
>>>>>
>>>>> On Mon, Mar 3, 2025 at 2:27 PM Rick Byers <rby...@chromium.org> wrote:
>>>>>
>>>>>> +1 that providing temporary enterprise policy exceptions is standard
>>>>>> practice <https://www.chromium.org/developers/enterprise-changes/>
>>>>>> for breaking changes that we predict may have enterprise impact.
>>>>>>
>>>>>> Rick
>>>>>>
>>>>>> On Mon, Mar 3, 2025 at 2:24 PM Erik Anderson <erik.a...@microsoft.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Geoff,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> My suggestion re: a policy was not to have one that is supported
>>>>>>> indefinitely.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Many high-risk deprecations have had a policy lasting for, I
>>>>>>> believe, as little as 3 major version releases. Having such a thing 
>>>>>>> helps
>>>>>>> mitigate the concern that the risk analysis was way off (which could 
>>>>>>> then
>>>>>>> mean needing to do a stable respin if your risk analysis was off). If a
>>>>>>> policy is available, impacted enterprises can quickly self-remediate,
>>>>>>> report what broke once you flip over the default, and have a little bit
>>>>>>> more of a window to plan mitigations tied to the removal of the policy
>>>>>>> (since they’d now be aware of what broke and why).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Erik
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *From:* Ken Russell <k...@chromium.org>
>>>>>>> *Sent:* Monday, March 3, 2025 10:39 AM
>>>>>>> *To:* Ashley Gullen <ash...@scirra.com>
>>>>>>> *Cc:* Geoff Lang <geof...@google.com>; Erik Anderson <
>>>>>>> erik.a...@microsoft.com>; Rick Byers <rby...@chromium.org>; David
>>>>>>> Adrian <dad...@google.com>; blink-dev <blin...@chromium.org>;
>>>>>>> geof...@chromium.org <geof...@chromium.org>
>>>>>>> *Subject:* Re: [EXTERNAL] Re: [blink-dev] Intent to Remove:
>>>>>>> SwiftShader Fallback
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> It's feasible, but a significant amount of engineering work that our
>>>>>>> (Chrome Graphics) team would not be able to prioritize versus other 
>>>>>>> current
>>>>>>> work that would impact a larger user base.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -Ken
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 28, 2025 at 9:45 AM 'Ashley Gullen' via blink-dev <
>>>>>>> blin...@chromium.org> wrote:
>>>>>>>
>>>>>>> Is it feasible to have SwiftShader (or WARP) run in its own process
>>>>>>> with a stronger sandbox?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, 28 Feb 2025 at 15:25, Geoff Lang <geof...@google.com> wrote:
>>>>>>>
>>>>>>> Hey Erik, Ashley, Rick,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I want to be clear that I think having high WebGL availability is a
>>>>>>> good thing. I don't think that users with software WebGL have a great
>>>>>>> experience but it's likely better than no availability, at least for
>>>>>>> drawing static things. What pushes this over the line and warrants this
>>>>>>> discussion is that JITing code in the GPU process is a huge 
>>>>>>> vulnerability
>>>>>>> and is a rapidly increasing attack target.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> We're investigating WARP as an alternative on Windows. You are right
>>>>>>> that a large portion of the SwiftShader fallback is on machines with no
>>>>>>> GPUs (headless or VMs). There are just many unknowns about the quality 
>>>>>>> and
>>>>>>> security of WARP, it will take a while to be confident in such a change 
>>>>>>> and
>>>>>>> it still does not resolve the issue of JITing code in the weakly 
>>>>>>> sandboxed
>>>>>>> GPU process.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Regarding corporate policy, I'd much rather have these users fall
>>>>>>> back in the same way as everyone else and work towards lowering the 
>>>>>>> number
>>>>>>> of users in this position.  It would mean supporting and testing a 
>>>>>>> feature
>>>>>>> only used by enterprise users when we have no visibility into crashes, 
>>>>>>> bugs
>>>>>>> or vulnerabilities that they face.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> We're also disabling software fallback due to a crashes in the GPU
>>>>>>> driver (as opposed to blocklisted GPU). Right now any user can fairly
>>>>>>> easily trigger a GPU crash and fall back to software WebGL which opens 
>>>>>>> up
>>>>>>> vulnerabilities to all users instead of the 2.7%.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Geoff
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Feb 27, 2025 at 3:28 PM Erik Anderson <
>>>>>>> erik.a...@microsoft.com> wrote:
>>>>>>>
>>>>>>> Hi David,
>>>>>>>
>>>>>>> The initial message states that SwiftShader primarily covers older
>>>>>>> Windows devices. Beyond those, there are a non-trivial set of enterprise
>>>>>>> users that use thin clients to connect to a remote Windows device which 
>>>>>>> is
>>>>>>> often running in a VM without access to a physical GPU.
>>>>>>>
>>>>>>> For example, this applies to the Microsoft Dev Box offering (
>>>>>>> https://azure.microsoft.com/en-us/products/dev-box/).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Unfortunately, enterprise clients often turn off telemetry. So, I
>>>>>>> would assume any UMA-derived metrics to be undercounting the population.
>>>>>>>
>>>>>>> It’s likely there are certain line-of-business and/or
>>>>>>> consumer-oriented sites that have a hard dependency on WebGL to be fully
>>>>>>> functional.
>>>>>>>
>>>>>>> Have you considered, on Windows, targeting WARP (
>>>>>>> https://learn.microsoft.com/en-us/windows/win32/direct3darticles/directx-warp)
>>>>>>> instead? I don’t know if there are other viable alternatives on other 
>>>>>>> OSes,
>>>>>>> but if the primary impacted clients are Windows perhaps that would be a
>>>>>>> sufficient mitigation.
>>>>>>>
>>>>>>> To help enterprise customers reason about how much this is going to
>>>>>>> impact them, it would be helpful to have an enterprise policy to control
>>>>>>> this. This is a common pattern for potentially high-impact changes.
>>>>>>>
>>>>>>> In its initial phase, the policy would enable motivated enterprises
>>>>>>> to forcibly disable SwiftShader as a scream test. And after you switch 
>>>>>>> over
>>>>>>> the default, it could enable enterprises caught unaware to have some
>>>>>>> additional window of time to plan mitigations (by re-enabling it via
>>>>>>> policy) before you proceed with fully deprecating support and remove the
>>>>>>> policy.
>>>>>>>
>>>>>>> Can you comment on if you plan to add such a policy or, if not, why
>>>>>>> not?
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *From:* 'Ashley Gullen' via blink-dev <blin...@chromium.org>
>>>>>>> *Sent:* Thursday, February 27, 2025 4:14 AM
>>>>>>> *To:* Rick Byers <rby...@chromium.org>
>>>>>>> *Cc:* David Adrian <dad...@google.com>; blink-dev <
>>>>>>> blin...@chromium.org>; geof...@chromium.org <geof...@chromium.org>
>>>>>>> *Subject:* [EXTERNAL] Re: [blink-dev] Intent to Remove: SwiftShader
>>>>>>> Fallback
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks for the response Rick, I agree with much of what you've said
>>>>>>> and I think your views and suggested workarounds are all generally
>>>>>>> reasonable.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I just realised I previously responded to this thread but only
>>>>>>> replied to David - for transparency I've copied my previous response 
>>>>>>> below.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I can confirm all content made with Construct since about 2018
>>>>>>> requires WebGL to work and will show an error message if WebGL is
>>>>>>> unavailable. I've included a screenshot of the message Construct content
>>>>>>> published to the web will display when WebGL is not supported, saying
>>>>>>> "Software update needed", since that has usually been the best advice in
>>>>>>> that situation in the past. As my previous message says we long ago 
>>>>>>> removed
>>>>>>> any other fallback and are now likely too dependent on WebGL to feasibly
>>>>>>> reimplement a canvas2d fallback.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Some other thoughts about workarounds/mitigations:
>>>>>>>
>>>>>>>    - A swiftshader WASM module would at least give us a workaround,
>>>>>>>    but if that was something like a ~10 MB+ module it would be a very 
>>>>>>> high
>>>>>>>    download overhead which we'd be obligated to include in every 
>>>>>>> Construct
>>>>>>>    export for compatibility
>>>>>>>    - Swiftshader could be removed from insecure origins with little
>>>>>>>    impact to us, and using a permission policy for cross-site iframes 
>>>>>>> should
>>>>>>>    be straightforward to work with
>>>>>>>    - If it helps reduce the attack surface, we could live with
>>>>>>>    SwiftShader support for WebGL 1 only (no WebGL 2) with minimum 
>>>>>>> capabilities
>>>>>>>    (no extensions).
>>>>>>>    - A permission prompt to the user is not ideal but better than
>>>>>>>    nothing, and I imagine it would be tricky to explain to a normal web 
>>>>>>> user
>>>>>>>    though the prompt message (and makes obtaining a WebGL context 
>>>>>>> async...)
>>>>>>>    - Regarding getting WebGL to work on more devices, as I
>>>>>>>    mentioned in my previous message, reviewing the GPU blocklist to 
>>>>>>> re-enable
>>>>>>>    WebGL for older devices if drivers have been updated or workarounds 
>>>>>>> for
>>>>>>>    issues can be found would help reduce the number of devices subject 
>>>>>>> to
>>>>>>>    SwiftShader. Being able to enable at least WebGL 1 will still help 
>>>>>>> with
>>>>>>>    Construct content.
>>>>>>>    - If a software fallback can be securely implemented for WebGPU,
>>>>>>>    Construct has a WebGPU renderer too now so that would give us a 
>>>>>>> workaround
>>>>>>>    (and potentially for any other WebGL content - AFAIK many widely used
>>>>>>>    libraries like three.js now either support WebGPU or are working on 
>>>>>>> it)
>>>>>>>
>>>>>>> Thanks for the consideration all.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Copy of my previous message:
>>>>>>>
>>>>>>> -----
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> OK, thanks for the information. I just want to point out that even
>>>>>>> stopping WebGL content for only 2.7% of users is still potentially very
>>>>>>> disruptive. Consider a web game on Poki that requires WebGL and gets a
>>>>>>> million players. With this change, now 27,000 users will see a "WebGL 
>>>>>>> not
>>>>>>> supported" error message. That's then potentially a huge number of new
>>>>>>> support requests to deal with.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> > Can you share the number for Construct about what percentage of
>>>>>>> your users are using the SwiftShader fallback? Again, our numbers 
>>>>>>> indicate
>>>>>>> that these are primarily older Windows workstations.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> For the Construct editor itself, it is around 3%, so that seems in
>>>>>>> line. But the key point here is that Construct is middleware: it is a 
>>>>>>> tool
>>>>>>> our users develop web games in and then publish independently of us. It 
>>>>>>> is
>>>>>>> much more important that WebGL works for players of those games than it
>>>>>>> does for Construct itself.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Lots of people use older Windows workstations. We've had issues
>>>>>>> before where for example a graphics driver bug affecting WebGL 1 caused 
>>>>>>> a
>>>>>>> great deal of trouble in a South American market, even though I suspect 
>>>>>>> it
>>>>>>> only affected a small percentage of devices - see
>>>>>>> https://issues.chromium.org/issues/40941645 which was never
>>>>>>> resolved. There are probably places in the world where there are large
>>>>>>> numbers of people using older Windows workstations. I fear that pulling
>>>>>>> WebGL support from those devices may result in much higher numbers of
>>>>>>> unsupported users, and many more support requests, in the specific 
>>>>>>> markets
>>>>>>> where such devices are common.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Is there anything that can be done to mitigate this change? Given
>>>>>>> SwiftShader allowed WebGL to be considered ubiquitous for many years,
>>>>>>> engines like Construct long ago removed any fallback for systems that do
>>>>>>> not support WebGL; we moved forward assuming we could rely on WebGL, 
>>>>>>> and so
>>>>>>> now it's probably infeasible to bring back any fallback as we have too 
>>>>>>> many
>>>>>>> key features that fundamentally require WebGL. Could SwiftShader be 
>>>>>>> adapted
>>>>>>> to not use JIT? Could some other fallback be found? Could the GPU 
>>>>>>> blocklist
>>>>>>> be revised to enable WebGL on as many older devices as possible?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I think the number of affected users should be <1% to minimise the
>>>>>>> impact from such a change. At web scale 2.7% is still a lot. Perhaps 
>>>>>>> with
>>>>>>> revising the GPU blocklist and adding more workarounds this is 
>>>>>>> feasible. I
>>>>>>> fear if this goes ahead without any mitigation, it will cause a great 
>>>>>>> deal
>>>>>>> of trouble and is exactly the kind of thing sceptics of the web will 
>>>>>>> bring
>>>>>>> up to say that web technology sucks, browsers can't be trusted, and 
>>>>>>> people
>>>>>>> should just develop desktop games instead.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, 25 Feb 2025 at 22:31, Rick Byers <rby...@chromium.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Sorry for the delay from API owners, as discussed on chat the
>>>>>>> chromestatus entry wasn't set up properly to request API owner review 
>>>>>>> (now
>>>>>>> fixed).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> This is a tricky one indeed (thanks for your input Ashley!). It looks
>>>>>>> like
>>>>>>> <https://chromestatus.com/metrics/feature/timeline/popularity/4026>
>>>>>>> WebGL is used on about 20% of page loads, so 2.7% of that is ~0.5% of 
>>>>>>> page
>>>>>>> loads which is very high risk according to our rules of thumb
>>>>>>> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit?tab=t.0#heading=h.mqfkui78vo5z>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Of course that's an upper-bound, how many will have a fallback? One
>>>>>>> option would be to collect some UKM data for SwiftShader usage and 
>>>>>>> review a
>>>>>>> random ~50 sites to observe the user experience in practice. That could
>>>>>>> give us a better sense of what the real user impact would likely be. Or
>>>>>>> Maybe Ashley can give us some examples of some web games just to confirm
>>>>>>> they indeed go from being playable to unplayable without swiftshader on
>>>>>>> some specific devices? David, do you have a device yourself you can test
>>>>>>> with that doesn't support GPU WebGL?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Regardless, unless sites have been really good about almost always
>>>>>>> falling back somehow, I suspect we'll find that there's enough end-user
>>>>>>> impact to make this a high-risk change (but I could be convinced 
>>>>>>> otherwise
>>>>>>> such as via a thorough UKM analysis). In which case then we could start
>>>>>>> working through our playbook for a phased plan for risky breaking 
>>>>>>> changes.
>>>>>>> Not unlike what we did for flash removal
>>>>>>> <https://www.chromium.org/flash-roadmap/>, or WebSQL
>>>>>>> <https://developer.chrome.com/blog/deprecating-web-sql> (both big
>>>>>>> security benefit but big web compat risk). For example:
>>>>>>>
>>>>>>>    - Explore whether we can build swiftshader into a wasm module
>>>>>>>    that sites can use as a (probably even slower) fallback themselves. 
>>>>>>> This
>>>>>>>    turned out to be the key to making WebSQL deprecation tractable. In 
>>>>>>> general
>>>>>>>    our policy
>>>>>>>    
>>>>>>> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit?tab=t.0#heading=h.x5bhg5grhfeo>
>>>>>>>    is that we don't take functionality away that developers can't 
>>>>>>> replace with
>>>>>>>    some other substitute except in pretty extreme circumstances.
>>>>>>>    - Prompt the user on whether or not to enable it per-origin
>>>>>>>    (like a permission)
>>>>>>>    - Put 3p usage behind a permission policy so the top-level site
>>>>>>>    has to opt-in to allow 3p iframes to use swiftshader
>>>>>>>    - Rely on some heuristics, (perhaps crowd-sourced signals) to
>>>>>>>    try to find a sweet spot in the safety vs. functionality tradeoff 
>>>>>>> space. We
>>>>>>>    did this for flash initially with things like blocking it for very 
>>>>>>> small
>>>>>>>    canvases.
>>>>>>>    - Anything we can do to make WebGL work on a larger set of
>>>>>>>    devices?
>>>>>>>    - Probably lots of other ideas that aren't occurring to me right
>>>>>>>    now, more examples in bit.ly/blink.compat.
>>>>>>>
>>>>>>> On the other side of the equation, API owners can be convinced to
>>>>>>> accept more compat risk the more significant the security benefits are. 
>>>>>>> Are
>>>>>>> there more details you can share? Such as:
>>>>>>>
>>>>>>>    - Are we confident that an attacker can only trigger swiftshader
>>>>>>>    on somewhere around 3% of users (vs. some knob which can force it to 
>>>>>>> be
>>>>>>>    used on a larger fraction)? To what extent do we have reason to 
>>>>>>> believe
>>>>>>>    that the vulnerable population size is large enough to be a plausible
>>>>>>>    target for attackers? Is there anything we can do to make the 
>>>>>>> vulnerable
>>>>>>>    user base more reliably contained?
>>>>>>>    - How does swiftshader compare to other areas in terms of the
>>>>>>>    number of vulnerabilities we've found in practice? Are there any 
>>>>>>> reports of
>>>>>>>    ITW exploits of it? It looks like
>>>>>>>    
>>>>>>> <https://chrome-commit-tracker.arthursonzogni.com/cve/reward_per_components?start=2019-12-27&end=2025-02-25>
>>>>>>>    since 2020 SwiftShader has been about 8% of Chrome's VRP spend - 
>>>>>>> that seems
>>>>>>>    quite significant to me, but probably not in the top 5 areas of 
>>>>>>> concern.
>>>>>>>    This was obviously key to the immense cost and pain of Flash removal 
>>>>>>> - we
>>>>>>>    kept having severe security incidents in practice.
>>>>>>>
>>>>>>> So assuming Ashley and I are right that this isn't likely to be
>>>>>>> easy, that means it's likely quite a lot of work to attempt to phase-out
>>>>>>> SwiftShader in a responsible fashion. But with luck maybe we can find a
>>>>>>> first step that is a good cost-benefit tradeoff (like putting 3P usage
>>>>>>> behind a permission prompt)? Or maybe it's just a better cost-benefit
>>>>>>> tradeoff to invest in other areas which pose a threat to a greater 
>>>>>>> number
>>>>>>> users (hardening ANGLE perhaps)? But of course I will defer to the
>>>>>>> judgement of security and GPU experts like yourself on that question, 
>>>>>>> I'm
>>>>>>> happy to consult and support if you want to invest in a plan that API
>>>>>>> owners can approve.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Rick
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Feb 19, 2025 at 2:48 PM 'David Adrian' via blink-dev <
>>>>>>> blin...@chromium.org> wrote:
>>>>>>>
>>>>>>> > I wrote about this previously but I'm still concerned this is a
>>>>>>> major breaking change for existing published WebGL content on the web. 
>>>>>>> If
>>>>>>> the figure of 2.7% comes from my previous citing of Web3DSurvey
>>>>>>>
>>>>>>> It does, not it comes from Chrome's metrics system.
>>>>>>>
>>>>>>> > Does Google have their own internal data about the usage of
>>>>>>> SwiftShader?
>>>>>>>
>>>>>>> It is the 2.7% number.
>>>>>>>
>>>>>>> > Suppose this change rolls out and we get reports that say our
>>>>>>> WebGL content no longer works for 10% of users in a South American 
>>>>>>> market.
>>>>>>> Then what? There is nothing feasible we can do about it. These customers
>>>>>>> were previously getting by with SwiftShader, but now they get an error
>>>>>>> message. So I fear this risks disaster for web games in some markets.
>>>>>>>
>>>>>>> > I mentioned I don't think it should be used as evidence to make
>>>>>>> such a big change as this. Maybe in some places it will affect 25% or 
>>>>>>> 50%
>>>>>>> of users - who knows? How can we be sure?
>>>>>>>
>>>>>>> Can you share the number for Construct about what percentage of your
>>>>>>> users are using the SwiftShader fallback? Again, our numbers indicate 
>>>>>>> that
>>>>>>> these are primarily older Windows workstations. Notably, SwiftShader is 
>>>>>>> not
>>>>>>> used at all on mobile.
>>>>>>>
>>>>>>> > V8 does JIT with untrusted JavaScript code and that is generally
>>>>>>> considered reasonably secure, is there any particular technical reason
>>>>>>> SwiftShader is not considered as secure?
>>>>>>>
>>>>>>> Yes. The GPU process is shared between all sites, whereas the V8 JIT
>>>>>>> is per-site. This means compromising the GPU process can be enough to
>>>>>>> bypass site isolation protections with a single bug. Additionally, V8 
>>>>>>> bugs
>>>>>>> can be reliably patched in the browser, whereas SwiftShader "bugs" can 
>>>>>>> be
>>>>>>> user-mode graphics driver bugs that are simply more exposed via 
>>>>>>> SwiftShader
>>>>>>> than they would be otherwise. In this case, the browser can't patch the 
>>>>>>> bug
>>>>>>> because it's in the driver.
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, February 13, 2025 at 12:12:07 PM UTC-5
>>>>>>> ash...@scirra.com wrote:
>>>>>>>
>>>>>>> I wrote about this previously but I'm still concerned this is a
>>>>>>> major breaking change for existing published WebGL content on the web. 
>>>>>>> If
>>>>>>> the figure of 2.7% comes from my previous citing of Web3DSurvey (
>>>>>>> https://web3dsurvey.com/) then this should be seen as very much an
>>>>>>> underestimate, because that site uses a relatively small sample size 
>>>>>>> that
>>>>>>> is more likely to be focused on high-end devices (samples are taken from
>>>>>>> developer-focused sites like the three.js website, WebGPU fundamentals
>>>>>>> etc). I would not be surprised if the real worldwide average was more 
>>>>>>> like
>>>>>>> 4-5%. Then if that's a worldwide average, there will probably be some
>>>>>>> specific countries or markets where the figure could be more like 10%.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Suppose this change rolls out and we get reports that say our WebGL
>>>>>>> content no longer works for 10% of users in a South American market. 
>>>>>>> Then
>>>>>>> what? There is nothing feasible we can do about it. These customers were
>>>>>>> previously getting by with SwiftShader, but now they get an error 
>>>>>>> message.
>>>>>>> So I fear this risks disaster for web games in some markets.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Does Google have their own internal data about the usage of
>>>>>>> SwiftShader? Can more data about this be shared? I respect the work 
>>>>>>> done by
>>>>>>> Web3DSurvey but unfortunately for the reasons I mentioned I don't think 
>>>>>>> it
>>>>>>> should be used as evidence to make such a big change as this. Maybe in 
>>>>>>> some
>>>>>>> places it will affect 25% or 50% of users - who knows? How can we be 
>>>>>>> sure?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Can there not be some other fallback implemented? V8 does JIT with
>>>>>>> untrusted JavaScript code and that is generally considered reasonably
>>>>>>> secure, is there any particular technical reason SwiftShader is not
>>>>>>> considered as secure?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I'd also point out that any website that has a poor experience with
>>>>>>> SwiftShader can already opt-out using the failIfMajorPerformanceCaveat
>>>>>>> context flag. If there is some other mode that can be used instead, or 
>>>>>>> just
>>>>>>> showing an error message is acceptable, then websites can already 
>>>>>>> implement
>>>>>>> that. In our case with Construct we specifically attempt to obtain
>>>>>>> hardware-accelerated WebGPU, WebGL 2, or WebGL 1; only failing that do 
>>>>>>> we
>>>>>>> resort to using SwiftShader on the basis that showing the content with
>>>>>>> potentially poor performance is better than not showing it at all.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, 13 Feb 2025 at 15:46, 'David Adrian' via blink-dev <
>>>>>>> blin...@chromium.org> wrote:
>>>>>>>
>>>>>>> Contact emails
>>>>>>>
>>>>>>> dad...@google.com, geof...@chromium.org
>>>>>>>
>>>>>>>
>>>>>>> Summary
>>>>>>>
>>>>>>> Allowing automatic fallback to WebGL backed by SwiftShader is
>>>>>>> deprecated and will be removed. This has been noted in DevTools since
>>>>>>> Chrome 130.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> WebGL context creation will fail instead of falling back to
>>>>>>> SwiftShader. This is for two primary reasons:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 1. SwiftShader is a high security risk due to JIT-ed code running in
>>>>>>> Chromium's GPU process.
>>>>>>>
>>>>>>> 2. Users have a poor experience when falling back from a
>>>>>>> high-performance GPU-backed WebGL to a CPU-backed implementation. Users
>>>>>>> have no control over this behavior and it is difficult to describe in 
>>>>>>> bug
>>>>>>> reports.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> SwiftShader is a useful tool for web developers to test their sites
>>>>>>> on systems that are headless or do not have a supported GPU. This use 
>>>>>>> case
>>>>>>> will still be supported by opting in but is not intended for running
>>>>>>> untrusted content.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> To opt-in to lower security guarantees and allow SwiftShader for
>>>>>>> WebGL, run the chrome executable with the --enable-unsafe-swiftshader
>>>>>>> command-line switch.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> During the deprecation period, a warning will appear in the
>>>>>>> javascript console when a WebGL context is created and backed with
>>>>>>> SwiftShader. Passing --enable-unsafe-swiftshader will remove this 
>>>>>>> warning
>>>>>>> message. This deprecation period began in Chrome 130.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Chromium and other browsers do not guarantee WebGL availability.
>>>>>>> Please test and handle WebGL context creation failure and fall back to
>>>>>>> other web APIs such as Canvas2D or an appropriate message to the user.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> SwiftShader is an internal implementation detail of Chromium, not a
>>>>>>> public web standard, therefore buy-in from other browsers is not 
>>>>>>> required.
>>>>>>> The devices covered by SwiftShader (primarily older Windows devices) are
>>>>>>> likely already incompatible with WebGL in other browsers.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> SwiftShader is not used on mobile; this only applies to Desktop
>>>>>>> platforms.
>>>>>>>
>>>>>>>
>>>>>>> Blink component
>>>>>>>
>>>>>>> Blink>WebGL
>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EWebGL%22>
>>>>>>>
>>>>>>>
>>>>>>> Motivation
>>>>>>>
>>>>>>>
>>>>>>> https://chromium.googlesource.com/chromium/src/+/main/docs/gpu/swiftshader.md#automatic-swiftshader-webgl-fallback-is-deprecated
>>>>>>>
>>>>>>>
>>>>>>> Risks
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> SwiftShader is used by devices without hardware acceleration for
>>>>>>> WebGL. This is approximately 2.7% of WebGL contexts. However, WebGL is
>>>>>>> considered fallible and in many cases, these draws are not performant 
>>>>>>> and
>>>>>>> provide an effectively unusable experience for users. Many applications,
>>>>>>> such as Google Maps, prefer to fail out rather than use SwiftShader.
>>>>>>>
>>>>>>>
>>>>>>> Debuggability
>>>>>>>
>>>>>>> None
>>>>>>>
>>>>>>>
>>>>>>> Flag name on about://flags
>>>>>>>
>>>>>>> --enable-unsafe-swiftshader command-line switch.
>>>>>>>
>>>>>>>
>>>>>>> Finch feature name
>>>>>>>
>>>>>>> AllowSwiftShaderFallback
>>>>>>>
>>>>>>>
>>>>>>> Tracking bug
>>>>>>>
>>>>>>> https://issues.chromium.org/40277080
>>>>>>>
>>>>>>>
>>>>>>> Launch bug
>>>>>>>
>>>>>>> https://launch.corp.google.com/launch/4351104
>>>>>>>
>>>>>>>
>>>>>>> Estimated milestones
>>>>>>>
>>>>>>> Shipping on Desktop 137
>>>>>>>
>>>>>>>
>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>
>>>>>>>
>>>>>>> https://chromestatus.com/feature/5166674414927872?gate=5188866041184256
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 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+...@chromium.org.
>>>>>>> To view this discussion visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGkh42KV4DrSSyEgJaF4DnFOXAye-wRLrfD-LKGNkWhyWzshLA%40mail.gmail.com
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGkh42KV4DrSSyEgJaF4DnFOXAye-wRLrfD-LKGNkWhyWzshLA%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+...@chromium.org.
>>>>>>> To view this discussion visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c5131675-dff4-4aa0-8e84-4cdc373e3035n%40chromium.org
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c5131675-dff4-4aa0-8e84-4cdc373e3035n%40chromium.org?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+...@chromium.org.
>>>>>>> To view this discussion visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73jWBkuxvj%3DDDXmEQNwLfCa_uV5OZZ5nZJRj9ZMgP9yk7Q%40mail.gmail.com
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73jWBkuxvj%3DDDXmEQNwLfCa_uV5OZZ5nZJRj9ZMgP9yk7Q%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+...@chromium.org.
>>>>>>> To view this discussion visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73hYs9O-2hdmfn37fQb-U-8m_-08i3Qg9dkUhKNQQvNLSg%40mail.gmail.com
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73hYs9O-2hdmfn37fQb-U-8m_-08i3Qg9dkUhKNQQvNLSg%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/CAFUtAY8880ooYC4xPUF7iFZGyMppruDVk_o6gDgRCCF%3DnwpiWQ%40mail.gmail.com.

Reply via email to