Skip to content

Commit

Permalink
Merge release v20.08
Browse files Browse the repository at this point in the history
  • Loading branch information
pixar-oss committed Jul 21, 2020
2 parents ebac0a8 + 238d0f4 commit 71b4baa
Show file tree
Hide file tree
Showing 1,378 changed files with 55,210 additions and 56,907 deletions.
65 changes: 0 additions & 65 deletions .appveyor.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
.p4*
.DS_Store
.AppleDouble

80 changes: 0 additions & 80 deletions .travis.yml

This file was deleted.

8 changes: 8 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,14 @@ that depend on GL, including:
- usdview
- Hydra GL imaging

##### Metal

To build USD with Metal enabled requires macOS Mojave (10.14) or newer.
Support for Metal can optionally be disabled by specifying the cmake flag
```PXR_ENABLE_METAL_SUPPORT=FALSE```. This will skip components and libraries
that depend on Metal, including:
- Hydra imaging

##### OSL (OpenShadingLanguage)

Support for OSL is disabled by default, and can optionally be enabled by
Expand Down
197 changes: 197 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,202 @@
# Change Log

## [20.08] - 2020-07-21

### Build
- The "master" branch on GitHub has been renamed "release".
- Improved error handling when building the RenderMan plugin. (Issue #1054)

- Various fixes and changes to build_usd.py:
- Added `--tools` and `--no-tools` options.
- Updated OpenImageIO (2.1.16.0) and MaterialX (1.37.1) dependencies.
- Specifying `--embree` will now build the Embree library. The
`--embree-location` parameter has been removed.
- CMake 3.14 is now required on Windows to support boost 1.70+.
- Python 3.8 on Windows now causes an error, as USD does not support
this version on Windows.
- Improved handling of boost build failures.
- Fixed locale decoding errors. (Issue #1165)
- Fixed incorrect detection of Draco library. (PR #1239)

### USD
- Added support for "future division" in Python 2 to aid transition to Python 3.

- Added ArResolver::CreatePathForLayer to allow users to customize behavior
when writing a layer. SdfLayer now uses this method instead of creating a
directory, which was not appropriate for non-filesystem uses. (Issue #1148)

- Added SdfReference::IsInternal. (PR #1204)
- Added fallback prim types feature, allowing clients to specify alternative
schemas to use if a schema can't be found. See documentation for more details.
- Added UsdPrim::ApplyAPI, RemoveAPI, AddAppliedSchemas,
and RemoveAppliedSchemas. (Issue #1218)
- Added Python __repr__ for generated schemas.
- Added methods to UsdGeomPrimvar for processing property names.
- Added methods to UsdGeomPrimvarsAPI for creating, removing, and blocking
primvars. (Issue #1100)
- Improved documentation for UsdVol schema domain. (PR #1203)
- Improved documentation for UsdGeomMesh. (PR #1254)
- Improved diagnostic messages for plugin registration and loading.

- Plugin search paths in PXR_PLUGINPATH_NAME can now be a symlink. Paths are
now processed in order to ensure plugins in earlier entries take priority
over those in later entries.

- Replaced SdrShaderNode::GetSourceURI and GetResolvedSourceURI with
GetResolvedDefinitionURI and GetResolvedImplementationURI to properly
represent RenderMan C++ shaders.

- Time sample times from layers whose timeCodesPerSecond value differ from
the UsdStage are now automatically scaled to match. This can be disabled
by setting the PCP_DISABLE_TIME_SCALING_BY_LAYER_TCPS environment variable,
but we expect to remove this in a future release.

- Significant changes and additions to value clips functionality. See
documentation for more details:
- Added support for jump discontinuities in clip times metadata to encode
looping behaviors.
- The clip manifest is now used to determine which attributes have values
in clips. The manifest will be generated in-memory at runtime if one
hasn't been specified.
- Value resolution will no longer fall through to weaker layers if a clip
does not have values for an attribute declared in the manifest. In these
cases, the value may come from the default value authored in the manifest
or (optionally) be interpolated from surrounding clips.
- Removed support for legacy value clips metadata.
- Fixed numerous bugs, including incorrect time samples when reversing
clips. (Issue #1116)

- Changed the strength ordering of entries in the apiSchemas metadata to be
strongest-to-weakest, matching the ordering of references and other fields.
- Constructing a UsdGeom::XformOp with an invalid attribute is no longer a
coding error for consistency with other schemas and objects.
- Deprecated many schemas in UsdRi in preparation for modernization efforts
in a future release.
- Removed support for deprecated "hermite" and "power" basis from UsdGeomCurves.
- Fixed crash when removing many entries from an SdfPathTable. (PR #1172)
- Fixed compile error due to missing virtual destructor for
PcpDynamicFileFormatInterface. (PR #1156)
- Fixed type conversions when setting metadata values using dictionaries
in Python. (Issue #813)
- Fixed handling of stage metadata and session layer muting in UsdStage.
- Fixed UsdFlattenLayerStack to handle mismatched attribute types and
time-sampled asset paths. (PR #1169)
- Fixed undefined behavior issue with iterator comparisons. (Issue #1146)
- Fixed regression in handling of inherited bindings in UsdSkelCache.
- Fixed crash in UsdSkelBakeSkinning. (PR #1213)

### Imaging
- Updated minimum required version of OpenGL to v4.5.

- Added new texture system to Storm. This enables multi-threaded texture
loading, uses Hgi, and frees the scene delegate from having to load
textures. In a performance test using Nvidia's Attic scene, time to first
image dropped by ~90%, from 115s to 10s.

- Added first iteration of HgiMetal, a Metal-based Hgi implementation for
Apple platforms. Currently, Hgi is used in several Hydra tasks to perform
tasks like blitting, the goal is to slowly integrate Hgi in Storm.

- Numerous updates to Hgi:
- Added HgiInterop to exchange rendered results between GL-GL or Metal-GL.
- Added HgiSampler to represent texture samplers.
- Added HgiComputeCmds to issue compute commands.
- Added HgiBlitCmds for mipmap generation and GPU-GPU copy.
- Added SRGB format and removed unsupported 24-bit formats.
- Added GetRawResource function to various resource objects to expose
low-level resource handles.

- Added garbage collection to HgiGL for proper handling of resource destruction.
- Added HdRendererPluginHandle, an RAII object for managing plugin lifetimes.
- Added HdxAovInputTask which takes HdRenderBuffer and (if needed) uploads
it to the GPU as HgiTexture.
- Added support for down-sampling volumes in Storm.
- Improved performance of volumes in Storm by not re-creating the entire
volume shader when fields are animated.
- Added support for UsdTransform2d node in Storm. (Issue #1207)
- Added support for UsdUVTexture scale and bias in Storm. (Issue #1129)
- Added USDIMAGINGGL_ENGINE_DEBUG_SCENE_DELEGATE_ID environment variable to
specify scene delegate ID for debugging. (Issue #1093)
- Changed default version of HdSceneDelegate::GetScenePrimPath to strip
delegate ID.
- Replaced obsolete GL_GENERATE_MIPMAP with glGenerateMipmap. (Issue #1171)
- Added support for uint16 type for GL textures and OpenImageIO. (PR #1212)
- Restructured OpenImageIO support as a plugin to Glf. (PR #1214)
- Converted common Hydra tasks (e.g. HdxColorCorrectionTask, HdxPresentTask,
HdxColorizeSelectionTask) to use Hgi.
- Renamed HdxProgressiveTask to HdxTask.
- Storm now uses Hgi for buffers, shaders, and programs instead of OpenGL.
- HdStResourceRegistry is instantiated once per Hgi instance in Storm.
- Unshared computation BAR are reused when possible. (Issue #1083)
- Improved handling of invalid cases in several areas. (PR #1232, PR #1201)
- Improved performance of UsdImagingDelegate::SetTime. (Issue #1166)
- Improved performance for displaying meshes with large numbers of geometry
subsets. (PR #1170)
- Normals are ignored on skinned meshes so they are computed post-skinning.
- Inherited UsdSkel bindings are now respected.
- Allow HdStRenderBuffer::Resolve() to change the size of the image. (PR #1236)
- Removed "catmark" token in pxOsd in favor of "catmullClark".
- Removed UsdImagingGLMaterialTextureAdapter, UsdImagingGLDomeLightAdapter,
GlfVdbTexture[Container], and GlfTextureContainer, which are unneeded with
the new texture system.
- Removed unused HdxColorizeTask and HdxFullscreenShaderGL.
- Removed HdWrapLegacyClamp, which corresponded to the deprecated GL_CLAMP.
- Removed uses of HdStGLSLProgram as part of a new strategy to create these
via HdStResourceRegistry (since it has access to Hgi).
- Removed transform feedback from non-instanced GPU culling in Storm.
- Fixed incorrect handling of buffer array resizing to 0 elements. (Issue #1230)
- Fixed memory regression when calling UsdImagingDelegate::SampleTransform
and SamplePrimvar.
- Fixed error in UsdImaging when changing from a time where a mesh provided
points or normals to a time that does not.
- Fixed potential deadlocks if plugins were loaded at various points in
UsdImagingGLEngine.
- Fixed error when processing skinned prim with no joint influences.
- Fixed change processing issue with native instanced prims. (Issue #1163)
- Fixed handling of widths primvar with no value.
- Fixed "IsFlipped" computation for native instanced prims. (Issue #1190)
- Fixed crash when updating a removed primvar. (PR #1223)
- Fixed crash when reparenting an instance root. (Issue #1245)
- Fixed various issues with cards prims, including a crash issue. (Issue #1210)
- Fixed selection encoding/decoding of invisible native instances.
- Fixed invalidation when changing the "purpose" attribute. (Issue #1243)

### usdview
- Added "Prototypes" pick mode that selects the prototype for a picked gprim
in a PointInstancer and highlights the picked instance.
- Reverted "Prims" and "Instances" pick modes to original behavior of selecting
the root boundable of the picked object. (Issue #1196)
- Fixed "Reopen Stage" when usdview was launched with `--norender`. (PR #1192)
- Fixed camera guide and reticles rendering on high DPI displays.

### Alembic Plugin
- Fixed conversion of mesh subdivision interpolation options between
UsdGeomMesh and AbcGeom's ISubD and OSubD schemas. (PR #1246)

### Embree Plugin
- Removed support for Embree 2.0. The HdEmbree plugin now requires Embree 3.

### MaterialX Plugin
- Added support for MaterialX 1.37 and deprecated support for 1.36. We
anticipate requiring 1.37 in a future release.
- MaterialX "vectorN" datatypes are now translated to USD "floatN" datatypes.
- Changed default output name from "result" to "out" to match conventions
in MaterialX specification.
- Fixed test issue found during Python 3 work. (PR #1161)

### RenderMan Plugin
- Added support for arbitrary numbers of AOVs in HdPrman.
- Removed deprecated RenderMan 22 Hydra plugin.

- Material processing now uses SdrShaderNode::GetResolvedImplementationURI to
locate shaders, which allows it consume shaders identified via
UsdShadeShader's info:sourceAsset property.

- Modified UsdVol support to allow easier extensions with custom volume plugin
for RenderMan.
- Fixed calculation of specularFaceColor in UsdPreviewSurfaceParameters.osl
to better match the spec.

## [20.05] - 2020-04-13

This release includes initial support for Python 3. Many thanks to our
Expand Down
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,16 @@ pxr_toplevel_prologue()
add_subdirectory(pxr)
add_subdirectory(extras)

if (${PXR_BUILD_PRMAN_PLUGIN})
add_subdirectory(third_party/renderman-${RENDERMAN_VERSION_MAJOR})
if (PXR_BUILD_PRMAN_PLUGIN)
set(prmanPluginPath "third_party/renderman-${RENDERMAN_VERSION_MAJOR}")

get_filename_component(prmanPluginAbsPath "${prmanPluginPath}" ABSOLUTE)
if (EXISTS "${prmanPluginAbsPath}")
add_subdirectory("${prmanPluginPath}")
else()
message(FATAL_ERROR "No RenderMan plugin available for "
"RenderMan ${RENDERMAN_VERSION_MAJOR}")
endif()
endif()

if (PXR_BUILD_DOCUMENTATION)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ LZ4
============================================================

LZ4 - Fast LZ compression algorithm
Copyright (C) 2011-2017, Yann Collet.
Copyright (C) 2011-present, Yann Collet.

BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)

Expand Down
Loading

0 comments on commit 71b4baa

Please sign in to comment.