From 6de717b75b8326f6d004984f14ae5bbbd86c928d Mon Sep 17 00:00:00 2001 From: jim wang <122244446+jimwang118@users.noreply.github.com> Date: Thu, 19 Dec 2024 21:22:45 +0000 Subject: [PATCH] [usd] update to 24.11 (#41864) --- ports/usd/003-fix-dep.patch | 139 ++++++++++++++++++ ports/usd/003-vcpkg_find_opensubdiv.patch | 34 ----- ...kage.patch => 004-fix_cmake_package.patch} | 25 +--- ports/usd/004-vcpkg_find_openimageio.patch | 57 ------- ...-39.patch => 005-MaterialX_v1.38-39.patch} | 64 ++++---- ports/usd/005-vcpkg_find_shaderc.patch | 43 ------ ports/usd/006-vcpkg_find_spirv-reflect.patch | 40 ----- ....patch => 007-fix_cmake_hgi_interop.patch} | 0 ports/usd/007-vcpkg_find_vma.patch | 27 ---- ...ch => 008-fix_clang8_compiler_error.patch} | 0 ...09-vcpkg_install_folder_conventions.patch} | 0 ... 010-cmake_export_plugin_as_modules.patch} | 0 ...0-fix_missing_find_dependency_vulkan.patch | 17 --- ...{016-TBB-2022.patch => 011-TBB-2022.patch} | 0 ports/usd/012-fix-find-vulkan.patch | 28 ++++ ...5-fix_missing_find_dependency_opengl.patch | 14 -- ports/usd/portfile.cmake | 31 ++-- ports/usd/vcpkg.json | 3 +- versions/baseline.json | 4 +- versions/u-/usd.json | 5 + 20 files changed, 229 insertions(+), 302 deletions(-) create mode 100644 ports/usd/003-fix-dep.patch delete mode 100644 ports/usd/003-vcpkg_find_opensubdiv.patch rename ports/usd/{008-fix_cmake_package.patch => 004-fix_cmake_package.patch} (57%) delete mode 100644 ports/usd/004-vcpkg_find_openimageio.patch rename ports/usd/{014-MaterialX_v1.38-39.patch => 005-MaterialX_v1.38-39.patch} (91%) delete mode 100644 ports/usd/005-vcpkg_find_shaderc.patch delete mode 100644 ports/usd/006-vcpkg_find_spirv-reflect.patch rename ports/usd/{009-fix_cmake_hgi_interop.patch => 007-fix_cmake_hgi_interop.patch} (100%) delete mode 100644 ports/usd/007-vcpkg_find_vma.patch rename ports/usd/{011-fix_clang8_compiler_error.patch => 008-fix_clang8_compiler_error.patch} (100%) rename ports/usd/{012-vcpkg_install_folder_conventions.patch => 009-vcpkg_install_folder_conventions.patch} (100%) rename ports/usd/{013-cmake_export_plugin_as_modules.patch => 010-cmake_export_plugin_as_modules.patch} (100%) delete mode 100644 ports/usd/010-fix_missing_find_dependency_vulkan.patch rename ports/usd/{016-TBB-2022.patch => 011-TBB-2022.patch} (100%) create mode 100644 ports/usd/012-fix-find-vulkan.patch delete mode 100644 ports/usd/015-fix_missing_find_dependency_opengl.patch diff --git a/ports/usd/003-fix-dep.patch b/ports/usd/003-fix-dep.patch new file mode 100644 index 0000000000..8abd30dbff --- /dev/null +++ b/ports/usd/003-fix-dep.patch @@ -0,0 +1,139 @@ +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) + # --OpenImageIO + if (PXR_BUILD_OPENIMAGEIO_PLUGIN) + set(REQUIRES_Imath TRUE) +- find_package(OpenImageIO REQUIRED) ++ find_package(OpenImageIO CONFIG REQUIRED) ++ set(OIIO_LIBRARIES OpenImageIO::OpenImageIO) + 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) + ++ 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") + endif() ++ find_package(unofficial-shaderc CONFIG REQUIRED) ++ find_package(unofficial-spirv-reflect CONFIG REQUIRED) ++ find_package(VulkanMemoryAllocator CONFIG REQUIRED) ++ 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 +--- a/pxr/imaging/hgiVulkan/CMakeLists.txt ++++ b/pxr/imaging/hgiVulkan/CMakeLists.txt +@@ -46,8 +46,6 @@ pxr_library(hgiVulkan + api.h + vulkan.h + +- PRIVATE_CLASSES +- spirv_reflect + + RESOURCE_FILES + plugInfo.json +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 ++++ b/pxr/imaging/plugin/hioOiio/CMakeLists.txt +@@ -7,6 +7,7 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT}) + return() + endif() + ++if(0) # No need because OpenImageIO::OpenImageIO already declare its transitive dependencies correctly + # Use the import targets set by Imath's package config + if (Imath_FOUND) + set(__OIIO_IMATH_LIBS "Imath::Imath") +@@ -14,6 +15,7 @@ else() + set(__OIIO_IMATH_INCLUDE ${OPENEXR_INCLUDE_DIRS}) + set(__OIIO_IMATH_LIBS ${OPENEXR_LIBRARIES}) + endif() ++endif() + + pxr_plugin(hioOiio + LIBRARIES +diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in +index 041cd8c..2f89d69 100644 +--- a/pxr/pxrConfig.cmake.in ++++ b/pxr/pxrConfig.cmake.in +@@ -20,6 +20,27 @@ include(CMakeFindDependencyMacro) + + find_dependency(TBB CONFIG) + ++if(@PXR_BUILD_IMAGING@) ++ find_dependency(OpenSubdiv 3 CONFIG) ++ if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@) ++ find_dependency(OpenImageIO CONFIG) ++ endif() ++ if(@PXR_ENABLE_GL_SUPPORT@) ++ find_dependency(OpenGL REQUIRED) ++ endif() ++ if(@PXR_ENABLE_VULKAN_SUPPORT@) ++ if (NOT DEFINED Vulkan_DIR) ++ if (NOT [[@Vulkan_DIR@]] STREQUAL "") ++ set(Vulkan_DIR [[@Vulkan_DIR@]]) ++ endif() ++ endif() ++ find_dependency(Vulkan REQUIRED) ++ find_dependency(unofficial-shaderc CONFIG) ++ find_dependency(unofficial-spirv-reflect CONFIG) ++ find_dependency(VulkanMemoryAllocator CONFIG) ++ endif() ++endif() ++ + # 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@) + set(Imath_DIR [[@Imath_DIR@]]) + endif() + endif() +- find_dependency(Imath) ++ find_dependency(Imath CONFIG) + endif() + +-include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake") ++include("${PXR_CMAKE_DIR}/pxrTargets.cmake") + if (TARGET usd_ms) + set(libs "usd_ms") + else() + set(libs "@PXR_ALL_LIBS@") + endif() + set(PXR_LIBRARIES "") +-set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/include") ++set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/../../include") + string(REPLACE " " ";" libs "${libs}") + foreach(lib ${libs}) + get_target_property(location ${lib} LOCATION) diff --git a/ports/usd/003-vcpkg_find_opensubdiv.patch b/ports/usd/003-vcpkg_find_opensubdiv.patch deleted file mode 100644 index ddd17c2fcf..0000000000 --- a/ports/usd/003-vcpkg_find_opensubdiv.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake -index ccaabe765..d4eea2988 100644 ---- a/cmake/defaults/Packages.cmake -+++ b/cmake/defaults/Packages.cmake -@@ -260,8 +260,12 @@ if (PXR_BUILD_IMAGING) - endif() - endif() - # --Opensubdiv -- set(OPENSUBDIV_USE_GPU ${PXR_ENABLE_GL_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/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index 041cd8cba..692d045b9 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -20,6 +20,10 @@ include(CMakeFindDependencyMacro) - - find_dependency(TBB CONFIG) - -+if(@PXR_BUILD_IMAGING@) -+ find_dependency(OpenSubdiv 3 CONFIG) -+endif() -+ - # 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 diff --git a/ports/usd/008-fix_cmake_package.patch b/ports/usd/004-fix_cmake_package.patch similarity index 57% rename from ports/usd/008-fix_cmake_package.patch rename to ports/usd/004-fix_cmake_package.patch index b200106cde..087a6b9e0b 100644 --- a/ports/usd/008-fix_cmake_package.patch +++ b/ports/usd/004-fix_cmake_package.patch @@ -1,8 +1,8 @@ diff --git a/pxr/CMakeLists.txt b/pxr/CMakeLists.txt -index 00cafd3d9..c9faeabf0 100644 +index 4c7301b..94d2f2a 100644 --- a/pxr/CMakeLists.txt +++ b/pxr/CMakeLists.txt -@@ -12,13 +12,31 @@ endif() +@@ -17,13 +17,31 @@ endif() pxr_core_epilogue() @@ -40,24 +40,3 @@ index 00cafd3d9..c9faeabf0 100644 + # NAMESPACE "pxr::" + DESTINATION "${CMAKE_INSTALL_DATADIR}/pxr" +) -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index c8039c310..9e104abb7 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -90,14 +90,14 @@ if(@Imath_FOUND@) - find_dependency(Imath CONFIG) - endif() - --include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake") -+include("${PXR_CMAKE_DIR}/pxrTargets.cmake") - if (TARGET usd_ms) - set(libs "usd_ms") - else() - set(libs "@PXR_ALL_LIBS@") - endif() - set(PXR_LIBRARIES "") --set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/include") -+set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/../../include") - string(REPLACE " " ";" libs "${libs}") - foreach(lib ${libs}) - get_target_property(location ${lib} LOCATION) diff --git a/ports/usd/004-vcpkg_find_openimageio.patch b/ports/usd/004-vcpkg_find_openimageio.patch deleted file mode 100644 index 96023df00a..0000000000 --- a/ports/usd/004-vcpkg_find_openimageio.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake -index d4eea2988..106fd15e2 100644 ---- a/cmake/defaults/Packages.cmake -+++ b/cmake/defaults/Packages.cmake -@@ -196,7 +196,8 @@ if (PXR_BUILD_IMAGING) - # --OpenImageIO - if (PXR_BUILD_OPENIMAGEIO_PLUGIN) - set(REQUIRES_Imath TRUE) -- find_package(OpenImageIO REQUIRED) -+ find_package(OpenImageIO CONFIG REQUIRED) -+ set(OIIO_LIBRARIES OpenImageIO::OpenImageIO) - add_definitions(-DPXR_OIIO_PLUGIN_ENABLED) - if (OIIO_idiff_BINARY) - set(IMAGE_DIFF_TOOL ${OIIO_idiff_BINARY} CACHE STRING "Uses idiff for image diffing") -diff --git a/pxr/imaging/plugin/hioOiio/CMakeLists.txt b/pxr/imaging/plugin/hioOiio/CMakeLists.txt -index 0a055b711..de4b73a47 100644 ---- a/pxr/imaging/plugin/hioOiio/CMakeLists.txt -+++ b/pxr/imaging/plugin/hioOiio/CMakeLists.txt -@@ -7,6 +7,7 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT}) - return() - endif() - -+if(0) # No need because OpenImageIO::OpenImageIO already declare its transitive dependencies correctly - # Use the import targets set by Imath's package config - if (Imath_FOUND) - set(__OIIO_IMATH_LIBS "Imath::Imath") -@@ -14,6 +15,7 @@ else() - set(__OIIO_IMATH_INCLUDE ${OPENEXR_INCLUDE_DIRS}) - set(__OIIO_IMATH_LIBS ${OPENEXR_LIBRARIES}) - endif() -+endif() - - pxr_plugin(hioOiio - LIBRARIES -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index 692d045b9..a934c336b 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -22,6 +22,9 @@ find_dependency(TBB CONFIG) - - if(@PXR_BUILD_IMAGING@) - find_dependency(OpenSubdiv 3 CONFIG) -+ if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@) -+ find_dependency(OpenImageIO CONFIG) -+ endif() - endif() - - # If Python support was enabled for this USD build, find the import -@@ -79,7 +82,7 @@ if(@Imath_FOUND@) - set(Imath_DIR [[@Imath_DIR@]]) - endif() - endif() -- find_dependency(Imath) -+ find_dependency(Imath CONFIG) - endif() - - include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake") diff --git a/ports/usd/014-MaterialX_v1.38-39.patch b/ports/usd/005-MaterialX_v1.38-39.patch similarity index 91% rename from ports/usd/014-MaterialX_v1.38-39.patch rename to ports/usd/005-MaterialX_v1.38-39.patch index 0f4797b0b1..70927cb3d1 100644 --- a/ports/usd/014-MaterialX_v1.38-39.patch +++ b/ports/usd/005-MaterialX_v1.38-39.patch @@ -1,8 +1,17 @@ diff --git a/pxr/imaging/hdSt/materialXFilter.cpp b/pxr/imaging/hdSt/materialXFilter.cpp -index 8897c5e72..975017525 100644 +index 4a3977e..0dc43a3 100644 --- a/pxr/imaging/hdSt/materialXFilter.cpp +++ b/pxr/imaging/hdSt/materialXFilter.cpp -@@ -634,26 +634,48 @@ _GetGlTFSurfaceMaterialTag(HdMaterialNode2 const& terminal) +@@ -510,7 +510,7 @@ _UpdatePrimvarNodes( + texCoordName = metadata[SdrNodeMetadata->Primvars]; + } + +- (*mxHdPrimvarMap)[texCoordName] = mx::Type::VECTOR2->getName(); ++ (*mxHdPrimvarMap)[texCoordName] = mx::Type::VECTOR2.getName(); + } + } + } +@@ -628,26 +628,47 @@ _GetGlTFSurfaceMaterialTag(HdMaterialNode2 const& terminal) return materialToken.GetString(); } @@ -10,7 +19,7 @@ index 8897c5e72..975017525 100644 +static const mx::TypeDesc _GetMxTypeDescription(std::string const& typeName) { -+#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION==38 ++ #if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION==38 + // Add whatever is necessary for current codebase: + static const auto _typeLibrary = + std::map{ @@ -56,13 +65,12 @@ index 8897c5e72..975017525 100644 return typeDescIt->second; } - return nullptr; -+ + return mx::Type::NONE; +#endif } // This function adds a stripped down version of the surfaceshader node to the -@@ -678,32 +700,30 @@ _AddStrippedSurfaceNode( +@@ -672,32 +693,30 @@ _AddStrippedSurfaceNode( if (!mxInputDef) { continue; } @@ -83,7 +91,7 @@ index 8897c5e72..975017525 100644 _AddStrippedSurfaceNode(mxDocument, hdConnectedPath.GetName(), hdConnectedNode, hdNetwork); - mx::InputPtr mxInput = -- mxNode->addInput(mxInput->getName(), mxInput->getType()); +- mxNode->addInput(mxInputDef->getName(), mxInputDef->getType()); + mx::InputPtr mxInput = mxNode->addInputFromNodeDef(mxInputDef->getName()); mxInput->setConnectedNode(mxConnectedNode); } @@ -103,7 +111,7 @@ index 8897c5e72..975017525 100644 mxInput->setValueString(valueStr); } } -@@ -715,16 +735,15 @@ _AddStrippedSurfaceNode( +@@ -709,16 +728,15 @@ _AddStrippedSurfaceNode( if (!mxInputDef) { continue; } @@ -125,19 +133,19 @@ index 8897c5e72..975017525 100644 mxInput->setValueString(HdMtlxConvertToString(paramIt.second)); } } -@@ -787,9 +806,9 @@ _GetMaterialTag( +@@ -781,9 +799,9 @@ _GetMaterialTag( // Outputting anything that is not a surfaceshader will be // considered opaque, unless outputting a color4 or vector4. // XXX This is not fully per USD specs, but is supported by MaterialX. - auto const* typeDesc = -+ auto const typeDesc = ++ auto const typeDesc = _GetMxTypeDescription(activeOutputs.back()->getType()); - if (typeDesc == mx::Type::COLOR4 || typeDesc == mx::Type::VECTOR4) { -+ if (typeDesc.isFloat4()) { ++ if (typeDesc.isFloat4()) { return HdStMaterialTagTokens->translucent.GetString(); } return HdStMaterialTagTokens->defaultMaterialTag.GetString(); -@@ -1100,7 +1119,7 @@ _AddMaterialXParams( +@@ -1094,7 +1112,7 @@ _AddMaterialXParams( // MaterialX parameter Information const auto* variable = paramsBlock[i]; @@ -146,7 +154,7 @@ index 8897c5e72..975017525 100644 // Create a corresponding HdSt_MaterialParam HdSt_MaterialParam param; -@@ -1111,9 +1130,9 @@ _AddMaterialXParams( +@@ -1105,9 +1123,9 @@ _AddMaterialXParams( const auto paramValueIt = mxParamNameToValue.find(variable->getVariable()); if (paramValueIt != mxParamNameToValue.end()) { @@ -159,7 +167,7 @@ index 8897c5e72..975017525 100644 param.fallbackValue = paramValueIt->second; } } -@@ -1124,52 +1143,52 @@ _AddMaterialXParams( +@@ -1118,52 +1136,52 @@ _AddMaterialXParams( const auto varValue = variable->getValue(); std::istringstream valueStream(varValue ? varValue->getValueString() : std::string()); @@ -223,7 +231,7 @@ index 8897c5e72..975017525 100644 GfVec4i val; valueStream >> val[0] >> separator >> val[1] >> separator >> val[2] >> separator >> val[3]; -@@ -1183,7 +1202,7 @@ _AddMaterialXParams( +@@ -1177,7 +1195,7 @@ _AddMaterialXParams( } // For filename inputs, manage the associated texture node @@ -233,17 +241,17 @@ index 8897c5e72..975017525 100644 // annonNodeName_paramName -> annonNodeName std::string mxNodeName = variable->getVariable(); diff --git a/pxr/imaging/hdSt/materialXShaderGen.cpp b/pxr/imaging/hdSt/materialXShaderGen.cpp -index 30674b521..78517b39d 100644 +index 136b096..8ba27b2 100644 --- a/pxr/imaging/hdSt/materialXShaderGen.cpp +++ b/pxr/imaging/hdSt/materialXShaderGen.cpp -@@ -156,13 +156,17 @@ HdStMaterialXShaderGen::_EmitGlslfxHeader(mx::ShaderStage& mxStage) const +@@ -158,13 +158,17 @@ HdStMaterialXShaderGen::_EmitGlslfxHeader(mx::ShaderStage& mxStage) const Base::emitString(R"( "attributes": {)" "\n", mxStage); std::string line = ""; unsigned int i = 0; for (mx::StringMap::const_reference primvarPair : _mxHdPrimvarMap) { - const mx::TypeDesc *mxType = mx::TypeDesc::get(primvarPair.second); - if (mxType == nullptr) { + const mx::TypeDesc mxType = getMxTypeDesc(primvarPair.second); -+ if (mxTypeIsNone(mxType)) { ++ if (mxTypeIsNone(mxType)) { TF_WARN("MaterialX geomprop '%s' has unknown type '%s'", primvarPair.first.c_str(), primvarPair.second.c_str()); } @@ -258,7 +266,7 @@ index 30674b521..78517b39d 100644 line += " \"" + primvarPair.first + "\": {\n"; line += " \"type\": \"" + type + "\"\n"; -@@ -285,12 +289,15 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( +@@ -287,12 +291,15 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( if (outputConnection) { std::string finalOutput = outputConnection->getVariable(); @@ -274,7 +282,7 @@ index 30674b521..78517b39d 100644 if (mxGraph.hasClassification( mx::ShaderNode::Classification::SURFACE)) { -@@ -311,7 +318,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( +@@ -313,7 +320,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( } } else { @@ -283,7 +291,7 @@ index 30674b521..78517b39d 100644 Base::toVec4(outputSocket->getType(), finalOutput); } emitLine(finalOutputReturn + -@@ -323,7 +330,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( +@@ -325,7 +332,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( ? Base::_syntax->getValue( outputSocket->getType(), *outputSocket->getValue()) : Base::_syntax->getDefaultValue(outputSocket->getType()); @@ -292,7 +300,7 @@ index 30674b521..78517b39d 100644 std::string finalOutput = outputSocket->getVariable() + "_tmp"; emitLine(Base::_syntax->getTypeName(outputSocket->getType()) + " " + finalOutput + " = " + outputValue, mxStage); -@@ -415,8 +422,8 @@ HdStMaterialXShaderGen::_EmitMxInitFunction( +@@ -417,8 +424,8 @@ HdStMaterialXShaderGen::_EmitMxInitFunction( mxStage.getUniformBlock(mx::HW::PUBLIC_UNIFORMS); for (size_t i = 0; i < paramsBlock.size(); ++i) { const mx::ShaderPort* variable = paramsBlock[i]; @@ -303,7 +311,7 @@ index 30674b521..78517b39d 100644 emitLine(variable->getVariable() + " = HdGet_" + variable->getVariable() + "()", mxStage); } -@@ -622,16 +629,16 @@ HdStMaterialXShaderGen::emitVariableDeclarations( +@@ -624,16 +631,16 @@ HdStMaterialXShaderGen::emitVariableDeclarations( { Base::emitLineBegin(stage); const mx::ShaderPort* variable = block[i]; @@ -323,10 +331,10 @@ index 30674b521..78517b39d 100644 || MxHdVariables.count(variable->getName()) ) { Base::emitVariableDeclaration(variable, mx::EMPTY_STRING, context, stage, false /* assignValue */); -@@ -1349,4 +1356,53 @@ HdStMaterialXShaderGenMsl::_EmitMxFunctions( +@@ -1351,6 +1358,53 @@ HdStMaterialXShaderGenMsl::_EmitMxFunctions( + _EmitDataStructsAndFunctionDefinitions( + mxGraph, mxContext, mxStage, &_tokenSubstitutions); } - - +bool mxTypeIsNone(mx::TypeDesc typeDesc) +{ +#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION==38 @@ -374,11 +382,11 @@ index 30674b521..78517b39d 100644 + return port->getType(); +#endif +} -+ -+ + + PXR_NAMESPACE_CLOSE_SCOPE diff --git a/pxr/imaging/hdSt/materialXShaderGen.h b/pxr/imaging/hdSt/materialXShaderGen.h -index e61bd13a4..a7f93fdd0 100644 +index e61bd13..a7f93fd 100644 --- a/pxr/imaging/hdSt/materialXShaderGen.h +++ b/pxr/imaging/hdSt/materialXShaderGen.h @@ -192,6 +192,13 @@ private: diff --git a/ports/usd/005-vcpkg_find_shaderc.patch b/ports/usd/005-vcpkg_find_shaderc.patch deleted file mode 100644 index 610bdf84bd..0000000000 --- a/ports/usd/005-vcpkg_find_shaderc.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake -index 3763c9997..79679ca13 100644 ---- a/cmake/defaults/Packages.cmake -+++ b/cmake/defaults/Packages.cmake -@@ -233,6 +233,7 @@ if (PXR_BUILD_IMAGING) - find_package(Vulkan REQUIRED) - list(APPEND VULKAN_LIBS Vulkan::Vulkan) - -+ if(0) - # Find the extra vulkan libraries we need - set(EXTRA_VULKAN_LIBS shaderc_combined) - if (WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug") -@@ -242,6 +243,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 (APPLE) -@@ -258,6 +260,8 @@ if (PXR_BUILD_IMAGING) - else() - message(FATAL_ERROR "VULKAN_SDK not valid") - endif() -+ find_package(unofficial-shaderc CONFIG REQUIRED) -+ list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc) - endif() - # --Opensubdiv - find_package(OpenSubdiv 3 CONFIG REQUIRED) -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index a934c336b..62bb13a1b 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -25,6 +25,9 @@ if(@PXR_BUILD_IMAGING@) - if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@) - find_dependency(OpenImageIO CONFIG) - endif() -+ if(@PXR_ENABLE_VULKAN_SUPPORT@) -+ find_dependency(unofficial-shaderc CONFIG) -+ endif() - endif() - - # If Python support was enabled for this USD build, find the import diff --git a/ports/usd/006-vcpkg_find_spirv-reflect.patch b/ports/usd/006-vcpkg_find_spirv-reflect.patch deleted file mode 100644 index bde5f90aed..0000000000 --- a/ports/usd/006-vcpkg_find_spirv-reflect.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake -index 79679ca13..d1a8169a2 100644 ---- a/cmake/defaults/Packages.cmake -+++ b/cmake/defaults/Packages.cmake -@@ -261,7 +261,9 @@ if (PXR_BUILD_IMAGING) - message(FATAL_ERROR "VULKAN_SDK not valid") - endif() - find_package(unofficial-shaderc CONFIG REQUIRED) -+ find_package(unofficial-spirv-reflect CONFIG REQUIRED) - list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc) -+ list(APPEND VULKAN_LIBS unofficial::spirv-reflect) - endif() - # --Opensubdiv - find_package(OpenSubdiv 3 CONFIG REQUIRED) -diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt -index 97e422894..d13837e45 100644 ---- a/pxr/imaging/hgiVulkan/CMakeLists.txt -+++ b/pxr/imaging/hgiVulkan/CMakeLists.txt -@@ -46,9 +46,6 @@ pxr_library(hgiVulkan - api.h - vulkan.h - -- PRIVATE_CLASSES -- spirv_reflect -- - RESOURCE_FILES - plugInfo.json - ) -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index 62bb13a1b..d5b0d2f77 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -27,6 +27,7 @@ if(@PXR_BUILD_IMAGING@) - endif() - if(@PXR_ENABLE_VULKAN_SUPPORT@) - find_dependency(unofficial-shaderc CONFIG) -+ find_dependency(unofficial-spirv-reflect CONFIG) - endif() - endif() - diff --git a/ports/usd/009-fix_cmake_hgi_interop.patch b/ports/usd/007-fix_cmake_hgi_interop.patch similarity index 100% rename from ports/usd/009-fix_cmake_hgi_interop.patch rename to ports/usd/007-fix_cmake_hgi_interop.patch diff --git a/ports/usd/007-vcpkg_find_vma.patch b/ports/usd/007-vcpkg_find_vma.patch deleted file mode 100644 index 279e24d5f1..0000000000 --- a/ports/usd/007-vcpkg_find_vma.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake -index d1a8169a2..0fb6776a9 100644 ---- a/cmake/defaults/Packages.cmake -+++ b/cmake/defaults/Packages.cmake -@@ -262,8 +262,10 @@ if (PXR_BUILD_IMAGING) - endif() - find_package(unofficial-shaderc CONFIG REQUIRED) - find_package(unofficial-spirv-reflect CONFIG REQUIRED) -+ find_package(VulkanMemoryAllocator CONFIG REQUIRED) - list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc) - list(APPEND VULKAN_LIBS unofficial::spirv-reflect) -+ list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator) - endif() - # --Opensubdiv - find_package(OpenSubdiv 3 CONFIG REQUIRED) -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index d5b0d2f77..c8039c310 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -28,6 +28,7 @@ if(@PXR_BUILD_IMAGING@) - if(@PXR_ENABLE_VULKAN_SUPPORT@) - find_dependency(unofficial-shaderc CONFIG) - find_dependency(unofficial-spirv-reflect CONFIG) -+ find_dependency(VulkanMemoryAllocator CONFIG) - endif() - endif() - diff --git a/ports/usd/011-fix_clang8_compiler_error.patch b/ports/usd/008-fix_clang8_compiler_error.patch similarity index 100% rename from ports/usd/011-fix_clang8_compiler_error.patch rename to ports/usd/008-fix_clang8_compiler_error.patch diff --git a/ports/usd/012-vcpkg_install_folder_conventions.patch b/ports/usd/009-vcpkg_install_folder_conventions.patch similarity index 100% rename from ports/usd/012-vcpkg_install_folder_conventions.patch rename to ports/usd/009-vcpkg_install_folder_conventions.patch diff --git a/ports/usd/013-cmake_export_plugin_as_modules.patch b/ports/usd/010-cmake_export_plugin_as_modules.patch similarity index 100% rename from ports/usd/013-cmake_export_plugin_as_modules.patch rename to ports/usd/010-cmake_export_plugin_as_modules.patch diff --git a/ports/usd/010-fix_missing_find_dependency_vulkan.patch b/ports/usd/010-fix_missing_find_dependency_vulkan.patch deleted file mode 100644 index d7d67b0cdf..0000000000 --- a/ports/usd/010-fix_missing_find_dependency_vulkan.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index 9e104abb7..2aa4a3bd3 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -26,6 +26,12 @@ if(@PXR_BUILD_IMAGING@) - find_dependency(OpenImageIO CONFIG) - endif() - if(@PXR_ENABLE_VULKAN_SUPPORT@) -+ if (NOT DEFINED Vulkan_DIR) -+ if (NOT [[@Vulkan_DIR@]] STREQUAL "") -+ set(Vulkan_DIR [[@Vulkan_DIR@]]) -+ endif() -+ endif() -+ find_dependency(Vulkan REQUIRED) - find_dependency(unofficial-shaderc CONFIG) - find_dependency(unofficial-spirv-reflect CONFIG) - find_dependency(VulkanMemoryAllocator CONFIG) diff --git a/ports/usd/016-TBB-2022.patch b/ports/usd/011-TBB-2022.patch similarity index 100% rename from ports/usd/016-TBB-2022.patch rename to ports/usd/011-TBB-2022.patch diff --git a/ports/usd/012-fix-find-vulkan.patch b/ports/usd/012-fix-find-vulkan.patch new file mode 100644 index 0000000000..412e9e7c6b --- /dev/null +++ b/ports/usd/012-fix-find-vulkan.patch @@ -0,0 +1,28 @@ +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) diff --git a/ports/usd/015-fix_missing_find_dependency_opengl.patch b/ports/usd/015-fix_missing_find_dependency_opengl.patch deleted file mode 100644 index 1f1a94646b..0000000000 --- a/ports/usd/015-fix_missing_find_dependency_opengl.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in -index 2aa4a3bd3..2f89d690c 100644 ---- a/pxr/pxrConfig.cmake.in -+++ b/pxr/pxrConfig.cmake.in -@@ -25,6 +25,9 @@ if(@PXR_BUILD_IMAGING@) - if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@) - find_dependency(OpenImageIO CONFIG) - endif() -+ if(@PXR_ENABLE_GL_SUPPORT@) -+ find_dependency(OpenGL REQUIRED) -+ endif() - if(@PXR_ENABLE_VULKAN_SUPPORT@) - if (NOT DEFINED Vulkan_DIR) - if (NOT [[@Vulkan_DIR@]] STREQUAL "") diff --git a/ports/usd/portfile.cmake b/ports/usd/portfile.cmake index 66dff9438e..f6d97aa08d 100644 --- a/ports/usd/portfile.cmake +++ b/ports/usd/portfile.cmake @@ -6,29 +6,30 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(REGEX REPLACE "^([0-9]+)[.]([0-9])\$" "\\1.0\\2" USD_VERSION "${VERSION}") +vcpkg_download_distfile(MSVC_PATCH + URLS https://github.com/PixarAnimationStudios/OpenUSD/commit/b677b238ba596f31f252d38dd5172d3e869d193e.patch?full_index=1 + FILENAME fix-msvc.patch + SHA512 1dc8e6559d322f861fd0f0673679358cbc259ddf0ac4cf3a1306557ee8a4a9fdd362d57101b30bb9367abf889e13bbcba6b40fbb571c07899c5b5a8431adcb74 +) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PixarAnimationStudios/OpenUSD REF "v${USD_VERSION}" - SHA512 7d4404980579c4de3c155386184ca9d2eb96756ef6e090611bae7b4c21ad942c649f73a39b74ad84d0151ce6b9236c4b6c0c555e8e36fdd86304079e1c2e5cbe + SHA512 77c9601f4a689248448049660ef0083fc99e2a4c2e7a260814831bdfee8e9844f64b5b2aed88a9f907fe4ebcf6a532bb7dce80bb11c1f54c31066b07aa96b851 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-vcpkg_find_opensubdiv.patch - 004-vcpkg_find_openimageio.patch - 005-vcpkg_find_shaderc.patch - 006-vcpkg_find_spirv-reflect.patch - 007-vcpkg_find_vma.patch - 008-fix_cmake_package.patch - 009-fix_cmake_hgi_interop.patch - 010-fix_missing_find_dependency_vulkan.patch - 011-fix_clang8_compiler_error.patch - 012-vcpkg_install_folder_conventions.patch - 013-cmake_export_plugin_as_modules.patch - 014-MaterialX_v1.38-39.patch # PixarAnimationStudios/OpenUSD#3159 - 015-fix_missing_find_dependency_opengl.patch - 016-TBB-2022.patch # Accomodate oneapi-src/oneTBB#1345 changes + 003-fix-dep.patch + 004-fix_cmake_package.patch + 005-MaterialX_v1.38-39.patch + "${MSVC_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 ) # Changes accompanying 006-vcpkg_find_spirv-reflect.patch diff --git a/ports/usd/vcpkg.json b/ports/usd/vcpkg.json index 911ae55321..5a4f13539e 100644 --- a/ports/usd/vcpkg.json +++ b/ports/usd/vcpkg.json @@ -1,7 +1,6 @@ { "name": "usd", - "version": "24.8", - "port-version": 1, + "version": "24.11", "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/USD", "license": null, diff --git a/versions/baseline.json b/versions/baseline.json index 9c5f074ab9..de27d4a01e 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -9265,8 +9265,8 @@ "port-version": 1 }, "usd": { - "baseline": "24.8", - "port-version": 1 + "baseline": "24.11", + "port-version": 0 }, "usearch": { "baseline": "2.3.2", diff --git a/versions/u-/usd.json b/versions/u-/usd.json index 3afca81337..3ebde6ce83 100644 --- a/versions/u-/usd.json +++ b/versions/u-/usd.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "a96dae4b6c9e6d254b6601fb1be2c0088881a0b4", + "version": "24.11", + "port-version": 0 + }, { "git-tree": "5d916134edd638a11c6a73e8553896d837d26f2b", "version": "24.8",