From 422e07f15f4714181f5cb3f29a940c3f092e3988 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Thu, 16 Apr 2026 23:56:49 -0700 Subject: [PATCH 1/4] Update project to use arm64 FXC on arm64 native --- .github/workflows/msbuild.yml | 27 +++++++++++++++++++ .../DirectXTex_Desktop_2022_Win10.vcxproj | 6 +++-- DirectXTex/DirectXTex_Desktop_2026.vcxproj | 6 +++-- DirectXTex/DirectXTex_Windows10_2022.vcxproj | 6 +++-- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index bbfee0d3..607d3ede 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -99,3 +99,30 @@ jobs: run: > msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=${{ matrix.platform }} DirectXTex_Desktop_2026.slnx + + build2022_arm64: + runs-on: windows-11-arm + + strategy: + fail-fast: false + + matrix: + build_type: [Debug, Release] + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + + - name: 'Build (Windows 10)' + working-directory: ${{ github.workspace }} + run: > + msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=ARM64 + DirectXTex_Desktop_2022_Win10.sln + + - name: 'Build (UWP)' + working-directory: ${{ github.workspace }} + run: > + msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=ARM64 + DirectXTex_Windows10_2022.sln diff --git a/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj b/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj index 2cb4c668..8f85540f 100644 --- a/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj +++ b/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj @@ -485,8 +485,10 @@ - <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath>$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) <_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)\ diff --git a/DirectXTex/DirectXTex_Desktop_2026.vcxproj b/DirectXTex/DirectXTex_Desktop_2026.vcxproj index e30c5a43..80180d92 100644 --- a/DirectXTex/DirectXTex_Desktop_2026.vcxproj +++ b/DirectXTex/DirectXTex_Desktop_2026.vcxproj @@ -485,8 +485,10 @@ - <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath>$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) <_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)\ diff --git a/DirectXTex/DirectXTex_Windows10_2022.vcxproj b/DirectXTex/DirectXTex_Windows10_2022.vcxproj index 96f7f7fd..1a441a93 100644 --- a/DirectXTex/DirectXTex_Windows10_2022.vcxproj +++ b/DirectXTex/DirectXTex_Windows10_2022.vcxproj @@ -339,8 +339,10 @@ - <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath>$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) <_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)\ From 53854b19f1cc66a6719ee0f3ffe6f48dfe1e9edf Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 17 Apr 2026 00:33:39 -0700 Subject: [PATCH 2/4] Revert project changes --- DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj | 6 ++---- DirectXTex/DirectXTex_Desktop_2026.vcxproj | 6 ++---- DirectXTex/DirectXTex_Windows10_2022.vcxproj | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj b/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj index 8f85540f..2cb4c668 100644 --- a/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj +++ b/DirectXTex/DirectXTex_Desktop_2022_Win10.vcxproj @@ -485,10 +485,8 @@ - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) + <_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)\ diff --git a/DirectXTex/DirectXTex_Desktop_2026.vcxproj b/DirectXTex/DirectXTex_Desktop_2026.vcxproj index 80180d92..e30c5a43 100644 --- a/DirectXTex/DirectXTex_Desktop_2026.vcxproj +++ b/DirectXTex/DirectXTex_Desktop_2026.vcxproj @@ -485,10 +485,8 @@ - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) + <_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)\ diff --git a/DirectXTex/DirectXTex_Windows10_2022.vcxproj b/DirectXTex/DirectXTex_Windows10_2022.vcxproj index 1a441a93..96f7f7fd 100644 --- a/DirectXTex/DirectXTex_Windows10_2022.vcxproj +++ b/DirectXTex/DirectXTex_Windows10_2022.vcxproj @@ -339,10 +339,8 @@ - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(WindowsSDK_ExecutablePath_arm64.Split(';')[0]) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">$(_ATGFXCPath.Replace("x64","")) - <_ATGFXCPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">$(_ATGFXCPath.Replace("arm64","")) + <_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)\ From ae3baf59c6ebd00ddb10e226fa9b29641bb521ce Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 17 Apr 2026 00:44:05 -0700 Subject: [PATCH 3/4] Avoid using x86 HLSL compiler --- DirectXTex/Shaders/CompileShaders.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DirectXTex/Shaders/CompileShaders.cmd b/DirectXTex/Shaders/CompileShaders.cmd index 43144065..36406814 100644 --- a/DirectXTex/Shaders/CompileShaders.cmd +++ b/DirectXTex/Shaders/CompileShaders.cmd @@ -5,7 +5,7 @@ rem Licensed under the MIT License. setlocal set error=0 -if %PROCESSOR_ARCHITECTURE%.==ARM64. (set FXCARCH=arm64) else (if %PROCESSOR_ARCHITECTURE%.==AMD64. (set FXCARCH=x64) else (set FXCARCH=x86)) +if %PROCESSOR_ARCHITECTURE%.==ARM64. (set FXCARCH=arm64) else (set FXCARCH=x64) set FXCOPTS=/nologo /WX /Ges /Zi /Zpc /Qstrip_reflect /Qstrip_debug From 266c6dca1709ffd2fb1251a3c369b46e1883a364 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 17 Apr 2026 00:52:54 -0700 Subject: [PATCH 4/4] Force correct arch for MSBuild --- .github/workflows/msbuild.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 607d3ede..32adcbf2 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -42,6 +42,8 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + with: + msbuild-architecture: x64 - if: matrix.platform != 'ARM64' name: Build @@ -93,6 +95,8 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + with: + msbuild-architecture: x64 - name: 'Build' working-directory: ${{ github.workspace }} @@ -114,6 +118,8 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0 + with: + msbuild-architecture: arm64 - name: 'Build (Windows 10)' working-directory: ${{ github.workspace }}