[usd] Update to 25.05.01 (#46042)

This commit is contained in:
Aleksi Sapon 2025-06-19 16:49:07 -04:00 committed by GitHub
parent 7a10fb5f43
commit 32e3e6cdfc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 139 additions and 223 deletions

View File

@ -1,43 +0,0 @@
diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in
index b26f1ea31..afe3dc448 100644
--- a/pxr/pxrConfig.cmake.in
+++ b/pxr/pxrConfig.cmake.in
@@ -16,6 +16,8 @@ set(PXR_MINOR_VERSION "@PXR_MINOR_VERSION@")
set(PXR_PATCH_VERSION "@PXR_PATCH_VERSION@")
set(PXR_VERSION "@PXR_VERSION@")
+include(CMakeFindDependencyMacro)
+
# If Python support was enabled for this USD build, find the import
# targets by invoking the appropriate FindPython module. Use the same
# LIBRARY and INCLUDE_DIR settings from the original build if they
@@ -41,9 +43,9 @@ if(@PXR_ENABLE_PYTHON_SUPPORT@)
endif()
if (NOT DEFINED Python3_VERSION)
- find_package(Python3 "@Python3_VERSION@" EXACT COMPONENTS Development REQUIRED)
+ find_dependency(Python3 "@Python3_VERSION@" EXACT COMPONENTS Development)
else()
- find_package(Python3 COMPONENTS Development REQUIRED)
+ find_dependency(Python3 COMPONENTS Development)
endif()
endif()
@@ -57,7 +59,7 @@ if(@PXR_ENABLE_MATERIALX_SUPPORT@)
set(MaterialX_DIR [[@MaterialX_DIR@]])
endif()
endif()
- find_package(MaterialX REQUIRED)
+ find_dependency(MaterialX)
endif()
# Similar to MaterialX above, we are using Imath's cmake package config, so set
@@ -71,7 +73,7 @@ if(@Imath_FOUND@)
set(Imath_DIR [[@Imath_DIR@]])
endif()
endif()
- find_package(Imath REQUIRED)
+ find_dependency(Imath)
endif()
include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake")

View File

@ -1,27 +0,0 @@
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
index fe60570b3..ccaabe765 100644
--- a/cmake/defaults/Packages.cmake
+++ b/cmake/defaults/Packages.cmake
@@ -137,7 +137,8 @@ endif()
# --TBB
-find_package(TBB REQUIRED COMPONENTS tbb)
+find_package(TBB CONFIG REQUIRED)
+set(TBB_tbb_LIBRARY TBB::tbb)
add_definitions(${TBB_DEFINITIONS})
# --math
diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in
index afe3dc448..041cd8cba 100644
--- a/pxr/pxrConfig.cmake.in
+++ b/pxr/pxrConfig.cmake.in
@@ -18,6 +18,8 @@ set(PXR_VERSION "@PXR_VERSION@")
include(CMakeFindDependencyMacro)
+find_dependency(TBB CONFIG)
+
# If Python support was enabled for this USD build, find the import
# targets by invoking the appropriate FindPython module. Use the same
# LIBRARY and INCLUDE_DIR settings from the original build if they

View File

@ -2,7 +2,20 @@ diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
index 1b69cad..9494278 100644
--- a/cmake/defaults/Packages.cmake
+++ b/cmake/defaults/Packages.cmake
@@ -190,7 +190,8 @@ if (PXR_BUILD_IMAGING)
@@ -178,7 +178,12 @@ if (PXR_BUILD_IMAGING)
if (POLICY CMP0072)
cmake_policy(SET CMP0072 OLD)
endif()
+ set(previous_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+ if(APPLE) # Must find Apple OpenGL, not XQuartz OpenGL
+ set(CMAKE_FIND_FRAMEWORK FIRST)
+ endif()
find_package(OpenGL REQUIRED)
+ set(CMAKE_FIND_FRAMEWORK ${previous_CMAKE_FIND_FRAMEWORK})
add_definitions(-DPXR_GL_SUPPORT_ENABLED)
endif()
# --Metal
@@ -155,7 +160,8 @@ if (PXR_BUILD_IMAGING)
# --OpenImageIO
if (PXR_BUILD_OPENIMAGEIO_PLUGIN)
set(REQUIRES_Imath TRUE)
@ -12,50 +25,40 @@ index 1b69cad..9494278 100644
add_definitions(-DPXR_OIIO_PLUGIN_ENABLED)
if (OIIO_idiff_BINARY)
set(IMAGE_DIFF_TOOL ${OIIO_idiff_BINARY} CACHE STRING "Uses idiff for image diffing")
@@ -227,6 +228,7 @@ if (PXR_BUILD_IMAGING)
find_package(Vulkan REQUIRED)
list(APPEND VULKAN_LIBS Vulkan::Vulkan)
@@ -189,4 +195,4 @@ if (PXR_BUILD_IMAGING)
- if (EXISTS $ENV{VULKAN_SDK})
+ if (0)
# Prioritize the VULKAN_SDK includes and packages before any system
# installed headers. This is to prevent linking against older SDKs
# that may be installed by the OS.
@@ -215,8 +221,14 @@ if (PXR_BUILD_IMAGING)
endif()
+ if(0)
# Find the extra vulkan libraries we need
set(EXTRA_VULKAN_LIBS shaderc_combined)
if (WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
@@ -236,6 +238,7 @@ if (PXR_BUILD_IMAGING)
find_library("${EXTRA_LIBRARY}_PATH" NAMES "${EXTRA_LIBRARY}" PATHS $ENV{VULKAN_SDK}/lib)
list(APPEND VULKAN_LIBS "${${EXTRA_LIBRARY}_PATH}")
endforeach()
+ endif()
# Find the OS specific libs we need
if (UNIX AND NOT APPLE)
@@ -249,10 +252,20 @@ if (PXR_BUILD_IMAGING)
else()
message(FATAL_ERROR "VULKAN_SDK not valid")
add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
- else()
- message(FATAL_ERROR "VULKAN_SDK not valid")
endif()
+ find_package(Vulkan REQUIRED)
+ find_package(unofficial-shaderc CONFIG REQUIRED)
+ find_package(unofficial-spirv-reflect CONFIG REQUIRED)
+ find_package(VulkanMemoryAllocator CONFIG REQUIRED)
+ list(APPEND VULKAN_LIBS Vulkan::Vulkan)
+ list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc)
+ list(APPEND VULKAN_LIBS unofficial::spirv-reflect)
+ list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator)
endif()
# --Opensubdiv
- set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT})
- find_package(OpenSubdiv 3 REQUIRED)
+ find_package(OpenSubdiv 3 CONFIG REQUIRED)
+ set(OPENSUBDIV_LIBRARIES OpenSubdiv::osdCPU_static)
+ set(OPENSUBDIV_OSDCPU_LIBRARY OpenSubdiv::osdCPU_static) # For compatibility
+ if(PXR_ENABLE_GL_SUPPORT)
+ list(APPEND OPENSUBDIV_LIBRARIES OpenSubdiv::osdGPU_static)
+ endif()
# --Ptex
if (PXR_ENABLE_PTEX_SUPPORT)
find_package(PTex REQUIRED)
diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt
index 97e4228..3eb83be 100644
index 00ad75448..dff475436 100644
--- a/pxr/imaging/hgiVulkan/CMakeLists.txt
+++ b/pxr/imaging/hgiVulkan/CMakeLists.txt
@@ -46,8 +46,6 @@ pxr_library(hgiVulkan
@@ -40,14 +40,11 @@ pxr_library(hgiVulkan
shaderProgram
shaderSection
texture
- vk_mem_alloc
PUBLIC_HEADERS
api.h
vulkan.h
@ -64,6 +67,46 @@ index 97e4228..3eb83be 100644
RESOURCE_FILES
plugInfo.json
diff --git a/pxr/imaging/hgiVulkan/shaderCompiler.cpp b/pxr/imaging/hgiVulkan/shaderCompiler.cpp
index cb527e4d7..ee8e3be25 100644
--- a/pxr/imaging/hgiVulkan/shaderCompiler.cpp
+++ b/pxr/imaging/hgiVulkan/shaderCompiler.cpp
@@ -10,7 +10,7 @@
#include "pxr/imaging/hgiVulkan/device.h"
#include "pxr/imaging/hgiVulkan/diagnostic.h"
#include "pxr/imaging/hgiVulkan/shaderCompiler.h"
-#include "pxr/imaging/hgiVulkan/spirv_reflect.h"
+#include <spirv_reflect.h>
#include <shaderc/shaderc.hpp>
diff --git a/pxr/imaging/hgiVulkan/device.cpp b/pxr/imaging/hgiVulkan/device.cpp
index 08bf8e0a7..bfc368169 100644
--- a/pxr/imaging/hgiVulkan/device.cpp
+++ b/pxr/imaging/hgiVulkan/device.cpp
@@ -11,7 +11,8 @@
#include "pxr/imaging/hgiVulkan/hgi.h"
#include "pxr/imaging/hgiVulkan/instance.h"
#include "pxr/imaging/hgiVulkan/pipelineCache.h"
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
+#define VMA_IMPLEMENTATION
+#include <vk_mem_alloc.h>
#include "pxr/base/tf/diagnostic.h"
diff --git a/pxr/imaging/hgiVulkan/vulkan.h b/pxr/imaging/hgiVulkan/vulkan.h
index 1f527b9cb..b5ffd314f 100644
--- a/pxr/imaging/hgiVulkan/vulkan.h
+++ b/pxr/imaging/hgiVulkan/vulkan.h
@@ -24,7 +24,7 @@
#include <vulkan/vulkan.h>
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
+#include <vk_mem_alloc.h>
// Use the default allocator (nullptr)
inline VkAllocationCallbacks*
diff --git a/pxr/imaging/plugin/hioOiio/CMakeLists.txt b/pxr/imaging/plugin/hioOiio/CMakeLists.txt
index 0a055b7..de4b73a 100644
--- a/pxr/imaging/plugin/hioOiio/CMakeLists.txt
@ -85,15 +128,14 @@ index 0a055b7..de4b73a 100644
pxr_plugin(hioOiio
LIBRARIES
diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in
index 041cd8c..2f89d69 100644
index a7e566bac..559f50b9c 100644
--- a/pxr/pxrConfig.cmake.in
+++ b/pxr/pxrConfig.cmake.in
@@ -20,6 +20,27 @@ include(CMakeFindDependencyMacro)
@@ -18,6 +18,26 @@ set(PXR_VERSION "@PXR_VERSION@")
find_dependency(TBB CONFIG)
include(CMakeFindDependencyMacro)
+if(@PXR_BUILD_IMAGING@)
+ find_dependency(OpenSubdiv 3 CONFIG)
+ if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@)
+ find_dependency(OpenImageIO CONFIG)
+ endif()
@ -116,7 +158,7 @@ index 041cd8c..2f89d69 100644
# If Python support was enabled for this USD build, find the import
# targets by invoking the appropriate FindPython module. Use the same
# LIBRARY and INCLUDE_DIR settings from the original build if they
@@ -75,17 +96,17 @@ if(@Imath_FOUND@)
@@ -75,17 +95,17 @@ if(@Imath_FOUND@)
set(Imath_DIR [[@Imath_DIR@]])
endif()
endif()

View File

@ -1,51 +0,0 @@
diff --git a/pxr/base/work/dispatcher.cpp b/pxr/base/work/dispatcher.cpp
index 8cc8dbb..74fba2d 100644
--- a/pxr/base/work/dispatcher.cpp
+++ b/pxr/base/work/dispatcher.cpp
@@ -31,11 +31,18 @@ WorkDispatcher::WorkDispatcher()
}
#if TBB_INTERFACE_VERSION_MAJOR >= 12
+#if TBB_VERSION_MAJOR >= 2022
+inline tbb::detail::d1::wait_context_vertex&
+WorkDispatcher::_TaskGroup::_GetInternalWaitContext() {
+ return m_wait_vertex;
+}
+#else
inline tbb::detail::d1::wait_context&
WorkDispatcher::_TaskGroup::_GetInternalWaitContext() {
return m_wait_ctx;
}
#endif
+#endif
WorkDispatcher::~WorkDispatcher() noexcept
{
@@ -54,7 +61,11 @@ WorkDispatcher::Wait()
// The native task_group::wait() has a comment saying its call to the
// context reset method is not thread safe. So we do our own
// synchronization to ensure it is called once.
+#if TBB_VERSION_MAJOR >= 2022
+ tbb::detail::d1::wait(_taskGroup._GetInternalWaitContext().get_context(), _context);
+#else
tbb::detail::d1::wait(_taskGroup._GetInternalWaitContext(), _context);
+#endif
#else
_rootTask->wait_for_all();
#endif
diff --git a/pxr/base/work/dispatcher.h b/pxr/base/work/dispatcher.h
index b35bcd8..7d24165 100644
--- a/pxr/base/work/dispatcher.h
+++ b/pxr/base/work/dispatcher.h
@@ -199,7 +199,11 @@ private:
class _TaskGroup : public tbb::task_group {
public:
_TaskGroup(tbb::task_group_context& ctx) : tbb::task_group(ctx) {}
+#if TBB_VERSION_MAJOR >= 2022
+ inline tbb::detail::d1::wait_context_vertex& _GetInternalWaitContext();
+ #else
inline tbb::detail::d1::wait_context& _GetInternalWaitContext();
+ #endif
};
_TaskGroup _taskGroup;

View File

@ -1,28 +0,0 @@
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
index 9494278..473bb62 100644
--- a/cmake/defaults/Packages.cmake
+++ b/cmake/defaults/Packages.cmake
@@ -218,13 +218,6 @@ if (PXR_BUILD_IMAGING)
endif()
if (PXR_ENABLE_VULKAN_SUPPORT)
message(STATUS "Enabling experimental feature Vulkan support")
- if (EXISTS $ENV{VULKAN_SDK})
- # Prioritize the VULKAN_SDK includes and packages before any system
- # installed headers. This is to prevent linking against older SDKs
- # that may be installed by the OS.
- # XXX This is fixed in cmake 3.18+
- include_directories(BEFORE SYSTEM $ENV{VULKAN_SDK} $ENV{VULKAN_SDK}/include $ENV{VULKAN_SDK}/lib $ENV{VULKAN_SDK}/source)
- set(ENV{PATH} "$ENV{VULKAN_SDK}:$ENV{VULKAN_SDK}/include:$ENV{VULKAN_SDK}/lib:$ENV{VULKAN_SDK}/source:$ENV{PATH}")
find_package(Vulkan REQUIRED)
list(APPEND VULKAN_LIBS Vulkan::Vulkan)
@@ -249,9 +242,6 @@ if (PXR_BUILD_IMAGING)
endif()
add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
- else()
- message(FATAL_ERROR "VULKAN_SDK not valid")
- endif()
find_package(unofficial-shaderc CONFIG REQUIRED)
find_package(unofficial-spirv-reflect CONFIG REQUIRED)
find_package(VulkanMemoryAllocator CONFIG REQUIRED)

View File

@ -0,0 +1,13 @@
diff --git a/pxr/imaging/plugin/hioOiio/oiioImage.cpp b/pxr/imaging/plugin/hioOiio/oiioImage.cpp
index ad08cb5e1..0e27b9180 100644
--- a/pxr/imaging/plugin/hioOiio/oiioImage.cpp
+++ b/pxr/imaging/plugin/hioOiio/oiioImage.cpp
@@ -810,7 +810,7 @@ HioOIIO_Image::Write(StorageSpec const & storage,
}
// Read from storage
- ImageBuf src(_filename, spec, storage.data);
+ ImageBuf src(spec, storage.data);
ImageBuf *image = &src;
// Flip top-to-bottom

View File

@ -4,56 +4,53 @@ set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)
# Proper support for a true static usd build is left as a future port improvement.
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
string(REGEX REPLACE "^([0-9]+)[.]([0-9])\$" "\\1.0\\2" USD_VERSION "${VERSION}")
# zero-pad version components to two digits
string(REPLACE "." ";" version_components ${VERSION})
foreach(component IN LISTS version_components)
string(LENGTH ${component} component_length)
if(component_length LESS 2)
list(APPEND USD_VERSION "0${component}")
else()
list(APPEND USD_VERSION "${component}")
endif()
endforeach()
string(JOIN "." USD_VERSION ${USD_VERSION})
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO PixarAnimationStudios/OpenUSD
REF "v${USD_VERSION}"
SHA512 23f5a40c67ce0566cbb61a60a8d14ebb9fde5de0fb4921031f4d4eeb3a5a86d624955840f9f49ee36f32abc48e869d4910073189716e73ba997bb80f1e781d9b
SHA512 66bf75486f09dce7085c5c80cc3e005c02c1dfbbfbd02c8e2e8fd9498030ca49cd6bc0a9b9db930d0559c745cf77ebaf822018de4bf798cce84fdf0aa89f0d84
HEAD_REF release
PATCHES
001-fix_rename_find_package_to_find_dependency.patch # See PixarAnimationStudios/OpenUSD#3205
002-vcpkg_find_tbb.patch # See PixarAnimationStudios/OpenUSD#3207
003-fix-dep.patch
004-fix_cmake_package.patch
007-fix_cmake_hgi_interop.patch
008-fix_clang8_compiler_error.patch
009-vcpkg_install_folder_conventions.patch
010-cmake_export_plugin_as_modules.patch
011-TBB-2022.patch
012-fix-find-vulkan.patch
013-openimageio-3.patch
)
# Changes accompanying 006-vcpkg_find_spirv-reflect.patch
vcpkg_replace_string("${SOURCE_PATH}/pxr/imaging/hgiVulkan/shaderCompiler.cpp"
[[#include "pxr/imaging/hgiVulkan/spirv_reflect.h"]]
[[#include <spirv_reflect.h>]]
)
# Changes accompanying 003-fix-dep.patch
file(REMOVE
"${SOURCE_PATH}/cmake/modules/FindOpenColorIO.cmake"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/spirv_reflect.cpp"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/spirv_reflect.h"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.h"
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
imaging PXR_BUILD_IMAGING
imaging PXR_BUILD_USD_IMAGING
imaging PXR_ENABLE_GL_SUPPORT
materialx PXR_ENABLE_MATERIALX_SUPPORT
metal PXR_ENABLE_METAL_SUPPORT
openimageio PXR_BUILD_OPENIMAGEIO_PLUGIN
vulkan PXR_ENABLE_VULKAN_SUPPORT
)
if (PXR_ENABLE_MATERIALX_SUPPORT)
list(APPEND FEATURE_OPTIONS "-DMaterialX_DIR=${CURRENT_INSTALLED_DIR}/share/materialx")
endif()
# hgiInterop Metal and Vulkan backend requires garch which is only enabled if PXR_ENABLE_GL_SUPPORT is ON
if(PXR_ENABLE_VULKAN_SUPPORT OR PXR_ENABLE_METAL_SUPPORT)
list(APPEND FEATURE_OPTIONS "-DPXR_ENABLE_GL_SUPPORT:BOOL=ON")
else()
list(APPEND FEATURE_OPTIONS "-DPXR_ENABLE_GL_SUPPORT:BOOL=OFF")
endif()
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${FEATURE_OPTIONS}
@ -68,15 +65,10 @@ vcpkg_cmake_configure(
-DPXR_BUILD_EMBREE_PLUGIN:BOOL=OFF
-DPXR_BUILD_PRMAN_PLUGIN:BOOL=OFF
-DPXR_BUILD_IMAGING:BOOL=ON
-DPXR_BUILD_USD_IMAGING:BOOL=ON
-DPXR_ENABLE_OPENVDB_SUPPORT:BOOL=OFF
-DPXR_ENABLE_PTEX_SUPPORT:BOOL=OFF
-DPXR_PREFER_SAFETY_OVER_SPEED:BOOL=ON
-DPXR_ENABLE_PRECOMPILED_HEADERS:BOOL=OFF
-DPXR_PREFER_SAFETY_OVER_SPEED:BOOL=ON
-DPXR_ENABLE_PYTHON_SUPPORT:BOOL=OFF
-DPXR_USE_DEBUG_PYTHON:BOOL=OFF

View File

@ -1,12 +1,11 @@
{
"name": "usd",
"version": "25.2",
"version": "25.5.1",
"description": "Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications.",
"homepage": "https://github.com/PixarAnimationStudios/OpenUSD",
"license": null,
"supports": "!x86 & !(arm & windows) & !android",
"dependencies": [
"opensubdiv",
"tbb",
{
"name": "vcpkg-cmake",
@ -19,6 +18,22 @@
"zlib"
],
"features": {
"imaging": {
"description": "Enable the imaging components",
"dependencies": [
"opengl",
{
"name": "opensubdiv",
"default-features": false,
"features": [
{
"name": "opengl",
"platform": "!osx & !ios"
}
]
}
]
},
"materialx": {
"description": "Enable MaterialX support",
"dependencies": [
@ -31,10 +46,6 @@
}
]
},
"metal": {
"description": "Enable Metal based components",
"supports": "osx"
},
"openimageio": {
"description": "Build OpenImageIO plugin",
"dependencies": [
@ -43,6 +54,7 @@
},
"vulkan": {
"description": "Enable Vulkan based components",
"supports": "!ios",
"dependencies": [
"opengl",
{
@ -55,7 +67,8 @@
"shaderc",
"spirv-reflect",
"vulkan",
"vulkan-memory-allocator"
"vulkan-memory-allocator",
"vulkan-utility-libraries"
]
}
}

View File

@ -9717,7 +9717,7 @@
"port-version": 1
},
"usd": {
"baseline": "25.2",
"baseline": "25.5.1",
"port-version": 0
},
"usearch": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "505c48b1d08309a49850738008e153d2a60dadce",
"version": "25.5.1",
"port-version": 0
},
{
"git-tree": "401164908209b419a563d71280901e006ba429fb",
"version": "25.2",