diff --git a/.azuredevops/pipelines/DirectXTK12-GitHub-GDK-Dev17.yml b/.azuredevops/pipelines/DirectXTK12-GitHub-GDK-Dev17.yml
index 5c3c3678..2ac38e70 100644
--- a/.azuredevops/pipelines/DirectXTK12-GitHub-GDK-Dev17.yml
+++ b/.azuredevops/pipelines/DirectXTK12-GitHub-GDK-Dev17.yml
@@ -683,3 +683,107 @@ jobs:
configuration: Release
msbuildArchitecture: x64
msbuildArgs: /p:GDKEditionNumber=$(GDK_EDITION)
+
+ - job: BUILD_GDKW
+ condition: ge(variables.GDKEditionNumber, '251000')
+ displayName: 'Microsoft Game Development Kit (ARM64+x64)'
+ timeoutInMinutes: 120
+ cancelTimeoutInMinutes: 1
+ steps:
+ - checkout: self
+ clean: true
+ fetchTags: false
+ fetchDepth: 1
+ - task: NuGetToolInstaller@1
+ displayName: 'Use NuGet'
+ - task: PowerShell@2
+ displayName: 'Create nuget.config with single source'
+ inputs:
+ targetType: inline
+ script: |
+ $xml = @'
+
+
+
+
+
+
+ '@
+ $xml | Set-Content -Path "$(Build.SourcesDirectory)\NuGet.config"
+
+ - task: NuGetCommand@2
+ # We have to use a nuget.config to provide the feed for the 'nuget install' option.
+ displayName: 'NuGet set package source to ADO feed'
+ inputs:
+ command: custom
+ arguments: sources add -Name xboxgdk -Source $(URL_FEED) -ConfigFile $(Build.SourcesDirectory)\NuGet.config
+ - task: nuget-security-analysis@0
+ displayName: 'Secure Supply Chain Analysis'
+ - task: NuGetAuthenticate@1
+ displayName: 'NuGet Auth'
+ - task: PowerShell@2
+ displayName: 'NuGet Install GDK'
+ inputs:
+ targetType: filePath
+ filePath: ./build/RestoreGDK.ps1
+ arguments: -GDKEditionNumber $(GDK_EDITION) -OutputDirectory $(EXTRACTED_FOLDER) -NewLayout
+ failOnStderr: true
+ - task: NuGetCommand@2
+ displayName: 'NuGet install GDK (Windows)'
+ inputs:
+ command: custom
+ arguments: >
+ install -directdownload Microsoft.GDK.Windows -ExcludeVersion -Version $(GDKNuGetPackageVersion)
+ -OutputDirectory $(EXTRACTED_FOLDER)
+ - task: CopyFiles@2
+ displayName: Set up Directory.Build.props
+ inputs:
+ SourceFolder: build
+ Contents: 'Directory.Build.props'
+ TargetFolder: $(Build.SourcesDirectory)
+ - task: MSBuild@1
+ displayName: Log Information
+ inputs:
+ solution: build/LogInfo.targets
+ msbuildArchitecture: x64
+ msbuildArguments: /p:GDKEditionNumber=$(GDK_EDITION)
+ - task: VSBuild@1
+ displayName: Build arm64dbg
+ continueOnError: true
+ inputs:
+ solution: '**\*GDKW_2022*.sln'
+ vsVersion: 17.0
+ platform: ARM64
+ configuration: Debug
+ msbuildArchitecture: x64
+ msbuildArgs: /p:GDKEditionNumber=$(GDK_EDITION)
+ - task: VSBuild@1
+ displayName: Build arm64rel
+ continueOnError: true
+ inputs:
+ solution: '**\*GDKW_2022*.sln'
+ vsVersion: 17.0
+ platform: ARM64
+ configuration: Release
+ msbuildArchitecture: x64
+ msbuildArgs: /p:GDKEditionNumber=$(GDK_EDITION)
+ - task: VSBuild@1
+ displayName: Build x64dbg
+ continueOnError: true
+ inputs:
+ solution: '**\*GDKW_2022*.sln'
+ vsVersion: 17.0
+ platform: x64
+ configuration: Debug
+ msbuildArchitecture: x64
+ msbuildArgs: /p:GDKEditionNumber=$(GDK_EDITION)
+ - task: VSBuild@1
+ displayName: Build x64rel
+ continueOnError: true
+ inputs:
+ solution: '**\*GDKW_2022*.sln'
+ vsVersion: 17.0
+ platform: x64
+ configuration: Release
+ msbuildArchitecture: x64
+ msbuildArgs: /p:GDKEditionNumber=$(GDK_EDITION)
diff --git a/DirectXTK_GDKW_2022.sln b/DirectXTK_GDKW_2022.sln
new file mode 100644
index 00000000..0cab9578
--- /dev/null
+++ b/DirectXTK_GDKW_2022.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36603.0 d17.14
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXTK12", "DirectXTK_GDKW_2022.vcxproj", "{1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Profile|ARM64 = Profile|ARM64
+ Profile|x64 = Profile|x64
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Debug|x64.ActiveCfg = Debug|x64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Debug|x64.Build.0 = Debug|x64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Profile|ARM64.ActiveCfg = Profile|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Profile|ARM64.Build.0 = Profile|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Profile|x64.ActiveCfg = Profile|x64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Profile|x64.Build.0 = Profile|x64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Release|ARM64.ActiveCfg = Release|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Release|ARM64.Build.0 = Release|ARM64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Release|x64.ActiveCfg = Release|x64
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {36210A92-38FD-4CAC-A403-EE610E4DE878}
+ EndGlobalSection
+EndGlobal
diff --git a/DirectXTK_GDKW_2022.vcxproj b/DirectXTK_GDKW_2022.vcxproj
new file mode 100644
index 00000000..d4a1a3ec
--- /dev/null
+++ b/DirectXTK_GDKW_2022.vcxproj
@@ -0,0 +1,553 @@
+
+
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ x64
+
+
+ Profile
+ ARM64
+
+
+ Profile
+ x64
+
+
+ Release
+ ARM64
+
+
+ Release
+ x64
+
+
+
+ DirectXTK12
+ DirectXTK12
+ {1EAD58C4-099C-4B2A-9D20-BDC4F57E3C7E}
+ en-US
+ Win32Proj
+
+ 15.0
+ Native
+ x64
+ 10.0
+
+
+
+
+ $(GRDKLatest)
+ $(GameDKCoreLatest)
+ $(GameDKXboxLatest)
+ true
+ false
+
+
+ $(GDKCrossPlatformPath)windows\include
+ $(GDKCrossPlatformPath)windows\lib\$(PlatformTarget)
+
+
+ $(GDKPCEditionPath)GameKit\Include
+ $(GDKPCEditionPath)GameKit\lib\amd64
+
+
+ StaticLibrary
+ v143
+ false
+ Unicode
+ false
+ false
+
+
+ StaticLibrary
+ v143
+ false
+ Unicode
+ false
+ false
+
+
+ StaticLibrary
+ v143
+ false
+ Unicode
+ false
+ false
+
+
+ StaticLibrary
+ v143
+ false
+ Unicode
+ false
+ false
+
+
+ StaticLibrary
+ v143
+ true
+ Unicode
+ false
+ false
+
+
+ StaticLibrary
+ v143
+ true
+ Unicode
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+ $(GameDK)bin;$(ExecutablePath)
+ $(GDKWindowsIncludePath);$(IncludePath);
+ $(GDKWindowsLibPath);$(LibraryPath)
+ false
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ Bin\GDKW_2022\$(Platform)\$(Configuration)\
+ DirectXTK12
+
+
+
+ true
+ Windows
+ true
+ true
+
+
+ Use
+ pch.h
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;NDEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ EnableAllWarnings
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ true
+ true
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ Level4
+ true
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+ true
+ Windows
+ true
+ true
+
+
+ Use
+ pch.h
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;NDEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ EnableAllWarnings
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ true
+ true
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ Level4
+ true
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+ true
+ Windows
+ true
+ true
+
+
+ Use
+ pch.h
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;PROFILE;NDEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ EnableAllWarnings
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ true
+ true
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ Level4
+ true
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+ true
+ Windows
+ true
+ true
+
+
+ Use
+ pch.h
+ MaxSpeed
+ _WIN32_WINNT=0x0A00;PROFILE;NDEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ EnableAllWarnings
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ true
+ true
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ Level4
+ true
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+ Windows
+ true
+
+
+ pch.h
+ Use
+ false
+ EnableAllWarnings
+ Disabled
+ _WIN32_WINNT=0x0A00;_DEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ Level4
+ ProgramDatabase
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ false
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+ Windows
+ true
+
+
+ pch.h
+ Use
+ false
+ EnableAllWarnings
+ Disabled
+ _WIN32_WINNT=0x0A00;_DEBUG;USING_GAMEINPUT;_GAMING_DESKTOP;WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP;WIN32;_WINDOWS;_LIB;%(PreprocessorDefinitions)
+ $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories)
+ Fast
+ $(IntDir)$(TargetName).pdb
+ true
+ true
+ Level4
+ ProgramDatabase
+ /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions)
+ false
+
+
+ 6.0
+ true
+ /Fd "$(OutDir)%(Filename).pdb" %(AdditionalOptions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])
+ <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))
+ <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\
+ <_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))
+ <_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\
+
+
+
+ <_ATGFXCPath />
+ <_ATGFXCVer />
+
+
+
+
+ <_ATGShaderHeaders Include="$(ProjectDir)Src/Shaders/Compiled/*.inc" Exclude="$(ProjectDir)Src/Shaders/Compiled/*Xbox*.inc" />
+ <_ATGShaderSymbols Include="$(ProjectDir)Src/Shaders/Compiled/*.pdb" Exclude="$(ProjectDir)Src/Shaders/Compiled/*Xbox*.pdb" />
+
+
+
+
+
\ No newline at end of file
diff --git a/DirectXTK_GDKW_2022.vcxproj.filters b/DirectXTK_GDKW_2022.vcxproj.filters
new file mode 100644
index 00000000..cb5d5384
--- /dev/null
+++ b/DirectXTK_GDKW_2022.vcxproj.filters
@@ -0,0 +1,381 @@
+
+
+
+
+ {bd781ce7-c4af-40f5-b970-3e18d4e427c6}
+
+
+ {062bb847-bcd6-4e16-9ce5-d649301e796f}
+
+
+ {1730fefa-08c9-458d-8563-e21b2119bb5f}
+
+
+ {82fb9d3e-dd70-42a8-ac9e-5fa0d2f0acbd}
+
+
+ {c320f8fe-0223-436c-ab0b-4b5ae399bd76}
+
+
+ {d2e931a3-a934-4d9c-bed4-b7b1137a6627}
+
+
+ {0e862607-b322-421e-83d9-51aa055356c4}
+
+
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc\Shared
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Inc
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Inc
+
+
+ Src\Shared
+
+
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Audio
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src\Shared
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Src
+
+
+ Audio
+
+
+ Src
+
+
+ Src
+
+
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders\Shared
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Inc\Shared
+
+
+ Src\Shared
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+ Src\Shaders
+
+
+
+ Src\Shaders\Shared
+
+
+
\ No newline at end of file