New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 920704 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug



Sign in to add a comment

New d3dcompiler_47.dll needed

Project Member Reported by brucedaw...@chromium.org, Jan 10

Issue description

The 17763 version of d3dcompiler_47.dll contains some new bug fixes and other things that Angle wants. But, it uses the UCRT (universal CRT) which means that by default it does not run on all Windows 7 machines.

This caused some problems when rolling the toolchain (see  crbug.com/919163 ) so eventually a new toolchain/SDK was rolled without upgrading this DLL. There are three possibilities for how to move forwards:

1) Ship the new DLL and let the (unknown but small) number of Windows 7 users who can't load the DLL fall back to SwiftShader. This is simplest but has unclear implications for an unknown number of users.
2) Ship the new DLL and the old one and fall back to the old DLL if the new one fails to load. This is fairly simple but it strands some unknown number of users on the old (buggy) version and it means distributing ~3.6 MB of excess binary data.
3) Ship the new DLL and the UCRT files that it needs. This is the most complex solution (both isolates and the installer must separately have the extra 42 files included) and it will cause some amount of downstream pain (CEF, Opera, and others must also ship these DLLs) and it adds ~2 MB of excess binary data for the UCRT but it is the "correct" fix.

I'm leaning toward #3, despite the disruption.

Thoughts?

 
Cc: kbr@chromium.org rafael.c...@microsoft.com
We could also potentially modify step 1) to blacklist these users. I expect they would be a small proportion of our Windows 7 users. Likely who don't have Windows updates enabled.

Ken do you know if it's possible to make blacklist decisions based on absence of a DLL?
Cc: zmo@chromium.org
It's not currently possible to make blacklist decisions based on the absence of DLLs. Would the path to the DLL be constant across affected Windows systems?

I would prefer (3). It is actually less of an impact on the binary size compared to (2), and the blacklisting approach sounds like it could accidentally trigger for users we didn't intend, if we're not really careful.

Yeah, (3) gets my vote too.
Cc: mharanc...@opera.com ckulakow...@opera.com
I think we should get numbers and check how many users this affects. If it's just few, then giving those software rendering is probably better than sending needless 2 MB to many millions.
We're currently not sure how to find out how many people this affects. The bots which it initially failed on seemed to have some version of the UCRT installed, but perhaps not the right one? The most reliable way to find out how many people it affects would be to ship both DLLs to customers, but that sends even more MB. I can see if Microsoft has any ideas on how many people this is likely to affect.

Sign in to add a comment