diff --git a/CHANGELOG.md b/CHANGELOG.md index 084e873cbf..960d29abf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,484 @@ # Change Log +## [25.02] - 2025-01-21 + +### Build + +- Various fixes and changes to build_usd.py: + - Added `--no-zlib` option to disable building zlib, for developers that need + to supply their own version of the library. + (PR: [#2988](https://github.com/PixarAnimationStudios/OpenUSD/pull/2988), + [#3130](https://github.com/PixarAnimationStudios/OpenUSD/pull/3130)) + - Updated Boost dependency to 1.86.0 for Visual Studio 2022. + (Issue: [#1062](https://github.com/PixarAnimationStudios/OpenUSD/issues/1062), + [#2044](https://github.com/PixarAnimationStudios/OpenUSD/issues/2044), + [#2158](https://github.com/PixarAnimationStudios/OpenUSD/issues/2158), + [#3102](https://github.com/PixarAnimationStudios/OpenUSD/issues/3102)) + - Updated OpenEXR dependency to v3.1.13. + (PR: [#3077](https://github.com/PixarAnimationStudios/OpenUSD/pull/3077)) + - Updated OpenImageIO dependency to v2.5.6.0. + (PR: [#2940](https://github.com/PixarAnimationStudios/OpenUSD/pull/2940)) + - Updated to download boost from SourceForge or the official boost host. + - Added `--(no-)usdValidation` option to enable/disable building the USD + validation framework. USD validation is enabled by default. + +- Fixed various issues in pxr_boost::python when building against Python 3.11. + (Issue: [#3384](https://github.com/PixarAnimationStudios/OpenUSD/issues/3384)) + +- Fixed issue with missing headers causing build failures with Visual Studio 2022. + (Issue: [#3433](https://github.com/PixarAnimationStudios/OpenUSD/issues/3433)) + +- Fixed issues with precompiled headers when using Visual Studio and Ninja. + (Issue: [#3408](https://github.com/PixarAnimationStudios/OpenUSD/issues/3433), + PR: [#3204](https://github.com/PixarAnimationStudios/OpenUSD/pull/3204)) + +- Various fixes for compilation issues and warnings. + - Fixed compilation issues when building USD using the C++20 standard. + (PR: [#2605](https://github.com/PixarAnimationStudios/OpenUSD/pull/2605)) + - Made various fixes for compiler warnings emitted by GCC 11. + - Made various fixes for stricter compiler parsing of templates by an upcoming + clang/llvm release. + (PR: [#3434](https://github.com/PixarAnimationStudios/OpenUSD/pull/3434)) + - Correct re-declaration of structs as classes. + (PR: [#3316](https://github.com/PixarAnimationStudios/OpenUSD/pull/3316)) + - Static functions that should be static inline. + (Issue: [#3324](https://github.com/PixarAnimationStudios/OpenUSD/issues/3324), + PR: [#3356](https://github.com/PixarAnimationStudios/OpenUSD/pull/3356)) + - Overrides on member functions not marked override. + (Issue: [#3335](https://github.com/PixarAnimationStudios/OpenUSD/issues/3335), + PR: [#3355](https://github.com/PixarAnimationStudios/OpenUSD/pull/3355)) + +- Fixed various link visibility issues. + - Fixed methods from HdSingleInputFilteringSceneIndexBase. + (PR: [#3428](https://github.com/PixarAnimationStudios/OpenUSD/pull/3428)) + - Fixed HdDependenciesSchema::GetEntries. + (PR: [#3369](https://github.com/PixarAnimationStudios/OpenUSD/pull/3369)) + - Fixed HdxSelectionTracker. + +### USD + +- Increased the default version for newly-created binary files to 0.10.0. USD + release 23.11 and newer support this file version. This can be overridden with + the `USD_WRITE_NEW_USDC_FILES_AS_VERSION` env var. + +- Added UsdColorSpaceAPI for specifying the color space for a prim subtree. + +- Added UsdColorSpaceDefinitionAPI for defining custom color spaces. + +- Fixed issue where ArchDebuggerIsAttached would return false positives on some + Linux distributions. + (PR: [#3014](https://github.com/PixarAnimationStudios/OpenUSD/pull/3014)) + +- Fixed `ArchGetFileName` to return a full path on Windows. + (PR: [#3361](https://github.com/PixarAnimationStudios/OpenUSD/pull/3361)) + +- Simplified and made the TfScriptModuleLoader thread-safe. + +- Added TfNotice::RevokeAndWait() to allow thread-safe revocation of + notification. + +- Fixed issue where saving numeric data to text .usda layers could be formatted + differently depending on the system locale. + (Issue: [#3214](https://github.com/PixarAnimationStudios/OpenUSD/issues/3214), + PR: [#3222](https://github.com/PixarAnimationStudios/OpenUSD/pull/3222)) + +- Fixed an incorrect memory deallocation in TsRegressionPreventer. + +- Added WorkDispatcher::IsCancelled, which returns true if + WorkDispatcher::Cancel has been called. + +- Removed flag `PCP_DISABLE_TIME_SCALING_BY_LAYER_TCPS`. Time sample scaling is + always enabled. + +- Enabled change processing optimization for muting/unmuting and adding/removing + sublayers. This can be disabled by setting the environment variable + `PCP_ENABLE_MINIMAL_CHANGES_FOR_LAYER_OPERATIONS` to 0. See 24.11 release + notes for more details. + +- Removed SdfPropertySpec::GetTimeSampleMap in favor of + SdfAttributeSpec::GetTimeSampleMap. + +- Reverted deprecation of SdfLayer time sample methods. + +- Identifiers passed to SdfLayer::Find or FindOrOpen now have file format + arguments removed before being resolved by ArResolver to keep resolver + implementations from seeing unexpected values. + +- Made all SdfListOp setter methods enforce uniqueness by removing duplicates in + explicit setter methods. Deprecated ModifyOperations(callback, + removeDuplicates) as removeDuplicates is now assumed true. + +- Added SdfCreateAttributeInLayer and SdfCreateRelationshipInLayer. + +- Updated UsdNamespaceEditor to properly update the defaultPrim on affected + layers when necessary. + +- Updated UsdUtilsModifyAssetPaths to preserve SdfAssetPath metadata. This was a + fix to a regression introduced in 23.11. + +- Disabled UDIM resolution for ExtractExternalReferences, which addresses a + behavior introduced in 23.11 where UDIM paths were not being resolved. + (Issue: [#3173](https://github.com/PixarAnimationStudios/OpenUSD/issues/3173)) + +- The schema registry now throws a coding error if a schema is registered + without a schemaIdentifier. + +- Updated usdGenSchema to only write out aliases to plugInfo if the prim type + name does not match the class name. + +- Fixed updateSchemaWithSdrNote to add shaderId property appropriately for all + shader nodes. + +- Fixed a bug in SdrShaderProperty where int arrays would always default to zero. + +- Added NdrRegistry.AddDiscoveryResult Python binding. + +- Various UsdValidation updates: + - Moved the UsdValidation framework to its own library, pxr/usdValidation. + Moved the USD schema domain validators to their respective schema libraries. + This makes it possible for clients who do not want to use the validation + framework to not have to have any dynamic library dependencies on the + validation libraries. + - Updated UsdValidationContext::Validate(stage) to validate all prims, + including instance proxies, by default. Clients can also use the overload + that takes a traversal predicate to be used for stage traversal when + validating the stage. + - Fixed a bug where schemaType validators were not processed by the + UsdValidationContext. + - Updated UsdValidationError::GetErrorAsString to include the error + identifier information. + - Added Python wrappings for UsdValidationContext. + - Added UsdValidationTimeRange to allow prim and stage level validators to + provide GfInterval or timeCodes, including default time to be evaluated for + validation. Various UsdValidation core APIs are updated to use + UsdValidationTimeRange. Added isTimeDependent metadata to + UsdValidationValidatorMetadata to indicate if the validator is time + dependent. + - Added Validators to correspond to UsdUtilsComplianceChecker tests: + - NormalMapTextureValidator + (PR: [#3443](https://github.com/PixarAnimationStudios/OpenUSD/pull/3443)) + - FileExtensionValidator + (PR: [#3444](https://github.com/PixarAnimationStudios/OpenUSD/pull/3444)) + - MissingReferenceValidator + (PR: [#3450](https://github.com/PixarAnimationStudios/OpenUSD/pull/3450)) + - RootPackageValidator and UsdzPackageValidator + (PR: [#3449](https://github.com/PixarAnimationStudios/OpenUSD/pull/3449)) + +- Added support for scalar translate and scale xformOps. Added translateX, + translateY, translateZ, scaleX, scaleY and scaleZ xformOps to correspond to + translation along X, Y and Z and scale along X, Y and Z respectively. Also + added APIs to UsdGeomXformable to allow to add the above mentioned xforms to + UsdGeomXform. + +### Hydra + +- Removed deprecated OpenImageIO APIs from hioOiio to support OpenImageIO + 3.0.0.x. + (PR: [#3418](https://github.com/PixarAnimationStudios/OpenUSD/pull/3418)) + +- Improved diagnostics when rejecting primvars due to invalid interpolation + values. + +- HdxAovInputTask no longer reads from an invalid memory address when converting + a Float32Vec3 texture to a Float32Vec4 texture. + +- Fixed a regression that could result in assert failures in the aovInputTask + when using some renderer plugins on macOS systems with discrete GPUs. + (Issue: [#3470](https://github.com/PixarAnimationStudios/OpenUSD/issues/3470)) + +- Added the ability to only load Hydra Scene Index Plugins for a given set of + apps, using the new "loadWithApps" HdSceneIndexPlugin type registration field. + Plugin types can limit which apps will auto-load the plugin. When creating a + scene index, an app name can be provided to load only specific plugins. Not + specifying (or providing an empty) loadWithApps means all existing plugins + will continue to be loaded normally. + +- Fixed a bug in HdMergingSceneIndex where it would not send out the proper + notices when removing a prim. + (Issue: [#3261](https://github.com/PixarAnimationStudios/OpenUSD/issues/3261), + [#3471](https://github.com/PixarAnimationStudios/OpenUSD/issues/3471), + PR: [#3263](https://github.com/PixarAnimationStudios/OpenUSD/pull/3263)) + +- Added scene index emulation support for tasks. Also added + HdxFreeCameraPrimDataSource. The intention together with scene index + emulation support for tasks is to make HdxTaskController a scene index. + +- Added an overload of HdEngine::Execute taking task paths, rather than task + pointers. + +- Added API UsdviewqHydraObserver::GetNestedInputDisplayNames and + TargetToNestedInputSceneIndex to see nested input scene indices. + +- Added HdsiSceneMaterialPruningSceneIndex which can implement material specific + behaviors that the existing HdsiPrimTypePruningSceneIndex used for the same + purpose cannot. + +- Fixed a case of over-invalidation in dirty bits emulation where repr and + display style were invalidating each other. + +- Fixed dependency bugs in HdsiMaterialPrimvarTransferSceneIndex. + +- Fixed HdMapContainerDataSource producing output entries for keys with no input + entry. + +- Fixed a bug in the dependency forwarding scene index to clear and recompute + the dependency table entries for a prim when its dependencies are dirty. + +- Fixed propagation of light linking dirty bits for instancers in backend + emulation. + +- Fixed unitTestHelper byteSize field. + (PR: [#3374](https://github.com/PixarAnimationStudios/OpenUSD/pull/3374)) + +- Made correctness fix for HdRenderIndex::RemoveInputScene. + (PR: [#3304](https://github.com/PixarAnimationStudios/OpenUSD/pull/3304)) + +- Implemented a vectorized version of HdxPrimOriginInfo::FromPickHit. + (PR: [#3413](https://github.com/PixarAnimationStudios/OpenUSD/pull/3413)) + +- HdLegacyGeomSubsetSceneIndex will now properly clear its cache of descendants + when an ancestor prim is removed. + +- HdSceneIndexAdapterSceneDelegate will now use the render delegate's material + binding purpose when retrieving material bindings. + (Issue: [#3320](https://github.com/PixarAnimationStudios/OpenUSD/issue/3320), + PR: [#3352](https://github.com/PixarAnimationStudios/OpenUSD/issue/3352)) + +### UsdImaging + +- **Important**: Deprecated UsdImagingGLRenderParams::enableIdRender setting in + favor of using primId AOV. This setting will be removed in the following + release. + +- UsdPreviewSurface's shader now computes a BRDF based on clearcoat roughness + for the indirect lighting clearcoat component. + +- UsdPreviewSurface's shader now applies opacity to all components of the color, + instead of only to the diffuse component. + +- Added a new opacityMode input to the Preview Surface spec to control whether + or not fully transparent materials receive a specular response. HdPrman's + implementation of PreviewSurface also updated to match the updated spec. + +- Improved type coverage of UsdImagingDataSourceAttribute. + (Issue: [#3298](https://github.com/PixarAnimationStudios/OpenUSD/issues/3298)) + +- Made change to ensure HdSceneIndexAdapterSceneDelegate::GetMaterialResource + considers all contexts. + (Issue: [#3286](https://github.com/PixarAnimationStudios/OpenUSD/issues/3286), + PR: [#3288](https://github.com/PixarAnimationStudios/OpenUSD/pull/3288)) + +- Added a 2 * epsilon gap between opposing axis faces of drawMode cards cross + geometry to avoid issues due to co-planarity. This significantly improves the + stability of rendering, particularly with RenderMan. + +### Storm + +- Made various improvements to prim id rendering in Storm. + - Deprecated HdxRenderTaskParams::enableIdRender setting in favor of using + primId AOV. + - Added support for int32 AOV format. + - Introduced HdSt_RenderPassShaderKey to flexibility generate render pass + shaders based on desired AOVs. + +- Fixed Vulkan crashes due to missing extensions and layers, and added reporting + of missing layers and extensions. + (PR: [#3420](https://github.com/PixarAnimationStudios/OpenUSD/pull/3420)) + +- Added a null GL context to use when X11 isn't available, so tests can still + run when not using HgiGL. + (PR: [#3391](https://github.com/PixarAnimationStudios/OpenUSD/pull/3391)) + +- Added OpenGL 3.1/GLSL 1.4 support to HgiInterop and use a VertexArray, as + required by Apple OpenGL. + (PR: [#3391](https://github.com/PixarAnimationStudios/OpenUSD/pull/3391)) + +- Added HGIVULKAN_VERIFY_VK_RESULT macro that verifies result of Vulkan call and + prints result string if it fails. + (PR: [#3333](https://github.com/PixarAnimationStudios/OpenUSD/pull/3333)) + +- Fixed a bug in HgiVulkanBlitCmds::CopyBufferCpuToGpu. + (PR: [#3382](https://github.com/PixarAnimationStudios/OpenUSD/pull/3382)) + +- Fixed various HdSt and HgiVulkan build errors on Windows. + (PR: [#3411](https://github.com/PixarAnimationStudios/OpenUSD/pull/3411)) + +- Updated HdSt test outputs and baselines so test outputs can be compared using + `FC.exe` on Windows without any additional flags. + (PR: [#3409](https://github.com/PixarAnimationStudios/OpenUSD/pull/3409)) + +- Various fixes to HdSt tests to enable their passing when using HgiVulkan with + Lavapipe. + (PR: [#3170](https://github.com/PixarAnimationStudios/OpenUSD/pull/3170)) + +- Dome light environment texture sampling now converts infinite or NaN values in + any channel of a pixel to zero. + +- Added a dependency between rprim material binding and bound material. + +- Set GL_UNPACK_ALIGNMENT=1 to avoid texture distortion for single channel + textures. + (Issue: [#3260](https://github.com/PixarAnimationStudios/OpenUSD/issues/3260), + PR: [#3262](https://github.com/PixarAnimationStudios/OpenUSD/pull/3262)) + +### RenderMan Hydra Plugin + +- Improved diagnostics when issuing warnings about specific material networks. + +- HdPrman now avoids deleting and re-creating light instances in more cases when + editing lights. + +- HdPrman now enables parallel sync for additional Hydra prim types, including + materials and coordinate systems. This can be turned off with the environment + setting `HD_PRMAN_ENABLE_PARALLEL_PRIM_SYNC`, which defaults to enabled. + +- Added scene index HdPrman_PreviewSurfacePrimvarsSceneIndex that adds primvar + displacementbound:sphere to material primvars of materials using + UsdPreviewSurface (to be transferred to the gprim later by the + HdsiMaterialPrimvarTransferSceneIndex). + +- Updated args parser to support "sdrIgnore" and "sdrUsdDefault". + "sdrIgnore" can be set to shader properties in the args file to suppress the + property from getting added to its sdr representation. "sdrUsdDefault" can be + used to set a specific default value for USD schema purposes. + +- Added support for more kinds of terminal nodes for material networks that use + MaterialX patterns. Also, more than one node can make up the bxdf part of the + network, e.g. if layering is involved. + +- Added code to force hider:incremental to be enabled for interactive renders. + +- Fixed a bug where the code that maps common USD names of AOVs, like 'normal', + to RenderMan style names, like 'Nn', would inadvertently happen even when the + AOV already had an associated 'lpe'. Now we only do the mapping if the + sourceType wasn't already specified to be 'lpe' or 'primvar'. + +- Improved robustness if the scene provides a primvar schema without a value + datasource. + +- Made change to register dependencies from a light on its targeted light + filters to forward invalidations when the prims are backed by a non-emulated + scene index. + +- Made optimizations to HdPrman_UpdateObjectSettingsSceneIndex to avoid + unnecessary computation. + +- Removed Python bindings from rmanArgsParser. + +- Added the environment setting `HD_PRMAN_ALL_LIGHTS_FIXED_SAMPLE_COUNT` + (int, default: -1). When set to a value > -1, hdPrman will set + fixedSampleCount to the given value on all visible supported lights it + encounters, overriding any value that might be authored on the light. This + setting is intended to aid with testing, and should not be used in production. + +- Reduced pre-allocation of time sample arrays within instanced hierarchies to + improve memory performance on scenes with heavy instancing. + +- Added experimental legacy mesh light support: PxrMesh and PxrVolume schemas + now derive from their respective geometry classes rather than Light. + +- Lights will now properly depend on and update with their targeted light + filters. + +- Role information for certain integrator, projection, and display and sample + filter parameters is now retrieved by inspecting the relevant shader via + SdrRegistry, rather than relying on lookup tables previously in + projectionParams.h/cpp. + +- Added support for role lookup of integrator parameters set via + RenderSettings & Integrator prims. + +- Fixed an issue when geometry prototype creation fails for an instanced gprim. + Previously, this situation led to a fatal error about a missing light shader. + Now we issue a non-fatal warning with an accurate message. + +- Fixed an issue that caused ri:hider:jitter to be ignored when authored in + RenderSettings. + +### MaterialX + +- Allow for USD to be run with either MaterialX v1.38 or v1.39. + (PR: [#3159](https://github.com/PixarAnimationStudios/OpenUSD/pull/3159)) + +- Added MaterialXConfigAPI and dataSourceAttributeTypeName to help support USD + files that were written with v1.38 MaterialX nodes but run with MaterialX + v1.39 + (PR: [#3157](https://github.com/PixarAnimationStudios/OpenUSD/pull/3157)) + +- Fixed crash referencing image NodeDef. + (PR: [#3344](https://github.com/PixarAnimationStudios/OpenUSD/pull/3344)) + +### usdview + +- Resolved labels are now displayed in a new "Resolved Labels" row in + the attribute editor. Labels are resolved for prims and ancestors using the + usdSemantics schema and APIs. + (PR: [#3300](https://github.com/PixarAnimationStudios/OpenUSD/pull/3300)) + +- Removed unexposed "enableIdRender" setting from usdview. + +### usdchecker + +- Ported usdchecker to C++ and enabled it to use the new validation framework. + Clients can use the `--useNewValidationFramework` flag to use the new + validation framework. All the core USD validators available in the old + UsdUtilsComplicanceChecker are ported to the new validation framework. + This option will be made default in a subsequent OpenUSD Release. + +- Source for usdchecker has been migrated to pxr/usdValidation/bin/usdchecker. + +- New flags (`--variantSets`, `variants`, `disableVariantValidationLimit`) added + to provide more control over variant validation. These flags are only valid + when `--newValidationFramework` is used. + +### usdrecord + +- Added command line argument to enable performance tracing and allocation + tracking. These match the same options provided by usdview. + +### usdmeasureperformance + +- Added optional trace file output via `--tracedir` arg. + +### Documentation + +- Added a basic overview with examples for the relocates composition arc to the + [Terms and Concepts page](https://openusd.org/release/glossary.html#relocates). + Updated the [Namespace Editor user guide](https://openusd.org/release/user_guides/namespace_editing.html) + to demonstrate how the namespace editor uses relocates when necessary. + +- Added example asset that demonstrates using the UsdSemantics schema, available + in `extras/usd/examples/usdSemanticsExamples/bookshelf.usda`. + (PR: [#3390](https://github.com/PixarAnimationStudios/OpenUSD/pull/3390)) + +- Updated documentation of HdSceneDelegate::SamplePrimvar(), SampleTransform(), + and related methods to reflect new behavior with respect to interval + bracketing samples introduced in 24.08. + +- Updated usdchecker documentation to include the new validation framework + options. + +- Various documentation updates: + - Added OpenExec and Animated Characters presentation slides to the + [Downloads and Videos page](https://openusd.org/release/dl_downloads.html). + - Updated `VERSIONS.md` to note that OpenUSD requires v3.0 or greater of the + Jinja2 package. + (PR: [#3314](https://github.com/PixarAnimationStudios/OpenUSD/pull/3314)) + - Added documentation for the TF_DESCRIBE_SCOPE() macro. + - Updated "Generating New Schema Classes" tutorial with note regarding DLL + warning on Windows. + (Issue: [#3376](https://github.com/PixarAnimationStudios/OpenUSD/issues/3376), + PR: [#3394](https://github.com/PixarAnimationStudios/OpenUSD/pull/3394)) + - Updated UsdSemantics overview docs to disambiguate the UsdSemantics schema + from model hierarchy concepts. + (PR: [#3385](https://github.com/PixarAnimationStudios/OpenUSD/pull/3385)) + - Fixed "unsupported type" typo. + (PR: [#3266](https://github.com/PixarAnimationStudios/OpenUSD/pull/3266)) + + +
+ Previous Releases + ## [24.11] - 2024-10-25 ### Build @@ -524,9 +1003,6 @@ - Fixed crash when reading .usdc file with corrupt SdfSpecType values, see [security advisory on github](https://github.com/PixarAnimationStudios/OpenUSD/security/advisories/GHSA-4j7j-gm3f-m63w). -
- Previous Releases - ## [24.08] - 2024-07-25 OpenUSD is now licensed under the Tomorrow Open Source Technology license. This