Skip to content

Commit 7508373

Browse files
committed
Merge branch 'private/dbataille/warmup-readiness-getstats' into 'main'
[HdRemix] Use "USD without Python", add GetRenderStats warmup API, sdrMdl plugin See merge request lightspeedrtx/dxvk-remix-nv!2031
2 parents a6f4197 + 673dc2a commit 7508373

43 files changed

Lines changed: 898 additions & 1212 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@ dxvk-remix also contains a subproject in the `bridge` folder, which enables 32 b
3030
7. [Python](https://www.python.org/downloads/)
3131
- 3.9 or newer
3232
- Ensure you are using python installed from the link above and not from the Microsoft Store
33+
- Python is required by developer build tooling; the packaged RTX Remix Runtime does not link against Python.
3334
8. [DirectX Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=35)
3435
- Latest version should work.
3536
- This includes d3d9x*.dll which are required to run the game
3637
- May already be installed if you have D3D9 games installed
3738

3839
#### Additional notes:
39-
- If any dependency paths change (i.e. new Vulkan library), run `meson --reconfigure` in _Compiler64 directory via a command prompt. This may revert some custom VS project settings
40+
- If dependency paths change (for example, after installing a new Vulkan SDK), reconfigure the affected build from the repository root, such as `meson setup --reconfigure _Comp64Release`.
4041

4142
### Generate and build dxvk-remix Visual Studio project
4243
1. Clone the repository with all submodules:
@@ -54,15 +55,22 @@ dxvk-remix also contains a subproject in the `bridge` folder, which enables 32 b
5455
- Right Click on `dxvk-remix\build_dxvk_all_ninja.ps1` and select "Run with Powershell"
5556
- If that fails or has problems, run the build manually in a way you can read the errors:
5657
- open a windows file explorer to the `dxvk-remix` folder
57-
- remove artifacts from the previous attempt by deleting all folders that start with `_`, i.e. `_vs/` and `_Comp64Debug`
58+
- remove only the generated configuration that failed, such as `_Comp64Debug/`; remove `_vs/` as well only if the generated Visual Studio solution must be recreated
5859
- type `cmd` in the address bar to open a command line window in that folder.
5960
- copy and paste `powershell -command "& .\build_dxvk_all_ninja.ps1"` into the command line, then press enter
60-
- This will build all 3 configurations of dxvk-remix project inside subdirectories of the build tree:
61+
- Optional flags:
62+
- `-SkipApics` — skip downloading game test captures (requires auth token)
63+
- Examples:
64+
```powershell
65+
.\build_dxvk_all_ninja.ps1
66+
.\build_dxvk_all_ninja.ps1 -SkipApics
67+
```
68+
- This will build all 3 configurations of dxvk-remix project inside subdirectories of the build tree:
6169
- **_Comp64Debug** - full debug instrumentation, runtime speed may be slow
6270
- **_Comp64DebugOptimized** - partial debug instrumentation (i.e. asserts), runtime speed is generally comparable to that of release configuration
63-
- **_Comp64Release** - fastest runtime
71+
- **_Comp64Release** - fastest runtime
6472
- This will generate a project in the **_vs** subdirectory
65-
- Only x64 build targets are supported
73+
- This script builds the officially supported x64 targets. ARM64 and ARM64EC configurations are compile-tested in CI but are not part of this local build workflow.
6674
6775
5. Open **_vs/dxvk-remix.sln** in Visual Studio (2019+).
6876
- Do not convert the solution on load if prompted when using a newer version of Visual Studio
@@ -74,7 +82,12 @@ dxvk-remix also contains a subproject in the `bridge` folder, which enables 32 b
7482
7583
2. Update paths in the **gametargets.conf** for your game. Follow example in the **gametargets.example.conf**. Make sure to remove "#" from the start of all three lines
7684
77-
3. Open and, simply, re-save top-level **meson.build** file (i.e. via notepad) to update its time stamp, and rerun the build. This will trigger a full meson script run which will generate a project within the Visual Studio solution file and deploy built binaries into games' directories specified in **gametargets.conf**
85+
3. Reconfigure and rebuild each configuration you use so Meson reloads **gametargets.conf**. For example:
86+
```powershell
87+
meson setup --reconfigure _Comp64Release
88+
meson compile -C _Comp64Release
89+
```
90+
The build deploys binaries to the game directories specified in **gametargets.conf**.
7891
7992
### Profiling Remix
8093
Remix has support for profiling using the [Tracy](https://github.com/wolfpld/tracy) tool, specifically the [v0.8 release](https://github.com/wolfpld/tracy/releases/download/v0.8/Tracy-0.8.7z)

build_common.ps1

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ function PerformBuild {
107107

108108
[bool]$ConfigureOnly = $false,
109109

110-
[bool]$ShadersOnly = $false
110+
[bool]$ShadersOnly = $false,
111+
112+
[bool]$SkipApics = $false
111113
)
112114

113115
if ( [string]::IsNullOrEmpty("$BuildArch") ) {
@@ -126,10 +128,9 @@ function PerformBuild {
126128
if ( $env:BUILD_SENTRY_ENVIRONMENT ) {
127129
$mesonArgs += "-Dremix_sentry_environment=$env:BUILD_SENTRY_ENVIRONMENT"
128130
}
129-
if ( $ShadersOnly ) {
131+
if ( $ShadersOnly -or $SkipApics ) {
130132
$mesonArgs += "-Ddownload_apics=False"
131133
}
132-
133134
If ( $BuildArch -eq "arm64ec" ) {
134135
$mesonArgs += @("--cross-file", "build-wina64ec.txt")
135136
} Else { If ( $BuildArch -eq "arm64" ) {
@@ -178,4 +179,4 @@ function PerformBuild {
178179
exit $LASTEXITCODE
179180
}
180181
}
181-
}
182+
}

build_dxvk_all_ninja.ps1

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<#
22
Copyright (c) 2021-2023, NVIDIA CORPORATION. All rights reserved.
3-
3+
44
Permission is hereby granted, free of charge, to any person obtaining a
55
copy of this software and associated documentation files (the "Software"),
66
to deal in the Software without restriction, including without limitation
77
the rights to use, copy, modify, merge, publish, distribute, sublicense,
88
and/or sell copies of the Software, and to permit persons to whom the
99
Software is furnished to do so, subject to the following conditions:
10-
10+
1111
The above copyright notice and this permission notice shall be included in
1212
all copies or substantial portions of the Software.
13-
13+
1414
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1515
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1616
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
@@ -20,11 +20,22 @@
2020
DEALINGS IN THE SOFTWARE.
2121
#>
2222

23+
param(
24+
[switch]$SkipApics
25+
)
26+
2327
. ".\build_common.ps1"
2428

2529
$BuildFlavours = @("debug","debugoptimized","release")
2630
$BuildSubDirs = @("_Comp64Debug","_Comp64DebugOptimized","_Comp64Release")
2731

2832
For ($i=0; $i -lt $BuildFlavours.Length; $i++) {
29-
PerformBuild -BuildFlavour $BuildFlavours[$i] -BuildSubDir $BuildSubDirs[$i] -Backend ninja -EnableTracy false
30-
}
33+
$buildArgs = @{
34+
BuildFlavour = $BuildFlavours[$i]
35+
BuildSubDir = $BuildSubDirs[$i]
36+
Backend = 'ninja'
37+
EnableTracy = 'false'
38+
}
39+
if ($SkipApics) { $buildArgs['SkipApics'] = $true }
40+
PerformBuild @buildArgs
41+
}

external-build/meson.build

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,23 +107,11 @@ endif
107107

108108
usd_lib_path = join_paths(global_src_root_norm, usd_debug_release_dir)
109109

110-
if dxvk_is_woa
111-
python_lib_path = join_paths(usd_lib_path, 'lib')
112-
python_dll_path = python_lib_path
113-
# The stock Arm64 USD package already contains the Python headers.
114-
python_include_paths = []
115-
else
116-
python_path = join_paths(global_src_root_norm, 'external/python311_x64')
117-
python_lib_path = join_paths(python_path, 'libs')
118-
python_dll_path = python_path
119-
python_include_paths = [include_directories('../external/python311_x64/include')]
120-
endif
121-
122110
# NOTE newer versions of meson prefer relative paths for include directories.
123111
# Prefix with ../ since these paths are resolved relative to this subdir.
124112
nv_usd_include_path = include_directories(join_paths('..', usd_debug_release_dir, 'include'))
125113

126-
usd_include_paths = [nv_usd_include_path] + python_include_paths
114+
usd_include_paths = [nv_usd_include_path]
127115

128116
# ============================================================================
129117
# RTX IO

meson.build

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ enable_rtxio = get_option('enable_rtxio')
7979

8080
external_dll_paths = []
8181

82-
add_global_arguments('/wd4273', language : 'cpp')
83-
8482
if dxvk_is_msvc
8583
if dxvk_is_woa
8684
# sse2neon requires conformant preproc
@@ -563,7 +561,6 @@ nvusd_deplibs = [
563561
'usd_usdSkel',
564562
'usd_work',
565563
'usd_vt',
566-
'usd_python',
567564
'usd_plug',
568565
'usd_ts',
569566
]
@@ -574,7 +571,6 @@ foreach ulib : nvusd_deplibs
574571
endforeach
575572

576573
usd_linklibs += dxvk_compiler.find_library(get_option('buildtype') == 'debug' ? 'tbb12_debug' : 'tbb12', dirs: join_paths(usd_lib_path, 'lib'))
577-
usd_linklibs += dxvk_compiler.find_library('python311', dirs: python_lib_path)
578574

579575
if dxvk_is_woa
580576
reflex_lib_path = join_paths(global_src_root_norm, 'external/reflex_arm64/lib')
@@ -808,10 +804,7 @@ if dxvk_is_ninja or dxvk_is_woa_ec
808804

809805
install_data(join_paths(usd_lib_path, 'bin', get_option('buildtype') == 'debug' ? 'tbbmalloc_debug.dll' : 'tbbmalloc.dll'), install_dir : output_path, install_tag: target_suffix)
810806
install_data(join_paths(usd_lib_path, 'bin', get_option('buildtype') == 'debug' ? 'tbb12_debug.dll' : 'tbb12.dll'), install_dir : output_path, install_tag: target_suffix)
811-
install_data(join_paths(python_dll_path, 'python311.dll'), install_dir : output_path, install_tag: target_suffix)
812-
install_subdir(join_paths(usd_lib_path, 'lib/python/'), install_dir : output_path, install_tag: target_suffix)
813-
814-
807+
# Python DLL not needed for nopy USD build
815808
install_data(join_paths(global_src_root_norm, 'src', 'usd-plugins', 'plugInfo.json'), install_dir : join_paths(output_path, 'usd', 'plugins'), install_tag: target_suffix)
816809

817810
# install USD plugins

meson_options.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,4 @@ option('remixsdk_local', type: 'string', value: '', description: 'Path to the lo
5555

5656
option('download_apics', type : 'boolean', value : true, description : 'Download APICs for testing')
5757

58-
option('remix_sentry_environment', type : 'string', value : '', description : 'Sentry environment tag baked in at compile time (e.g. github-production, gitlab-production). When empty or not set, the C++ code uses "development". CI should pass -Dremix_sentry_environment=$env:BUILD_SENTRY_ENVIRONMENT.')
58+
option('remix_sentry_environment', type : 'string', value : '', description : 'Sentry environment tag baked in at compile time (e.g. github-production, gitlab-production). When empty or not set, the C++ code uses "development". CI should pass -Dremix_sentry_environment=$env:BUILD_SENTRY_ENVIRONMENT.')

packman-external-arm64.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
</dependency>
2323

2424
<!-- Window on Arm deps -->
25-
<dependency name="usd.py311.windows-arm64.stock.debug" linkPath="external/usd_stock_arm64/debug">
26-
<package name="usd.py311.windows-arm64.stock.debug" version="0.25.11"/>
25+
<dependency name="usd_debug" linkPath="external/usd_stock_arm64/debug">
26+
<package name="open_usd" version="25.11+265538d9-windows-aarch64-debug-nopython"/>
2727
</dependency>
28-
<dependency name="usd.py311.windows-arm64.stock.release" linkPath="external/usd_stock_arm64/release">
29-
<package name="usd.py311.windows-arm64.stock.release" version="0.25.11"/>
28+
<dependency name="usd_release" linkPath="external/usd_stock_arm64/release">
29+
<package name="open_usd" version="25.11+265538d9-windows-aarch64-release-nopython"/>
3030
</dependency>
3131
<dependency name="aftermath_arm64" linkPath="external/aftermath_arm64">
3232
<package name="aftermath_arm64" version="1" />

packman-external.xml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
<dependency name="fonts" linkPath="external/fonts">
66
<package name="rtx-remix-fonts" version="2" />
77
</dependency>
8-
<dependency name="usd_py311_debug" linkPath="./external/usd_stock_x64/debug">
9-
<package name="usd.py311.windows-x86_64.stock.debug" version="0.25.11-gl.18041+v25.11.363a7c8d" />
8+
<dependency name="usd_release" linkPath="./external/usd_stock_x64/release">
9+
<package name="open_usd" version="25.11+07744417-windows-x86_64-release-nopython" />
1010
</dependency>
11-
<dependency name="usd_py311_release" linkPath="./external/usd_stock_x64/release">
12-
<package name="usd.py311.windows-x86_64.stock.release" version="0.25.11-gl.18041+v25.11.363a7c8d" />
13-
</dependency>
14-
<dependency name="python311" linkPath="./external/python311_x64">
15-
<package name="python" version="3.11.10+nv1-windows-x86_64" />
11+
<dependency name="usd_debug" linkPath="./external/usd_stock_x64/debug" tags="non-redist">
12+
<package name="open_usd" version="25.11+07744417-windows-x86_64-debug-nopython" />
1613
</dependency>
1714
<dependency name="omni_core_materials" linkPath="external/omni_core_materials">
1815
<package name="rtx-remix-omni_core_materials" version="16" />

0 commit comments

Comments
 (0)