Update windows SDK version to 10.0.26100.1742
This CL updates our packaged toolchain from SDK version 10.0.22612 to
10.0.26100. For the time being, we aim to accept both SDK versions
when compiling our code. Once this CL has landed for ~1 week without
being reverted, we will create a followup CL to discontinue support
for SDK version 10.0.22612.
The new SDK version saw d3dcompiler_47.dll change from statically
linking the UCRT (Universal C Runtime) to dynamically linking. This
caused breakages on older Windows versions which don't necessarily
have the up-to-date DLLs. As a result, the packaged toolchain
contains an old version of d3dcompiler_47.dll, from SDK version 10.0.22612.3233.
Apart from the build files, this CL includes new baselines for image tests (the new SDK supports certain 3D emoji that were formerly flat), new installer MSIs (automatically generated during a local build with the new SDK version), and several code changes to account for new enum values/newly exposed API functions.
These code changes have been gated by the SDK version in a best-effort to support the previous SDK version during our migration. We'll remove these gates once we start requiring the new version.
Instructions to recreate the toolchain package:
Packaging was done on a Windows 11 21H2 VM, cleanly created for this
purpose. The VM was the "Windows 11 dev environment VM" available in
Hyper-V's Quick Create.
After creating the VM, the existing Visual Studio and SDK installs
were removed, downloading the VS Professional bootstrapper from
https://visualstudio.microsoft.com/downloads/, and then running
it like this:
$ .\VisualStudioSetup.exe.exe ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 ^
--add Microsoft.VisualStudio.Component.VC.MFC.ARM64 ^
--includeRecommended --passive
Once the bootstrapper finished, the 10.0.26100 SDK was installed by
launching the VS installer, selecting "Modify", navigating to
"individual components", uninstalling the previous version of the SDK
and installing the new version (this installed version 10.0.26100.1742).
Next, Add or Remove Programs was used to modify the 10.0.26100 SDK to
add the Debuggers package.
Finally, depot_tools was installed following the Windows instructions here:
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
Then the packaging script was run like this:
python3 depot_tools\win_toolchain\package_from_installed.py 2022 -w 10.0.26100.0
(Link to the version of the packaging script used for this CL:
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up)
The result of this was a toolchain package with hash c6bb666dd3.
To replace d3dcompiler_47.dll, the following additional steps were taken:
Unzip the above toolchain package to the Desktop.
Use the VS installer to install the 10.0.22612 SDK version under
"individual components" (this installed version 10.0.22612.3233).
Copy the previous dll into the packaged toolchain like so:
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\c6bb666dd3\Windows Kits\10\Redist\D3D\x64"
$ copy "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\d3dcompiler_47.dll" "C:\Users\User\Desktop\c6bb666dd3\Windows Kits\10\bin\10.0.26100.0\x64"
Finally, run
$ python3 depot_tools\win_toolchain\package_from_installed.py --repackage=C:\Users\User\Desktop\c6bb666dd3
This produced the final package with hash 698eb5635a.
Bug: 362650376
Low-Coverage-Reason: LARGE_SCALE_REFACTOR Updating several files for new SDK version.
Change-Id: I585a1ef0645946a12297efe02141cf07914dee12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5898835
Reviewed-by: Dominik Röttsches <[email protected]>
Reviewed-by: Alan Zhao <[email protected]>
Commit-Queue: Devon Loehr <[email protected]>
Reviewed-by: S Ganesh <[email protected]>
Reviewed-by: Peter Kasting <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1369447}
diff --git a/docs/windows_build_instructions.md b/docs/windows_build_instructions.md
index eba49561..08b60a0e 100644
--- a/docs/windows_build_instructions.md
+++ b/docs/windows_build_instructions.md
@@ -52,9 +52,9 @@
Required
* [Windows 11 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/)
-version 10.0.22621.2428. This can be installed separately or by checking the
+version 10.0.26100.1742. This can be installed separately or by checking the
appropriate box in the Visual Studio Installer.
-* (Windows 11) SDK Debugging Tools 10.0.22621.755 or higher. This version of the
+* (Windows 11) SDK Debugging Tools 10.0.26100.1742 or higher. This version of the
Debugging tools is needed in order to support reading the large-page PDBs that
Chrome uses to allow greater-than 4 GiB PDBs. This can be installed after the
matching Windows SDK version is installed, from: Control Panel -> Programs and
@@ -65,6 +65,13 @@
on ARM64 and is needed, whether you are building Chromium for x64 or ARM64 on
ARM64.
+WARNING: On sufficiently old versions of Windows (1909 or earlier), dawn (or related
+components) may fail with a D3d-related error when using the 26100 SDK. This is because the
+d3dcompiler_47.dll file in the new SDK attempts to dynamically link versions of the Universal
+C Runtime which are not present by default on older systems. If you experience these errors,
+you can either update the UCRT on your system, or install the 22612 SDK and use the
+d3dcompiler_47.dll file included there, which statically links the UCRT.
+
## git installation
### Install git