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 <drott@chromium.org> Reviewed-by: Alan Zhao <ayzhao@google.com> Commit-Queue: Devon Loehr <dloehr@google.com> Reviewed-by: S Ganesh <ganesh@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/main@{#1369447}


@ -295,7 +295,7 @@ config("runtime_library") {
|
||||
# manually override this config for their compiles.
|
||||
config("winver") {
|
||||
defines = [
|
||||
"NTDDI_VERSION=NTDDI_WIN10_NI",
|
||||
"NTDDI_VERSION=NTDDI_WIN11_GE",
|
||||
|
||||
# We can't say `=_WIN32_WINNT_WIN10` here because some files do
|
||||
# `#if WINVER < 0x0600` without including windows.h before,
|
||||
|
@ -22,7 +22,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
|
||||
import gn_helpers
|
||||
|
||||
SCRIPT_DIR = os.path.dirname(__file__)
|
||||
SDK_VERSION = '10.0.22621.0'
|
||||
SDK_VERSION = '10.0.26100.0'
|
||||
|
||||
|
||||
def _ExtractImportantEnvironment(output_of_set):
|
||||
|
@ -17,7 +17,7 @@ import sys
|
||||
|
||||
from gn_helpers import ToGNString
|
||||
|
||||
# VS 2022 17.9.2 with 10.0.22621.2428 SDK with ARM64 libraries and UWP support.
|
||||
# VS 2022 17.9.2 with 10.0.26100.1742 SDK with ARM64 libraries and UWP support.
|
||||
# See go/chromium-msvc-toolchain for instructions about how to update the
|
||||
# toolchain.
|
||||
#
|
||||
@ -39,8 +39,8 @@ from gn_helpers import ToGNString
|
||||
# Maps between Visual Studio version and MSVC toolset
|
||||
# * MSVS_VERSIONS in this file
|
||||
# Records the packaged and default version of Visual Studio
|
||||
TOOLCHAIN_HASH = '7393122652'
|
||||
SDK_VERSION = '10.0.22621.0'
|
||||
TOOLCHAIN_HASH = '698eb5635a'
|
||||
SDK_VERSION = '10.0.26100.0'
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
json_data_file = os.path.join(script_dir, 'win_toolchain.json')
|
||||
|
@ -52,9 +52,9 @@ $ PATH_TO_INSTALLER.EXE ^
|
||||
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 @@ Debuggers\x64 directory from another machine because it does not get installed
|
||||
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
|
||||
|
@ -6,6 +6,7 @@ module gpu.mojom;
|
||||
|
||||
// Corresponds to D3D_FEATURE_LEVEL in <d3dcommon.h>
|
||||
enum Direct3DFeatureLevel {
|
||||
k1_0_Generic,
|
||||
k1_0_Core,
|
||||
k9_1,
|
||||
k9_2,
|
||||
|
@ -14,6 +14,13 @@ gpu::mojom::Direct3DFeatureLevel
|
||||
EnumTraits<gpu::mojom::Direct3DFeatureLevel, D3D_FEATURE_LEVEL>::ToMojom(
|
||||
D3D_FEATURE_LEVEL d3d_feature_level) {
|
||||
switch (d3d_feature_level) {
|
||||
// TODO(crbug.com/362650376): This case is valid only for SDK version
|
||||
// 10.0.26100.0 and up. Include it unconditionally once we start requiring this
|
||||
// version
|
||||
#ifdef NTDDI_WIN11_GE
|
||||
case D3D_FEATURE_LEVEL_1_0_GENERIC:
|
||||
return gpu::mojom::Direct3DFeatureLevel::k1_0_Generic;
|
||||
#endif
|
||||
case D3D_FEATURE_LEVEL_1_0_CORE:
|
||||
return gpu::mojom::Direct3DFeatureLevel::k1_0_Core;
|
||||
case D3D_FEATURE_LEVEL_9_1:
|
||||
@ -47,6 +54,16 @@ bool EnumTraits<gpu::mojom::Direct3DFeatureLevel, D3D_FEATURE_LEVEL>::FromMojom(
|
||||
gpu::mojom::Direct3DFeatureLevel input,
|
||||
D3D_FEATURE_LEVEL* out) {
|
||||
switch (input) {
|
||||
case gpu::mojom::Direct3DFeatureLevel::k1_0_Generic:
|
||||
// TODO(crbug.com/362650376): This case is valid only for SDK version
|
||||
// 10.0.26100.0 and up.
|
||||
#ifdef NTDDI_WIN11_GE
|
||||
*out = D3D_FEATURE_LEVEL_1_0_GENERIC;
|
||||
return true;
|
||||
#else
|
||||
// Should be impossible
|
||||
return false;
|
||||
#endif
|
||||
case gpu::mojom::Direct3DFeatureLevel::k1_0_Core:
|
||||
*out = D3D_FEATURE_LEVEL_1_0_CORE;
|
||||
return true;
|
||||
|
BIN
third_party/blink/web_tests/platform/win11-arm64/fast/canvas/fillText-emoji-expected.png
vendored
Before ![]() (image error) Size: 5.1 KiB After ![]() (image error) Size: 8.1 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/fast/loader/json-document-appearance-expected.png
vendored
Before ![]() (image error) Size: 3.9 KiB After ![]() (image error) Size: 4.2 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/fast/ruby/base-shorter-than-text-expected.png
vendored
Before ![]() (image error) Size: 11 KiB After ![]() (image error) Size: 14 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/media/track/track-cue-rendering-ruby-expected.png
vendored
Before ![]() (image error) Size: 73 KiB After ![]() (image error) Size: 73 KiB ![]() ![]() |
Before ![]() (image error) Size: 13 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/svg/text/surrogate-pair-queries-expected.png
vendored
Before ![]() (image error) Size: 6.1 KiB After ![]() (image error) Size: 10 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/color-emoji-expected.png
vendored
Before ![]() (image error) Size: 68 KiB After ![]() (image error) Size: 91 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/emoji-vs-system-fallback-expected.png
vendored
Before ![]() (image error) Size: 14 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/emoticons-expected.png
vendored
Before ![]() (image error) Size: 117 KiB After ![]() (image error) Size: 129 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/fallback-traits-fixup-expected.png
vendored
Before ![]() (image error) Size: 10 KiB After ![]() (image error) Size: 12 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/font-format-support-color-cff2-expected.png
vendored
Before ![]() (image error) Size: 28 KiB After ![]() (image error) Size: 28 KiB ![]() ![]() |
BIN
third_party/blink/web_tests/platform/win11-arm64/virtual/text-antialias/unicode-fallback-font-expected.png
vendored
Before ![]() (image error) Size: 61 KiB After ![]() (image error) Size: 63 KiB ![]() ![]() |
@ -286,6 +286,10 @@ constexpr auto kTouchDownContextResetTimeout = base::Milliseconds(500);
|
||||
// same location as the cursor.
|
||||
constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
|
||||
|
||||
// TODO(dloehr): As of SDK version 10.0.26100.0, IsWindowArranged is now
|
||||
// defined in a header file, so we no longer need this version. Remove this code
|
||||
// once the SDK update is finalized.
|
||||
#ifndef NTDDI_WIN11_GE
|
||||
// Returns true if the window is arranged via Snap. For example, the browser
|
||||
// window is snapped via buttons shown when the mouse is hovered over window
|
||||
// maximize button.
|
||||
@ -298,6 +302,7 @@ bool IsWindowArranged(HWND window) {
|
||||
base::win::GetUser32FunctionPointer("IsWindowArranged"));
|
||||
return is_window_arranged_func ? is_window_arranged_func(window) : false;
|
||||
}
|
||||
#endif // NTDDI_WIN11_GE
|
||||
|
||||
} // namespace
|
||||
|
||||
|