Skip to content

v24.8.10

Compare
Choose a tag to compare
@furby-tm furby-tm released this 29 Nov 15:27
· 71 commits to main since this release
2e3bc87

What's New

🎧swift on.

SwiftUSD v24.8.10

Add support for creating instances of UsdImagingGL.Engine from Swift.

Changelog

  • Temporarily remove the bundled stdlib shader resources from MaterialX, due to the metal shader compilation in Swift Bundler not yet being able to compile metal shaders contextualized within their source code tree, currently it's limited to just compiling them one by one (without any source code context, so includes within metal shaders and things fail until we get around to supporting that in the bundler).

    • Adds an additional patch to ensure the MXResources/libraries directory is fully excluded in SwiftPM, else errors to compile the shaders may still occur in some instances.
  • Add Swift support for UsdImagingGL.Engine.

  • Add Swift support for Gf.Frustum.

  • Fix various Microsoft Windows compilation errors, nearly bringing support for Microsoft Windows, all of the C/C++ side successfully builds, there's just a couple places where Swift/C++ interop on windows does not like the fact that smart pointers are used on types also marked with SWIFT_IMMORTAL_REFERENCE (also known as reference pointers), which allegedly "is not currently supported in C++ interop", however Swift currently supports this just fine on all other platforms (all Darwin platforms as well as on Linux), so this needs revisiting.

  • Bring over the main USD imaging libraries to Swift.

    • HdAr
    • HdMtlx
    • HdSi
    • HdSt
    • Hdx
    • UsdImaging
    • UsdImagingGL

Thank you, to those who make great things possible.


Usage

To use this release of Pixar's USD in your swift project, add the following to the dependencies section in your Package.swift file:

// swift-tools-version: 5.10

dependencies: [
  .package(url: "/~https://github.com/wabiverse/SwiftUSD.git", from: "24.8.10")
]

The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.



Linux

For Linux, these are the only dependencies required, as MetaverseKit provides everything else.

Tip

If you are on a distro like Ubuntu there is a good chance you already have most of these installed.

Important

If you have installed TBB on your Linux system, it will break the entire std library on Linux, so you must ensure you do not have TBB installed on your system via (ex. sudo apt remove libtbb-dev), (pending this PR to Swift to fix this).

Dependency CentOS Ubuntu
Boost boost-devel libboost-all-dev
Python python3-devel python3-dev
BZ2 bzip2-devel libbz2-dev
ZLib zlib-devel zlib1g-dev
FreeGLUT freeglut-devel freeglut3-dev
DEFLATE libdeflate-devel libdeflate-dev
Expat libexpat-devel libexpat1-dev
Xcursor libXcursor-devel libxcursor-dev
Xt libXt-devel libxt-dev
Xi libXi-devel libxi-dev
Xinerama libXinerama-devel libxinerama-dev
Xrandr libXrandr-devel libxrandr-dev