Skip to content

Commit 71b4baa

Browse files
committed
Merge release v20.08
2 parents ebac0a8 + 238d0f4 commit 71b4baa

File tree

1,378 files changed

+55210
-56907
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,378 files changed

+55210
-56907
lines changed

.appveyor.yml

Lines changed: 0 additions & 65 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
.p4*
2+
.DS_Store
3+
.AppleDouble
4+

.travis.yml

Lines changed: 0 additions & 80 deletions
This file was deleted.

BUILDING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,14 @@ that depend on GL, including:
111111
- usdview
112112
- Hydra GL imaging
113113

114+
##### Metal
115+
116+
To build USD with Metal enabled requires macOS Mojave (10.14) or newer.
117+
Support for Metal can optionally be disabled by specifying the cmake flag
118+
```PXR_ENABLE_METAL_SUPPORT=FALSE```. This will skip components and libraries
119+
that depend on Metal, including:
120+
- Hydra imaging
121+
114122
##### OSL (OpenShadingLanguage)
115123

116124
Support for OSL is disabled by default, and can optionally be enabled by

CHANGELOG.md

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,202 @@
11
# Change Log
22

3+
## [20.08] - 2020-07-21
4+
5+
### Build
6+
- The "master" branch on GitHub has been renamed "release".
7+
- Improved error handling when building the RenderMan plugin. (Issue #1054)
8+
9+
- Various fixes and changes to build_usd.py:
10+
- Added `--tools` and `--no-tools` options.
11+
- Updated OpenImageIO (2.1.16.0) and MaterialX (1.37.1) dependencies.
12+
- Specifying `--embree` will now build the Embree library. The
13+
`--embree-location` parameter has been removed.
14+
- CMake 3.14 is now required on Windows to support boost 1.70+.
15+
- Python 3.8 on Windows now causes an error, as USD does not support
16+
this version on Windows.
17+
- Improved handling of boost build failures.
18+
- Fixed locale decoding errors. (Issue #1165)
19+
- Fixed incorrect detection of Draco library. (PR #1239)
20+
21+
### USD
22+
- Added support for "future division" in Python 2 to aid transition to Python 3.
23+
24+
- Added ArResolver::CreatePathForLayer to allow users to customize behavior
25+
when writing a layer. SdfLayer now uses this method instead of creating a
26+
directory, which was not appropriate for non-filesystem uses. (Issue #1148)
27+
28+
- Added SdfReference::IsInternal. (PR #1204)
29+
- Added fallback prim types feature, allowing clients to specify alternative
30+
schemas to use if a schema can't be found. See documentation for more details.
31+
- Added UsdPrim::ApplyAPI, RemoveAPI, AddAppliedSchemas,
32+
and RemoveAppliedSchemas. (Issue #1218)
33+
- Added Python __repr__ for generated schemas.
34+
- Added methods to UsdGeomPrimvar for processing property names.
35+
- Added methods to UsdGeomPrimvarsAPI for creating, removing, and blocking
36+
primvars. (Issue #1100)
37+
- Improved documentation for UsdVol schema domain. (PR #1203)
38+
- Improved documentation for UsdGeomMesh. (PR #1254)
39+
- Improved diagnostic messages for plugin registration and loading.
40+
41+
- Plugin search paths in PXR_PLUGINPATH_NAME can now be a symlink. Paths are
42+
now processed in order to ensure plugins in earlier entries take priority
43+
over those in later entries.
44+
45+
- Replaced SdrShaderNode::GetSourceURI and GetResolvedSourceURI with
46+
GetResolvedDefinitionURI and GetResolvedImplementationURI to properly
47+
represent RenderMan C++ shaders.
48+
49+
- Time sample times from layers whose timeCodesPerSecond value differ from
50+
the UsdStage are now automatically scaled to match. This can be disabled
51+
by setting the PCP_DISABLE_TIME_SCALING_BY_LAYER_TCPS environment variable,
52+
but we expect to remove this in a future release.
53+
54+
- Significant changes and additions to value clips functionality. See
55+
documentation for more details:
56+
- Added support for jump discontinuities in clip times metadata to encode
57+
looping behaviors.
58+
- The clip manifest is now used to determine which attributes have values
59+
in clips. The manifest will be generated in-memory at runtime if one
60+
hasn't been specified.
61+
- Value resolution will no longer fall through to weaker layers if a clip
62+
does not have values for an attribute declared in the manifest. In these
63+
cases, the value may come from the default value authored in the manifest
64+
or (optionally) be interpolated from surrounding clips.
65+
- Removed support for legacy value clips metadata.
66+
- Fixed numerous bugs, including incorrect time samples when reversing
67+
clips. (Issue #1116)
68+
69+
- Changed the strength ordering of entries in the apiSchemas metadata to be
70+
strongest-to-weakest, matching the ordering of references and other fields.
71+
- Constructing a UsdGeom::XformOp with an invalid attribute is no longer a
72+
coding error for consistency with other schemas and objects.
73+
- Deprecated many schemas in UsdRi in preparation for modernization efforts
74+
in a future release.
75+
- Removed support for deprecated "hermite" and "power" basis from UsdGeomCurves.
76+
- Fixed crash when removing many entries from an SdfPathTable. (PR #1172)
77+
- Fixed compile error due to missing virtual destructor for
78+
PcpDynamicFileFormatInterface. (PR #1156)
79+
- Fixed type conversions when setting metadata values using dictionaries
80+
in Python. (Issue #813)
81+
- Fixed handling of stage metadata and session layer muting in UsdStage.
82+
- Fixed UsdFlattenLayerStack to handle mismatched attribute types and
83+
time-sampled asset paths. (PR #1169)
84+
- Fixed undefined behavior issue with iterator comparisons. (Issue #1146)
85+
- Fixed regression in handling of inherited bindings in UsdSkelCache.
86+
- Fixed crash in UsdSkelBakeSkinning. (PR #1213)
87+
88+
### Imaging
89+
- Updated minimum required version of OpenGL to v4.5.
90+
91+
- Added new texture system to Storm. This enables multi-threaded texture
92+
loading, uses Hgi, and frees the scene delegate from having to load
93+
textures. In a performance test using Nvidia's Attic scene, time to first
94+
image dropped by ~90%, from 115s to 10s.
95+
96+
- Added first iteration of HgiMetal, a Metal-based Hgi implementation for
97+
Apple platforms. Currently, Hgi is used in several Hydra tasks to perform
98+
tasks like blitting, the goal is to slowly integrate Hgi in Storm.
99+
100+
- Numerous updates to Hgi:
101+
- Added HgiInterop to exchange rendered results between GL-GL or Metal-GL.
102+
- Added HgiSampler to represent texture samplers.
103+
- Added HgiComputeCmds to issue compute commands.
104+
- Added HgiBlitCmds for mipmap generation and GPU-GPU copy.
105+
- Added SRGB format and removed unsupported 24-bit formats.
106+
- Added GetRawResource function to various resource objects to expose
107+
low-level resource handles.
108+
109+
- Added garbage collection to HgiGL for proper handling of resource destruction.
110+
- Added HdRendererPluginHandle, an RAII object for managing plugin lifetimes.
111+
- Added HdxAovInputTask which takes HdRenderBuffer and (if needed) uploads
112+
it to the GPU as HgiTexture.
113+
- Added support for down-sampling volumes in Storm.
114+
- Improved performance of volumes in Storm by not re-creating the entire
115+
volume shader when fields are animated.
116+
- Added support for UsdTransform2d node in Storm. (Issue #1207)
117+
- Added support for UsdUVTexture scale and bias in Storm. (Issue #1129)
118+
- Added USDIMAGINGGL_ENGINE_DEBUG_SCENE_DELEGATE_ID environment variable to
119+
specify scene delegate ID for debugging. (Issue #1093)
120+
- Changed default version of HdSceneDelegate::GetScenePrimPath to strip
121+
delegate ID.
122+
- Replaced obsolete GL_GENERATE_MIPMAP with glGenerateMipmap. (Issue #1171)
123+
- Added support for uint16 type for GL textures and OpenImageIO. (PR #1212)
124+
- Restructured OpenImageIO support as a plugin to Glf. (PR #1214)
125+
- Converted common Hydra tasks (e.g. HdxColorCorrectionTask, HdxPresentTask,
126+
HdxColorizeSelectionTask) to use Hgi.
127+
- Renamed HdxProgressiveTask to HdxTask.
128+
- Storm now uses Hgi for buffers, shaders, and programs instead of OpenGL.
129+
- HdStResourceRegistry is instantiated once per Hgi instance in Storm.
130+
- Unshared computation BAR are reused when possible. (Issue #1083)
131+
- Improved handling of invalid cases in several areas. (PR #1232, PR #1201)
132+
- Improved performance of UsdImagingDelegate::SetTime. (Issue #1166)
133+
- Improved performance for displaying meshes with large numbers of geometry
134+
subsets. (PR #1170)
135+
- Normals are ignored on skinned meshes so they are computed post-skinning.
136+
- Inherited UsdSkel bindings are now respected.
137+
- Allow HdStRenderBuffer::Resolve() to change the size of the image. (PR #1236)
138+
- Removed "catmark" token in pxOsd in favor of "catmullClark".
139+
- Removed UsdImagingGLMaterialTextureAdapter, UsdImagingGLDomeLightAdapter,
140+
GlfVdbTexture[Container], and GlfTextureContainer, which are unneeded with
141+
the new texture system.
142+
- Removed unused HdxColorizeTask and HdxFullscreenShaderGL.
143+
- Removed HdWrapLegacyClamp, which corresponded to the deprecated GL_CLAMP.
144+
- Removed uses of HdStGLSLProgram as part of a new strategy to create these
145+
via HdStResourceRegistry (since it has access to Hgi).
146+
- Removed transform feedback from non-instanced GPU culling in Storm.
147+
- Fixed incorrect handling of buffer array resizing to 0 elements. (Issue #1230)
148+
- Fixed memory regression when calling UsdImagingDelegate::SampleTransform
149+
and SamplePrimvar.
150+
- Fixed error in UsdImaging when changing from a time where a mesh provided
151+
points or normals to a time that does not.
152+
- Fixed potential deadlocks if plugins were loaded at various points in
153+
UsdImagingGLEngine.
154+
- Fixed error when processing skinned prim with no joint influences.
155+
- Fixed change processing issue with native instanced prims. (Issue #1163)
156+
- Fixed handling of widths primvar with no value.
157+
- Fixed "IsFlipped" computation for native instanced prims. (Issue #1190)
158+
- Fixed crash when updating a removed primvar. (PR #1223)
159+
- Fixed crash when reparenting an instance root. (Issue #1245)
160+
- Fixed various issues with cards prims, including a crash issue. (Issue #1210)
161+
- Fixed selection encoding/decoding of invisible native instances.
162+
- Fixed invalidation when changing the "purpose" attribute. (Issue #1243)
163+
164+
### usdview
165+
- Added "Prototypes" pick mode that selects the prototype for a picked gprim
166+
in a PointInstancer and highlights the picked instance.
167+
- Reverted "Prims" and "Instances" pick modes to original behavior of selecting
168+
the root boundable of the picked object. (Issue #1196)
169+
- Fixed "Reopen Stage" when usdview was launched with `--norender`. (PR #1192)
170+
- Fixed camera guide and reticles rendering on high DPI displays.
171+
172+
### Alembic Plugin
173+
- Fixed conversion of mesh subdivision interpolation options between
174+
UsdGeomMesh and AbcGeom's ISubD and OSubD schemas. (PR #1246)
175+
176+
### Embree Plugin
177+
- Removed support for Embree 2.0. The HdEmbree plugin now requires Embree 3.
178+
179+
### MaterialX Plugin
180+
- Added support for MaterialX 1.37 and deprecated support for 1.36. We
181+
anticipate requiring 1.37 in a future release.
182+
- MaterialX "vectorN" datatypes are now translated to USD "floatN" datatypes.
183+
- Changed default output name from "result" to "out" to match conventions
184+
in MaterialX specification.
185+
- Fixed test issue found during Python 3 work. (PR #1161)
186+
187+
### RenderMan Plugin
188+
- Added support for arbitrary numbers of AOVs in HdPrman.
189+
- Removed deprecated RenderMan 22 Hydra plugin.
190+
191+
- Material processing now uses SdrShaderNode::GetResolvedImplementationURI to
192+
locate shaders, which allows it consume shaders identified via
193+
UsdShadeShader's info:sourceAsset property.
194+
195+
- Modified UsdVol support to allow easier extensions with custom volume plugin
196+
for RenderMan.
197+
- Fixed calculation of specularFaceColor in UsdPreviewSurfaceParameters.osl
198+
to better match the spec.
199+
3200
## [20.05] - 2020-04-13
4201

5202
This release includes initial support for Python 3. Many thanks to our

CMakeLists.txt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,16 @@ pxr_toplevel_prologue()
4444
add_subdirectory(pxr)
4545
add_subdirectory(extras)
4646

47-
if (${PXR_BUILD_PRMAN_PLUGIN})
48-
add_subdirectory(third_party/renderman-${RENDERMAN_VERSION_MAJOR})
47+
if (PXR_BUILD_PRMAN_PLUGIN)
48+
set(prmanPluginPath "third_party/renderman-${RENDERMAN_VERSION_MAJOR}")
49+
50+
get_filename_component(prmanPluginAbsPath "${prmanPluginPath}" ABSOLUTE)
51+
if (EXISTS "${prmanPluginAbsPath}")
52+
add_subdirectory("${prmanPluginPath}")
53+
else()
54+
message(FATAL_ERROR "No RenderMan plugin available for "
55+
"RenderMan ${RENDERMAN_VERSION_MAJOR}")
56+
endif()
4957
endif()
5058

5159
if (PXR_BUILD_DOCUMENTATION)

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ LZ4
383383
============================================================
384384

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

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

0 commit comments

Comments
 (0)