Skip to content

Commit cf64b5e

Browse files
committed
Merge tag 'v25.08' into fix-core-profile
2 parents 0a8af1f + 71e038c commit cf64b5e

File tree

4,181 files changed

+268887
-111640
lines changed

Some content is hidden

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

4,181 files changed

+268887
-111640
lines changed

.github/workflows/buildusd.yml

Lines changed: 53 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,35 @@ on:
55
branches:
66
- dev
77
- release
8-
issue_comment:
9-
types: [created]
8+
pull_request:
9+
branches:
10+
- dev
11+
paths:
12+
- '**'
13+
- '!.github/workflows/**'
1014

1115
jobs:
12-
GetUser:
16+
Validation:
1317
runs-on: ubuntu-22.04
14-
timeout-minutes: 5
18+
timeout-minutes: 30
1519
outputs:
16-
require-result: ${{ steps.check.outputs.require-result }}
20+
validation-failed: ${{ steps.changed-workflows.outputs.any_changed }}
1721
steps:
18-
- uses: actions-cool/check-user-permission@v2
19-
id: check
22+
- name: Checkout code
23+
uses: actions/checkout@v4
2024
with:
21-
require: 'write'
22-
username: ${{ github.event.comment.user.login }}
23-
24-
GetGitRef:
25-
runs-on: ubuntu-22.04
26-
timeout-minutes: 5
27-
outputs:
28-
ref: ${{ steps.setter.outputs.ref }}
29-
steps:
30-
- name: Get push ref
31-
if: ${{ github.event_name == 'push' }}
32-
run: |
33-
echo "REF=${{ github.ref }}" >> $GITHUB_ENV
34-
- name: Get PR ref
35-
if: ${{ github.event.issue.pull_request }}
36-
run: |
37-
echo "REF=refs/pull/${{ github.event.issue.number }}/merge" >> $GITHUB_ENV
38-
- name: Print ENV_VAR
39-
run: |
40-
echo "The value of REF is $REF"
41-
- name: Set ENV_VAR
42-
id: setter
43-
run: |
44-
echo "ref=$REF" >> "$GITHUB_OUTPUT"
25+
ref: ${{ github.ref }}
26+
- name: Check workflows directory
27+
id: changed-workflows
28+
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c #v46
29+
with:
30+
files: |
31+
.github/workflows/**
4532
4633
Linux:
4734
needs:
48-
- GetUser
49-
- GetGitRef
50-
if: ${{ (github.event.issue.pull_request && contains(github.event.comment.body, '/AzurePipelines run') && needs.GetUser.outputs.require-result == 'true' ) || github.event_name == 'push' }}
35+
- Validation
36+
if: ${{ (github.event_name == 'pull_request' && needs.Validation.outputs.validation-failed != 'true') || github.event_name == 'push' }}
5137
runs-on: ubuntu-22.04
5238
env:
5339
PYTHON_VERSION: "3.9"
@@ -56,7 +42,7 @@ jobs:
5642
- name: Checkout code
5743
uses: actions/checkout@v4
5844
with:
59-
ref: ${{needs.GetGitRef.outputs.ref}}
45+
ref: ${{ github.ref }}
6046
- name: Restore cached artifacts
6147
id: cache-usd-build-dependency
6248
uses: actions/cache/restore@v4
@@ -77,7 +63,8 @@ jobs:
7763
pip install PySide2 PyOpenGL
7864
- name: Build USD
7965
run: |
80-
python3 build_scripts/build_usd.py --no-materialx --build USDgen/build --src USDgen/src USDinst -v
66+
# Not using '--tests' to avoid building extra dependencies that are unneeded for headless tests
67+
python3 build_scripts/build_usd.py --no-materialx --build USDgen/build --src USDgen/src USDinst --build-args USD,"-DPXR_HEADLESS_TEST_MODE=ON -DPXR_BUILD_TESTS=ON" -v
8168
- name: Save build artifacts to cache
8269
if: steps.cache-usd-build-dependency.outputs.cache-hit != 'true'
8370
uses: actions/cache/save@v4
@@ -90,21 +77,24 @@ jobs:
9077
with:
9178
name: usd-linux
9279
path: USDinst
80+
- name: Test USD
81+
working-directory: ./USDgen/build/OpenUSD
82+
run: |
83+
ctest -V -C Release --exclude-regex "testExecGeomXformable_Perf_Large"
9384
9485
macOS:
9586
needs:
96-
- GetUser
97-
- GetGitRef
98-
if: ${{ (github.event.issue.pull_request && contains(github.event.comment.body, '/AzurePipelines run') && needs.GetUser.outputs.require-result == 'true' ) || github.event_name == 'push' }}
99-
runs-on: macos-13
87+
- Validation
88+
if: ${{ (github.event_name == 'pull_request' && needs.Validation.outputs.validation-failed != 'true') || github.event_name == 'push' }}
89+
runs-on: macos-15
10090
env:
10191
PYTHON_VERSION: "3.11"
10292
timeout-minutes: 120
10393
steps:
10494
- name: Checkout code
10595
uses: actions/checkout@v4
10696
with:
107-
ref: ${{needs.GetGitRef.outputs.ref}}
97+
ref: ${{ github.ref }}
10898
- name: Restore cached artifacts
10999
id: cache-usd-build-dependency
110100
uses: actions/cache/restore@v4
@@ -120,16 +110,17 @@ jobs:
120110
- name: Install dependencies
121111
run: |
122112
export PATH=/Applications/CMake.app/Contents/bin:$PATH
123-
sudo xcode-select -s /Applications/Xcode_14.1.app/Contents/Developer
113+
sudo xcode-select -s /Applications/Xcode_16.app/Contents/Developer
124114
# Set SYSTEM_VERSION_COMPAT while installing Python packages to
125115
# accommodate the macOS version numbering change from 10.x to 11
126116
export SYSTEM_VERSION_COMPAT=1
127117
pip install PySide6 PyOpenGL setuptools
128118
export -n SYSTEM_VERSION_COMPAT
129119
- name: Build USD
130120
run: |
121+
# Not using '--tests' to avoid building extra dependencies that are unneeded for headless tests
131122
export PATH=/Applications/CMake.app/Contents/bin:$PATH
132-
python3 build_scripts/build_usd.py --no-materialx --generator Xcode --build USDgen/build --src USDgen/src USDinst -v
123+
python3 build_scripts/build_usd.py --no-materialx --generator Xcode --build USDgen/build --src USDgen/src USDinst --build-args USD,"-DPXR_HEADLESS_TEST_MODE=ON -DPXR_BUILD_TESTS=ON" -v
133124
- name: Save build artifacts to cache
134125
if: steps.cache-usd-build-dependency.outputs.cache-hit != 'true'
135126
uses: actions/cache/save@v4
@@ -142,21 +133,25 @@ jobs:
142133
with:
143134
name: usd-macOS
144135
path: USDinst
136+
- name: Test USD
137+
working-directory: ./USDgen/build/OpenUSD
138+
run: |
139+
export PATH=/Applications/CMake.app/Contents/bin:$PATH
140+
ctest -V -C Release --exclude-regex "testExecGeomXformable_Perf_Large"
145141
146142
Windows:
147143
needs:
148-
- GetUser
149-
- GetGitRef
150-
if: ${{ (github.event.issue.pull_request && contains(github.event.comment.body, '/AzurePipelines run') && needs.GetUser.outputs.require-result == 'true' ) || github.event_name == 'push' }}
151-
runs-on: windows-2019
144+
- Validation
145+
if: ${{ (github.event_name == 'pull_request' && needs.Validation.outputs.validation-failed != 'true') || github.event_name == 'push' }}
146+
runs-on: windows-2022
152147
env:
153148
PYTHON_VERSION: "3.9"
154149
timeout-minutes: 120
155150
steps:
156151
- name: Checkout code
157152
uses: actions/checkout@v4
158153
with:
159-
ref: ${{needs.GetGitRef.outputs.ref}}
154+
ref: ${{ github.ref }}
160155
- name: Restore cached artifacts
161156
id: cache-usd-build-dependency
162157
uses: actions/cache/restore@v4
@@ -175,7 +170,8 @@ jobs:
175170
python -m pip install PyOpenGL PySide2
176171
- name: Build USD
177172
run: |
178-
python build_scripts/build_usd.py --no-materialx --generator "Visual Studio 16 2019" --build USDgen/build --src USDgen/src USDinst --build-args USD,"-DPXR_ENABLE_PRECOMPILED_HEADERS=OFF" -v
173+
# Not using '--tests' to avoid building extra dependencies that are unneeded for headless tests
174+
python build_scripts/build_usd.py --no-materialx --generator "Visual Studio 17 2022" --build USDgen/build --src USDgen/src USDinst --build-args USD,"-DPXR_ENABLE_PRECOMPILED_HEADERS=OFF -DPXR_HEADLESS_TEST_MODE=ON -DPXR_BUILD_TESTS=ON" -v
179175
shell: cmd
180176
- name: Save build artifacts to cache
181177
if: steps.cache-usd-build-dependency.outputs.cache-hit != 'true'
@@ -189,4 +185,12 @@ jobs:
189185
with:
190186
name: usd-win64
191187
path: USDinst
188+
- name: Test USD
189+
working-directory: ./USDgen/build/OpenUSD
190+
run: |
191+
call set PATH=${{ github.workspace }}\USDinst\bin;${{ github.workspace }}\USDinst\lib;${{ github.workspace }}\USDinst\share\usd\examples\plugin;${{ github.workspace }}\USDinst\plugin\usd;%PATH%
192+
call set PYTHONPATH=${{ github.workspace }}\USDinst\lib\python;%PYTHONPATH%
193+
# Internal ticket USD-8035
194+
ctest -V -C Release --exclude-regex "TfPathUtils|testExecGeomXformable_Perf_Large"
195+
shell: cmd
192196

.github/workflows/pypi.yml

Lines changed: 50 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ jobs:
4040
- TAG: cp312
4141
INTERPRETER: /opt/python/cp312-cp312/bin/python
4242
VERSION_SPEC: '3.12'
43-
runs-on: ubuntu-20.04
43+
- TAG: cp313
44+
INTERPRETER: /opt/python/cp313-cp313/bin/python
45+
VERSION_SPEC: '3.13.5'
46+
runs-on: ubuntu-22.04
4447
timeout-minutes: 60
4548
steps:
4649
- name: Checkout code
@@ -54,6 +57,10 @@ jobs:
5457
run: |
5558
docker build -t manylinuxwithcmake build_scripts/pypi/docker
5659
docker run --name usdmanylinux --rm -id -v ./:/opt/USD -v /home/vsts/dist:/opt/USD-dist manylinuxwithcmake
60+
- name: Install Dependencies
61+
run: |
62+
docker exec usdmanylinux ${{ matrix.PYTHON.INTERPRETER }} -m pip install setuptools
63+
docker exec usdmanylinux ${{ matrix.PYTHON.INTERPRETER }} -m pip install wheel
5764
- name: Building USD
5865
run: |
5966
# Terrible, terrible hack. The manylinux Docker image used to build the
@@ -71,7 +78,7 @@ jobs:
7178
# PXR_PY_UNDEFINED_DYNAMIC_LOOKUP flag will ensure that we never try to
7279
# link against this library anyway, so it doesn't matter.
7380
docker exec usdmanylinux ${{ matrix.PYTHON.INTERPRETER }} -c "import pathlib,sysconfig; pathlib.Path(sysconfig.get_config_var('LIBDIR'), sysconfig.get_config_var('LDLIBRARY')).touch()"
74-
docker exec usdmanylinux ${{ matrix.PYTHON.INTERPRETER }} build_scripts/build_usd.py --build-args USD,"-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_INSTALL_LOCATION=../pxr/pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --build /opt/USD/gen/build --src /opt/USD/gen/src /opt/USD/inst -v
81+
docker exec usdmanylinux ${{ matrix.PYTHON.INTERPRETER }} build_scripts/build_usd.py --build-monolithic --build-args USD,"-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_BUILD_EXEC=OFF -DPXR_INSTALL_LOCATION=../pxr/pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --build /opt/USD/gen/build --src /opt/USD/gen/src /opt/USD/inst -v
7582
- name: Creating packaging directory
7683
run: |
7784
docker exec usdmanylinux mkdir ./packaging
@@ -115,7 +122,10 @@ jobs:
115122
- VERSION_SPEC: '3.12'
116123
INTERPRETER: python3.12
117124
TAG: cp312
118-
runs-on: macos-13
125+
- VERSION_SPEC: '3.13.5'
126+
INTERPRETER: python3.13
127+
TAG: cp313
128+
runs-on: macos-15
119129
timeout-minutes: 120
120130
steps:
121131
- name: Checkout code
@@ -132,8 +142,8 @@ jobs:
132142
${{ matrix.PYTHON.INTERPRETER }} -m pip install delocate~=0.10.2 wheel
133143
- name: Build USD
134144
run: |
135-
sudo xcode-select -s /Applications/Xcode_14.1.app/Contents/Developer
136-
${{ matrix.PYTHON.INTERPRETER }} build_scripts/build_usd.py --build-args USD,"-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_INSTALL_LOCATION=../pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --generator Xcode --build-target universal --build $GITHUB_WORKSPACE/USDgen/build --src $GITHUB_WORKSPACE/USDgen/src $GITHUB_WORKSPACE/USDinst -v
145+
sudo xcode-select -s /Applications/Xcode_16.app/Contents/Developer
146+
${{ matrix.PYTHON.INTERPRETER }} build_scripts/build_usd.py --build-monolithic --build-args USD,"-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_BUILD_EXEC=OFF -DPXR_INSTALL_LOCATION=../pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --generator Xcode --build-target universal --build $GITHUB_WORKSPACE/USDgen/build --src $GITHUB_WORKSPACE/USDgen/src $GITHUB_WORKSPACE/USDinst -v
137147
- name: Packaging USD
138148
run: |
139149
pwd
@@ -185,7 +195,9 @@ jobs:
185195
TAG: cp311
186196
- VERSION_SPEC: '3.12'
187197
TAG: cp312
188-
runs-on: windows-2019
198+
- VERSION_SPEC: '3.13.5'
199+
TAG: cp313
200+
runs-on: windows-2022
189201
timeout-minutes: 60
190202
steps:
191203
- name: Checkout code
@@ -202,10 +214,10 @@ jobs:
202214
shell: cmd
203215
- name: Build USD
204216
run: |
205-
call C:\"Program Files (x86)"\"Microsoft Visual Studio"\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat
217+
call C:\"Program Files (x86)"\"Microsoft Visual Studio"\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
206218
set BOOST_ROOT=
207219
python --version
208-
python build_scripts/build_usd.py --build-args USD,"-DPXR_ENABLE_PRECOMPILED_HEADERS=OFF -DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_INSTALL_LOCATION=../pxr/pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --build USDgen/build --src USDgen/src USDinst -v
220+
python build_scripts/build_usd.py --build-monolithic --build-args USD,"-DPXR_ENABLE_PRECOMPILED_HEADERS=OFF -DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON -DPXR_BUILD_USD_TOOLS=OFF -DPXR_BUILD_EXEC=OFF -DPXR_INSTALL_LOCATION=../pxr/pluginfo" --no-materialx --no-imaging --no-examples --no-tutorials --build USDgen/build --src USDgen/src USDinst -v
209221
shell: cmd
210222
- name: Packaging USD
211223
run: |
@@ -257,63 +269,75 @@ jobs:
257269
BUILD_CONFIG:
258270
- NAME: Linux_Python38
259271
PYTHON_VERSION_SPEC: '3.8'
260-
IMAGE: ubuntu-20.04
272+
IMAGE: ubuntu-22.04
261273
PYTHON_INTERPRETER: python3
262274
- NAME: Linux_Python39
263275
PYTHON_VERSION_SPEC: '3.9'
264-
IMAGE: ubuntu-20.04
276+
IMAGE: ubuntu-22.04
265277
PYTHON_INTERPRETER: python3
266278
- NAME: Linux_Python310
267279
PYTHON_VERSION_SPEC: '3.10'
268-
IMAGE: ubuntu-20.04
280+
IMAGE: ubuntu-22.04
269281
PYTHON_INTERPRETER: python3
270282
- NAME: Linux_Python311
271283
PYTHON_VERSION_SPEC: '3.11'
272-
IMAGE: ubuntu-20.04
284+
IMAGE: ubuntu-22.04
273285
PYTHON_INTERPRETER: python3
274286
- NAME: Linux_Python312
275287
PYTHON_VERSION_SPEC: '3.12'
276-
IMAGE: ubuntu-20.04
288+
IMAGE: ubuntu-22.04
289+
PYTHON_INTERPRETER: python3
290+
- NAME: Linux_Python313
291+
PYTHON_VERSION_SPEC: '3.13.5'
292+
IMAGE: ubuntu-22.04
277293
PYTHON_INTERPRETER: python3
278294
- NAME: Mac_Python38
279295
PYTHON_VERSION_SPEC: '3.8'
280-
IMAGE: macos-13
281-
PYTHON_INTERPRETER: python3
296+
IMAGE: macos-15
297+
PYTHON_INTERPRETER: python3
282298
- NAME: Mac_Python39
283299
PYTHON_VERSION_SPEC: '3.9'
284-
IMAGE: macos-13
300+
IMAGE: macos-15
285301
PYTHON_INTERPRETER: python3
286302
- NAME: Mac_Python310
287303
PYTHON_VERSION_SPEC: '3.10'
288-
IMAGE: macos-13
289-
PYTHON_INTERPRETER: python3
304+
IMAGE: macos-15
305+
PYTHON_INTERPRETER: python3
290306
- NAME: Mac_Python311
291307
PYTHON_VERSION_SPEC: '3.11'
292-
IMAGE: macos-13
308+
IMAGE: macos-15
293309
PYTHON_INTERPRETER: python3
294310
- NAME: Mac_Python312
295311
PYTHON_VERSION_SPEC: '3.12'
296-
IMAGE: macos-13
297-
PYTHON_INTERPRETER: python3
312+
IMAGE: macos-15
313+
PYTHON_INTERPRETER: python3
314+
- NAME: Mac_Python313
315+
PYTHON_VERSION_SPEC: '3.13.5'
316+
IMAGE: macos-15
317+
PYTHON_INTERPRETER: python3
298318
- NAME: Windows_Python38
299319
PYTHON_VERSION_SPEC: '3.8'
300-
IMAGE: windows-2019
320+
IMAGE: windows-2022
301321
PYTHON_INTERPRETER: python3
302322
- NAME: Windows_Python39
303323
PYTHON_VERSION_SPEC: '3.9'
304-
IMAGE: windows-2019
324+
IMAGE: windows-2022
305325
PYTHON_INTERPRETER: python3
306326
- NAME: Windows_Python310
307327
PYTHON_VERSION_SPEC: '3.10'
308-
IMAGE: windows-2019
328+
IMAGE: windows-2022
309329
PYTHON_INTERPRETER: python3
310330
- NAME: Windows_Python311
311331
PYTHON_VERSION_SPEC: '3.11'
312-
IMAGE: windows-2019
332+
IMAGE: windows-2022
313333
PYTHON_INTERPRETER: python3
314334
- NAME: Windows_Python312
315335
PYTHON_VERSION_SPEC: '3.12'
316-
IMAGE: windows-2019
336+
IMAGE: windows-2022
337+
PYTHON_INTERPRETER: python3
338+
- NAME: Windows_Python313
339+
PYTHON_VERSION_SPEC: '3.13.5'
340+
IMAGE: windows-2022
317341
PYTHON_INTERPRETER: python3
318342
runs-on: ${{ matrix.BUILD_CONFIG.IMAGE }}
319343
steps:

BUILDING.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,26 @@ ${CMAKE_BINARY_DIR}/Testing/Failed-Diffs/<ctest_run_timestamp>/${TEST_NAME}/${fi
393393

394394
## Other Build Options
395395

396+
##### Custom Task Management System
397+
398+
USD uses task-based parallelism to improve scalability and performance. This foundation for this is located in the
399+
"work" library in pxr/base/work. By default, this library is implemented using the Intel TBB or oneAPI oneTBB
400+
library.
401+
402+
Users may substitute their own task management system by providing a custom implementation for the work library.
403+
To do so, set the cmake variable `PXR_WORK_IMPL` to the name of the CMake package providing the custom implementation.
404+
USD must be able to locate a package with that name via a call to `find_package(${PXR_WORK_IMPL}` CONFIG)`, which
405+
may require specifying additional CMake variables. The package must provide a library target named
406+
`${PXR_WORK_IMPL}::${PXR_WORK_IMPL}` that specifies interface definitions (include directories, shared libraries,
407+
etc.) needed to use that library. The library must implement the required functions and classes and have a header
408+
named `impl.h` that supplies their declarations (either directly or in header files included in `impl.h`). This
409+
header must be able to be included via `#include <${PXR_WORK_IMPL}/impl.h>`.
410+
411+
For example, a custom work implementation named `workExample` must provide a `workExampleConfig.cmake` file
412+
specifying a library target named `workExample::workExample`. This library must at minimum provide an `impl.h`
413+
header with the required implementations and set up interface include directories so that the header can
414+
be located via an include statement like `#include <workExample/impl.h>`.
415+
396416
##### Plugin Metadata Location
397417

398418
Each library in the USD core generally has an associated file named 'plugInfo.json' that contains metadata about that library,

0 commit comments

Comments
 (0)