Skip to content

Commit faed18c

Browse files
committed
Merge release v21.11
2 parents 7a5f8c4 + f3754bf commit faed18c

File tree

823 files changed

+55438
-28550
lines changed

Some content is hidden

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

823 files changed

+55438
-28550
lines changed

CHANGELOG.md

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

3+
## [21.11] - 2021-11-01
4+
5+
Ar 2.0 is enabled by default as of this release. Ar 1.0 is deprecated and will
6+
be removed in a subsequent release. During this transition, Ar 1.0 may still be
7+
enabled by setting `PXR_USE_AR_2=OFF` when running CMake.
8+
9+
### Build
10+
- Added support for building against debug versions of Python. Users must
11+
specify `PXR_USE_DEBUG_PYTHON=ON` when running CMake.
12+
(PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478))
13+
14+
- Libraries now use @loader_path instead of absolute paths for RPATHs on macOS.
15+
(PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478))
16+
17+
- Libraries are now prefixed with "libusd_" on Linux and macOS and "usd_" on
18+
Windows to avoid name conflicts with other packages. The previous behavior can
19+
be restored by setting `PXR_LIB_PREFIX="lib"` on Linux and macOS or
20+
`PXR_LIB_PREFIX=""` on Windows when running CMake.
21+
(Issue: [#1615](https://github.com/PixarAnimationStudios/USD/issues/1615))
22+
23+
- Changes and fixes to build_usd.py:
24+
- Added `--debug-python` and `--build-python-info` options to enable builds
25+
against debug versions of Python and to control Python to build against.
26+
(PR: [#1478](https://github.com/PixarAnimationStudios/USD/pull/1478))
27+
- Added `--use-cpp11-abi` option on Linux to control defininition of
28+
`_GLIBCXX_USE_CXX11_ABI` when building USD and dependencies.
29+
(Issue: [#1609](https://github.com/PixarAnimationStudios/USD/issues/1609))
30+
- Replaced `--debug` option with `--build-variant`.
31+
- Updated download locations for boost, libtiff, and libpng to avoid
32+
certificate expiration issues on systems with OpenSSL older than 1.1.0.
33+
- Updated Blosc to v1.20.1 for compatibility with macOS Catalina (10.15).
34+
- Fixed issue where the OpenEXR libraries would be installed in the root of
35+
the filesystem.
36+
(PR: [#1575](https://github.com/PixarAnimationStudios/USD/pull/1575)
37+
38+
### USD
39+
- Fixed deadlock in NdrRegistry::GetNodesByFamily.
40+
41+
- Changes for Ar 2.0:
42+
- ArResolver::CreateDefaultContextForAsset now gives all registered resolvers
43+
an opportunity to provide a default context for an asset.
44+
- ArResolver::GetModificationTimestamp now returns an ArTimestamp object
45+
instead of a VtValue. ArTimestamp requires the use of Unix time to
46+
facilitate asset comparisons across resolvers.
47+
- Added default implementations for ArResolver::GetExtension and
48+
GetModificationTimestamp to simplify resolver implementations.
49+
- Added UsdResolverExample, an example URI resolver implementation.
50+
- Added more documentation.
51+
52+
- Deprecated SdfLayer::GetExternalReferences and UpdateExternalReference in
53+
favor of GetCompositionAssetDependencies and UpdateCompositionAssetDependency.
54+
55+
- SdfLayer no longer treats the inability to retrieve a timestamp for a layer or
56+
its external asset dependencies as an error under Ar 2.0. Calls to
57+
SdfLayer::Reload will always reload layers with invalid timestamps.
58+
59+
- Updated SdfCreateVariantInLayer and SdfCreatePrimInLayer to use "prepend" when
60+
creating new variant sets.
61+
(Issue: [#1552](https://github.com/PixarAnimationStudios/USD/issues/1552))
62+
63+
- Added support for Unicode asset paths on Windows.
64+
(Issue: [#1443](https://github.com/PixarAnimationStudios/USD/issues/1443),
65+
PR: [#1580](https://github.com/PixarAnimationStudios/USD/pull/1580))
66+
67+
- Fixed bug that caused errors when reading large .usda files.
68+
69+
- Code invoked from Python that accesses invalid UsdPrim objects in C++ will now
70+
emit a Python exception instead of crashing.
71+
72+
- Fixed issue where ArResolver::OpenAsset would be called multiple times when
73+
opening an ASCII .usd file or a .usdz file.
74+
(Issue: [#1613](https://github.com/PixarAnimationStudios/USD/issues/1613))
75+
76+
- Fixed bugs in gfGenCode and usdGenSchema where file objects were not closed,
77+
leading to ResourceWarnings from Python.
78+
(PR: [#1557](https://github.com/PixarAnimationStudios/USD/pull/1557))
79+
80+
- Updated usdGenSchema to mark plugInfo as a resource instead of a library when
81+
codeless schemas are being generated via skipCodeGen option.
82+
83+
- Fixed bugs where changes to a layer's resolved path would not trigger
84+
recomposition of prims when needed.
85+
86+
- Fixed bug that caused crashes during composition.
87+
(PR: [#1568](https://github.com/PixarAnimationStudios/USD/pull/1568))
88+
89+
- Fixed bug where UsdNotice::ObjectsChanged notice emitted after call to
90+
UsdStage::Reload would contain pointers to destroyed objects.
91+
(Issue: [#1605](https://github.com/PixarAnimationStudios/USD/issues/1605)
92+
93+
- Fixed bug where UsdUtilsComplianceChecker returned a false error due to not
94+
recognizing the `UsdTransform2d` shader.
95+
(PR: [#1625](https://github.com/PixarAnimationStudios/USD/pull/1625))
96+
97+
- Fixed issue where UsdUtilsExtractExternalReferences would mutate the input
98+
layer unnecessarily.
99+
(Issue: [#1573](https://github.com/PixarAnimationStudios/USD/issues/1573)
100+
101+
- Added UsdGeomVisibilityAPI. This schema provides attributes to control prim
102+
visibility based on the "purpose" attribute from the UsdGeomImageable schema.
103+
It will eventually be the place where primary visibility and purpose are also
104+
housed and authored.
105+
106+
- Added UsdGeomImageable::ComputeEffectiveVisibility for computing purpose
107+
visibility.
108+
109+
- Removed unused UsdGeomImageable::ComputeVisibility overload that took a
110+
parentVisibility parameter.
111+
112+
- Fixed broken Python bindings for UsdPhysics on Windows under Python 3.8+.
113+
114+
- Fixed missing Python bindings and "kilogramsPerUnit" metadata in UsdPhysics.
115+
(PR: [#1606](https://github.com/PixarAnimationStudios/USD/pull/1606))
116+
117+
- Deleted many previously deprecated UsdRi schema classes, namely, UsdRiRisBxdf,
118+
UsdRiRisIntegrator, UsdRiRisObject, UsdRiRisOslPattern, UsdRiRisPattern,
119+
UsdRiRslShader and all UsdRiLight and UsdRiLightFilters which are now part of
120+
the usdRiPxr schema domain.
121+
122+
- Updated connectedAPIBehavior so that APISchemas can now provide
123+
connectableAPIBehavior by explicitly registering a new behavior associated
124+
with the APISchemaType or by providing plug metadata to configure the
125+
connectability behavior. Note that the latter can be used for codeless
126+
schemas.
127+
128+
- Fixed a couple of rare bugs associated with UsdShadeConnectableAPIBehavior and
129+
UsdGeomComputeExtentFunction, resulting in robust behavior when new plugins
130+
are registered.
131+
132+
- Updated UsdUtilsUpdateSchemaWithSdrNodes to include new concepts like addition
133+
of shaderId attribute to the generated schema classes, provide
134+
apiSchemaCanOnlyApplyTo, and provide ability to control
135+
UsdShadeConnectableAPIBehavior using metadata on the sdrNodes. Refer to the
136+
updated documentation for more details.
137+
138+
- Updated usdgenschemafromsdr to be able to provide sdr nodes via explicit asset
139+
paths and to parse and add renderContext related information from the json
140+
config.
141+
142+
- Added support for different Sdr to Sdf type mappings. Introducimg a new
143+
"sdrUsdDefinitionType" metadata field for sdrShaderProperty, which is used to
144+
distinguish between sdrDefaultValue and equivalent sdfTypeDefaultValue. Note
145+
that for backward compatibility SdrShaderProperty::GetDefaultValue currently
146+
returns the same value as SdrShaderProperty::GetSdfTypeDefaultValue, this is
147+
guarded by an environment variable "SDR_DEFAULT_VALUE_AS_SDF_DEFAULT_VALUE".
148+
149+
- Single apply API schemas can now include built-in API schemas and can auto
150+
apply to other single apply API schemas. API schemas are now only allowed to
151+
inherit directly from UsdAPISchemaBase.
152+
153+
- Applied API schemas can no longer inherit from other other applied API
154+
schemas, which allows UsdPrim::HasAPI() to be a much faster query. Non-applied
155+
schemas may still inherit from other non-applied schemas.
156+
157+
- Added UsdLuxLightAPI, which can be applied to geometry to create a light.
158+
UsdLuxLight has been deleted. Added the applied API schemas UsdLuxMeshLightAPI
159+
and UsdLuxVolumeLightAPI, which include UsdLuxLightAPI as a builtin.
160+
- The core lights UsdLuxCylinderLight, UsdLuxDiskLight, UsdLuxRectLight,
161+
UsdLuxSphereLight, and UsdLuxPortalLight all inherit from from
162+
UsdLuxBoundableLightBase, are now Boundable, and have extents/bbox
163+
computations.
164+
- The core lights UsdLuxDomeLight and UsdLuxDistantLight now inherit from
165+
UsdLuxNonboundableLightBase and are not Boundable.
166+
- Deprecated UsdLuxGeometryLight
167+
- Deleted deprecated UsdLuxLightPortal (use UsdLuxPortalLight instead).
168+
- Fixed issue where UsdLux would register default SdrShaderNodes with 'USD'
169+
source types for lights defined outside of UsdLux.
170+
- Default SdrShaderNodes registered for UsdLux lights now include shadow and
171+
shaping API properties.
172+
173+
### Imaging
174+
- First iteration of the Scene Index and Data Source system is now on by default
175+
and compatible with existing scene and render delegates via emulation. No new
176+
functionality is yet exposed as this is thus far intended to validate
177+
correctness and performance. This can be disabled by setting an
178+
HD_ENABLE_SCENE_INDEX_EMULATION environmental variable to "0".
179+
180+
- Changed the return type of UsdImagingDelegate::Get() for the point instancer
181+
"rotate" attribute from GfVec4f (quaternion layout of <real, i, j, k>) to
182+
GfQuath (quaternion layout of <i, j, k, real>). This aligns with the result
183+
of SamplePrimvar(). In hdStorm, the quaternion data is now transported to the
184+
GPU as half-float data, instead of float.
185+
All custom scene delegates supplying the instancer "rotate" primvar via the
186+
Get() API must be updated for the new quaternion layout.
187+
188+
- Added half-float vec2 and vec4 primvar support to hdStorm.
189+
190+
- Added support to UsdImaging for new LightAPI features.
191+
192+
- Added sprim-sprim dependency map to HdChangeTracker so it can track the
193+
dependencies between lights and their light filters.
194+
195+
- UsdImagingMeshAdapter only keeps track of geom subsets that are using the
196+
materialBind family.
197+
198+
- UsdImaging internally manages which prims to call UpdateForTime on, instead of
199+
relying on hydra to maintain that list.
200+
201+
- Extended HdxTaskController to support built-in lights for backends like
202+
HdPrman.
203+
204+
- When filtering primvars by material in UsdImagingGprimAdapter, added filtering
205+
using materials bound to geom subsets.
206+
207+
- Improved dirty list management and performance including moving to a single
208+
dirty list managed by the render index.
209+
210+
- Deleted PrimvarDescCache::Extract and GarbageCollect, and
211+
UsdImagingDelegate::PostSyncCleanup.
212+
213+
- Deleted HdRenderPass::Prepare.
214+
215+
- Improved UsdImagingDelegate performance when editing many instances of the
216+
same prototype.
217+
(PR: [#1608](https://github.com/PixarAnimationStudios/USD/pull/1608))
218+
219+
- Updated stb_image code to latest versions, enable UTF-8 filename support for
220+
Windows.
221+
(PR: [#1580](https://github.com/PixarAnimationStudios/USD/pull/1580))
222+
223+
- Fixed sync valid repr tokens just once for Rprims.
224+
225+
- Fixed memory leak in HioOpenVDB.
226+
227+
- Fixed HioOpenVDB build on windows.
228+
(PR: [#1574](https://github.com/PixarAnimationStudios/USD/pull/1574))
229+
230+
- Fixed errors when trying to read udims from .usdz files.
231+
(Issue: [#1558](https://github.com/PixarAnimationStudios/USD/issues/1558))
232+
233+
- Fixed HdResampleRawTimeSamples() parameter bug and add test coverage.
234+
(Issue: [#1549](https://github.com/PixarAnimationStudios/USD/issues/1549))
235+
236+
- Fixed crash when processing multiple native instancer edits in the same frame.
237+
(Issue: [#1551](https://github.com/PixarAnimationStudios/USD/issues/1551))
238+
239+
- Fixed GprimAdapter::_AddRprim material resolution order to be consistent with
240+
other functions.
241+
(Issue: [#1626](https://github.com/PixarAnimationStudios/USD/issues/1626))
242+
243+
- Fixed to not normalize point instancer quaternions.
244+
(Issue: [#1505](https://github.com/PixarAnimationStudios/USD/issues/1505))
245+
246+
### Storm
247+
- Added support for rendering meshes with geom subsets.
248+
249+
- Added support for rendering DomeLights as a skydome.
250+
(Issue: [#1385](https://github.com/PixarAnimationStudios/USD/issues/1385))
251+
252+
- Added support to rendering BasisCurves that don't completely cover the
253+
supplied points or other primvars.
254+
255+
- Added support for "constant shading" of basis curves wherein they're
256+
unaffected by lighting.
257+
258+
- Added support for screen-space flat normals.
259+
260+
- Improved 1st order approximations of the basic area lights (SphereLight,
261+
DiskLight, RectLight, DistantLight, and CylinderLight).
262+
263+
- Moved barycentric coord generation to codeGen.
264+
265+
- Consolidated edge param calculations.
266+
267+
- Implemented IsValid() for HdStUdimTextureObject.
268+
269+
- Sync visibility once per-Rprim sync rather than per draw item.
270+
271+
- Even if there are zero lights, prims should still use the lighting integrator,
272+
specifically the one specified by their shader key.
273+
274+
- Moved bindless address fetch out of HdStBufferResource.
275+
276+
- Changing the type storing the volume shader glslfx source code and material
277+
params in an HdStMaterial from HdStShaderCode to struct
278+
HdStMaterial::VolumeMaterialData.
279+
280+
- When a scene delegate provides a network without volume output for a material
281+
used by a volume, use the volume fallback shader.
282+
283+
- Removed IsFragmentOnPoint() and IsFragmentOnEdge() shader methods.
284+
285+
- Renamed HdStSurfaceShader to HdSt_MaterialNetworkShader.
286+
287+
- Fixed domelights to respond to visibility changes.
288+
289+
- Fixed crash when UDIM textures are missing.
290+
291+
- Fixed to support all sizes of domelight textures.
292+
293+
- Fixed GS smooth fvar interp for displacement
294+
295+
- Fixed GL version test to include minor version.
296+
(Issues: [#957](https://github.com/PixarAnimationStudios/USD/issues/957) and
297+
[#1001](https://github.com/PixarAnimationStudios/USD/issues/1001)
298+
299+
- Various improvements to Hgi:
300+
- Moved bindless texture management to HgiGL.
301+
- Exposed general and device specific capabilities.
302+
- Improved staging buffer for unified memory devices.
303+
- Use shaderc to compile GLSL to SPIR-V in HgiVulkan.
304+
- Check buffer storage mode before blit sync in HgiMetal.
305+
306+
### RenderMan Hydra Plugin
307+
- Added support for UsdPreviewSurface's displacement in HdPrman.
308+
309+
- Added support for UsdUvTexture's "sourceColorSpace" input and fixed normal
310+
mapping.
311+
312+
- Added support for additional clip planes.
313+
314+
- Added flipped flag to RtxHioImage plugin.
315+
316+
- Adjusted HdPrman's fallback volume shader to match Storm's.
317+
318+
- Introduced codeless usdRiPxr schema domain for RenderMan lights and
319+
lightfilters. These are generated using usdgenschemfromsdr from rman light and
320+
lightfilter args files. Note that these schemas are compatible with RenderMan
321+
24.2.
322+
323+
- Removed use of "allowPresenceWithGlass" from UsdPreviewSurfaceParameters node.
324+
325+
- RtxHioImage can convert various texture formats to type float, so they can be
326+
passed to Renderman.
327+
(Issue: [#1313](https://github.com/PixarAnimationStudios/USD/issues/1313))
328+
329+
- Fixed HdPrman's fallback maxSamples to match the RenderMan fallback (64).
330+
331+
### MaterialX
332+
- Updating the arguments passed into mx::loadLibraries to better accommodate
333+
relocating the MaterialX libraries folder.
334+
(Issue: [#1586](https://github.com/PixarAnimationStudios/USD/issues/1586))
335+
3336
## [21.08] - 2021-07-15
4337

5338
Ar 2.0 is feature-complete as of this release. We anticipate addressing

VERSIONS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Our test machines have the following software versions installed
1414

1515
| Software | Linux | macOS | Windows |
1616
| ------------- | -------------------- | ---------------------------- | ------------------------------ |
17-
| OS | CentOS Linux 7 | 10.14.6 | Windows 10 |
18-
| C++ Compiler | gcc 6.3.1 | Apple LLVM 10.0.0 (Xcode 10.1) | MSVC 14.0 (Visual Studio 2015) |
17+
| OS | CentOS Linux 7 | 10.15.7 | Windows 10 |
18+
| C++ Compiler | gcc 6.3.1 | Apple clang 11.0.3 (Xcode 11.7) | MSVC 14.0 (Visual Studio 2015) |
1919
| CMake | 3.14.6 | 3.16.5 | 3.16.5 |
2020
| Python | 2.7.16, 3.6.8 | 2.7.10, 3.7.7 | 2.7.12, 3.7.4, 3.8.10 |
2121
| Boost | 1.66.0, 1.70.0 | 1.70.0 | 1.70.0 |

0 commit comments

Comments
 (0)