Skip to content

usd-core: Add version 26.8 - #2145

Merged
luhenry merged 1 commit into
mainfrom
usd-core
Sep 21, 2026
Merged

luhenry merged 1 commit into
mainfrom
usd-core

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026 •

Copy link
Copy Markdown
Member

Compiles OpenUSD's core C++ libraries and their pxr Python bindings — imaging, MaterialX, examples and tutorials off, so no OpenGL, Vulkan, Metal or X11 is involved. Upstream publishes no riscv64 wheel.

Mirrors upstream's pypi.yml Linux job, including its dummy-libpython workaround and build_scripts/pypi/{setup.py,updatePluginfos.py}.

Differs from upstream

  • Builds from the v26.08 tag rather than a branch — there is no usd-core sdist on PyPI.
  • Runs build_usd.py in the riscv64 manylinux image directly, not upstream's manylinux_2_28_x86_64 Dockerfile.

Matrix: cp312/cp313/cp314 — upstream ships cp39-cp314 and no free-threaded wheel, and the vendored pxr_boost::python bindings never declare Py_mod_gil.

Testing

  • same as upstream, plus an import of every pxr submodule to exercise the monolithic library.

License: Wheel bundles TBB 2020.3.1 (Apache-2.0); upstream ships no licence text for it, so the build adds it.

Patches

  • 0001-Support-riscv64-in-pxr-base-arch.patch — Upstream-Status: To upstream, needs a PR against PixarAnimationStudios/OpenUSD. Without it pxr/base/arch/defines.h fails every translation unit with #error "Unsupported architecture. x86_64 or ARM64 required.", and arch/math.h and arch/stackTrace.cpp carry the same x86/ARM-only gates. riscv64-only.

Built on cp312, cp313 and cp314; 3 passed, 31 pxr modules imported.

Builds Pixar's OpenUSD core libraries and their pxr Python bindings for
riscv64, the same configuration upstream publishes as the usd-core wheel:
build_usd.py with imaging, MaterialX, examples and tutorials off, so nothing
in the wheel touches OpenGL, Vulkan, Metal or X11 - every GPU find_package in
cmake/defaults/Packages.cmake sits inside if (PXR_BUILD_IMAGING). There is no
usd-core sdist on PyPI, so the workflow builds from the v26.08 tag the way
upstream's pypi.yml does, including its dummy-libpython workaround for the
manylinux image.

The Python bindings need no external Boost: since 24.11 USD vendors its own
Boost.Python fork at pxr/external/boost/python, and PXR_USE_BOOST_PYTHON is
gone from 26.08 entirely. TBB 2020.3.1 - the only dependency build_usd.py
compiles for a core build - needs no help on riscv64: its makefiles fall back
to uname -m for the arch name and to lin64 for the export list, and
tbb_machine.h picks machine/gcc_generic.h from GCC's builtin atomics.

One patch is required, for pxr/base/arch: defines.h stops the build outright
with "Unsupported architecture.  x86_64 or ARM64 required.", and once that is
past, math.h and stackTrace.cpp have the same shape of x86/ARM-only gate.
luhenry added a commit that referenced this pull request Sep 21, 2026
… build, vendored pxr_boost::python, one arch patch
@github-actions

github-actions Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-21 08:13 UTC

luhenry added a commit that referenced this pull request Sep 21, 2026
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 07:32
@luhenry
luhenry merged commit 651b769 into main Sep 21, 2026
11 checks passed
@luhenry
luhenry deleted the usd-core branch September 21, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant