-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a python script to install Direct3D 12 SDK components.
This makes it much faster to get started with Direct3D 12 builds, as you only need to run `python .\misc\scripts\install_d3d12_sdk_windows.py` then run `scons d3d12=yes`. This installs DirectX Shader Compiler, Mesa NIR, WinPixEventRuntime and DirectX 12 Agility SDK. - Define a default path that uses the locations from the script. - Now the default path is in "%LOCALAPPDATA%\Godot\build_deps\" - Updated CI to use this new python script. Co-Authored-By: Hugo Locurcio <[email protected]>
- Loading branch information
1 parent
74c32fa
commit ea2c6f1
Showing
5 changed files
with
150 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,7 @@ on: | |
env: | ||
# Used for the cache key. Add version suffix to force clean build. | ||
GODOT_BASE_BRANCH: master | ||
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes "dxc_path=${{github.workspace}}/dxc" "mesa_libs=${{github.workspace}}/godot-nir-static" | ||
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes | ||
SCONS_CACHE_MSVC_CONFIG: true | ||
|
||
concurrency: | ||
|
@@ -49,27 +49,8 @@ jobs: | |
- name: Setup python and scons | ||
uses: ./.github/actions/godot-deps | ||
|
||
- name: Download pre-built DirectX Shader Compiler | ||
uses: dsaltares/[email protected] | ||
with: | ||
repo: Microsoft/DirectXShaderCompiler | ||
version: tags/v1.7.2308 | ||
file: dxc_2023_08_14.zip | ||
target: dxc.zip | ||
|
||
- name: Extract pre-built DirectX Shader Compiler | ||
run: 7z x dxc.zip -o${{github.workspace}}/dxc | ||
|
||
- name: Download pre-built Mesa-NIR | ||
uses: dsaltares/[email protected] | ||
with: | ||
repo: godotengine/godot-nir-static | ||
version: tags/23.1.0-devel | ||
file: godot-nir-23.1.0-1-devel.zip | ||
target: godot-nir-static.zip | ||
|
||
- name: Extract pre-built Mesa-NIR | ||
run: 7z x godot-nir-static.zip -o${{github.workspace}}/godot-nir-static | ||
- name: Download Direct3D 12 SDK components | ||
run: python ./misc/scripts/install_d3d12_sdk_windows.py | ||
|
||
- name: Setup MSVC problem matcher | ||
uses: ammaraskar/msvc-problem-matcher@master | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
#!/usr/bin/env python | ||
|
||
import os | ||
import urllib.request | ||
import shutil | ||
|
||
# Base Godot dependencies path | ||
deps_folder = os.path.join(f"{os.getenv('LOCALAPPDATA')}", "Godot", "build_deps") | ||
# DirectX Shader Compiler | ||
dxc_version = "v1.7.2308" | ||
dxc_filename = "dxc_2023_08_14.zip" | ||
dxc_archive = os.path.join(deps_folder, dxc_filename) | ||
dxc_folder = os.path.join(deps_folder, "dxc") | ||
# Mesa NIR | ||
mesa_version = "23.1.0-devel" | ||
mesa_filename = "godot-nir-23.1.0-1-devel.zip" | ||
mesa_archive = os.path.join(deps_folder, mesa_filename) | ||
mesa_folder = os.path.join(deps_folder, "mesa") | ||
# WinPixEventRuntime | ||
pix_version = "1.0.231030001" | ||
pix_archive = os.path.join(deps_folder, f"WinPixEventRuntime_{pix_version}.nupkg") | ||
pix_folder = os.path.join(deps_folder, "pix") | ||
# DirectX 12 Agility SDK | ||
agility_sdk_version = "1.610.4" | ||
agility_sdk_archive = os.path.join(deps_folder, f"Agility_SDK_{agility_sdk_version}.nupkg") | ||
agility_sdk_folder = os.path.join(deps_folder, "agility_sdk") | ||
|
||
# Create dependencies folder | ||
if not os.path.exists(deps_folder): | ||
os.makedirs(deps_folder) | ||
|
||
# DirectX Shader Compiler | ||
print("[1/4] DirectX Shader Compiler") | ||
if os.path.isfile(dxc_archive): | ||
os.remove(dxc_archive) | ||
print(f"Downloading DirectX Shader Compiler {dxc_filename} ...") | ||
urllib.request.urlretrieve( | ||
f"https://github.com/microsoft/DirectXShaderCompiler/releases/download/{dxc_version}/{dxc_filename}", | ||
dxc_archive, | ||
) | ||
if os.path.exists(dxc_folder): | ||
print(f"Removing existing local DirectX Shader Compiler installation in {dxc_folder} ...") | ||
shutil.rmtree(dxc_folder) | ||
print(f"Extracting DirectX Shader Compiler {dxc_filename} to {dxc_folder} ...") | ||
shutil.unpack_archive(dxc_archive, dxc_folder) | ||
os.remove(dxc_archive) | ||
print(f"DirectX Shader Compiler {dxc_filename} installed successfully.\n") | ||
|
||
# Mesa NIR | ||
print("[2/4] Mesa NIR") | ||
if os.path.isfile(mesa_archive): | ||
os.remove(mesa_archive) | ||
print(f"Downloading Mesa NIR {mesa_filename} ...") | ||
urllib.request.urlretrieve( | ||
f"https://github.com/godotengine/godot-nir-static/releases/download/{mesa_version}/{mesa_filename}", | ||
mesa_archive, | ||
) | ||
if os.path.exists(mesa_folder): | ||
print(f"Removing existing local Mesa NIR installation in {mesa_folder} ...") | ||
shutil.rmtree(mesa_folder) | ||
print(f"Extracting Mesa NIR {mesa_filename} to {mesa_folder} ...") | ||
shutil.unpack_archive(mesa_archive, mesa_folder) | ||
os.remove(mesa_archive) | ||
print(f"Mesa NIR {mesa_filename} installed successfully.\n") | ||
|
||
# WinPixEventRuntime | ||
print("[3/4] WinPixEventRuntime") | ||
if os.path.isfile(pix_archive): | ||
os.remove(pix_archive) | ||
print(f"Downloading WinPixEventRuntime {pix_version} ...") | ||
urllib.request.urlretrieve(f"https://www.nuget.org/api/v2/package/WinPixEventRuntime/{pix_version}", pix_archive) | ||
if os.path.exists(pix_folder): | ||
print(f"Removing existing local WinPixEventRuntime installation in {pix_folder} ...") | ||
shutil.rmtree(pix_folder) | ||
print(f"Extracting WinPixEventRuntime {pix_version} to {pix_folder} ...") | ||
shutil.unpack_archive(pix_archive, pix_folder, "zip") | ||
os.remove(pix_archive) | ||
print(f"WinPixEventRuntime {pix_version} installed successfully.\n") | ||
|
||
# DirectX 12 Agility SDK | ||
print("[4/4] DirectX 12 Agility SDK") | ||
if os.path.isfile(agility_sdk_archive): | ||
os.remove(agility_sdk_archive) | ||
print(f"Downloading DirectX 12 Agility SDK {agility_sdk_version} ...") | ||
urllib.request.urlretrieve( | ||
f"https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/{agility_sdk_version}", agility_sdk_archive | ||
) | ||
if os.path.exists(agility_sdk_folder): | ||
print(f"Removing existing local DirectX 12 Agility SDK installation in {agility_sdk_folder} ...") | ||
shutil.rmtree(agility_sdk_folder) | ||
print(f"Extracting DirectX 12 Agility SDK {agility_sdk_version} to {agility_sdk_folder} ...") | ||
shutil.unpack_archive(agility_sdk_archive, agility_sdk_folder, "zip") | ||
os.remove(agility_sdk_archive) | ||
print(f"DirectX 12 Agility SDK {agility_sdk_version} installed successfully.\n") | ||
|
||
# Complete message | ||
print(f"All Direct3D 12 SDK components were installed to {deps_folder} successfully!") | ||
print('You can now build Godot with Direct3D 12 support enabled by running "scons d3d12=yes".') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters