Skip to content

Commit dc71092

Browse files
committed
Merge release v21.02
2 parents d8a405a + 9e8df23 commit dc71092

File tree

1,188 files changed

+93152
-15769
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,188 files changed

+93152
-15769
lines changed

BUILDING.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Support for Python can optionally be disabled by specifying the cmake flag
104104
Support for Python 3 can be enabled by specifying the cmake flag
105105
```PXR_USE_PYTHON_3=ON```.
106106

107-
##### OpenGL and GLEW
107+
##### OpenGL
108108

109109
Support for OpenGL can optionally be disabled by specifying the cmake flag
110110
```PXR_ENABLE_GL_SUPPORT=FALSE```. This will skip components and libraries
@@ -114,12 +114,22 @@ that depend on GL, including:
114114

115115
##### Metal
116116

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

123+
##### Vulkan
124+
125+
Building USD with Vulkan enabled requires the Vulkan SDK and glslang to
126+
be installed. The VULKAN_SDK environment variable must point to the
127+
location of the SDK. The glslang compiler headers must be locatable during
128+
the build process.
129+
130+
Support for Vulkan can optionally be enabled by specifying the cmake flag
131+
```PXR_ENABLE_VULKAN_SUPPORT=TRUE```.
132+
123133
##### OSL (OpenShadingLanguage)
124134

125135
Support for OSL is disabled by default, and can optionally be enabled by
@@ -308,6 +318,20 @@ of the environment variable using the following CMake option:
308318
By doing this, USD will check the ```CUSTOM_USD_PLUGINPATHS``` environment variable for paths, instead of the default
309319
```PXR_PLUGINPATH_NAME``` one.
310320

321+
The values specified in ```PXR_PLUGINPATH_NAME``` or ```PXR_INSTALL_LOCATION```
322+
have the following characteristics:
323+
324+
- Values may contain any number of paths.
325+
326+
- Paths ending with slash ('/') have 'plugInfo.json' appended automatically.
327+
328+
- '*' may be used anywhere to match any character except slash.
329+
330+
- '**' may be used anywhere to match any character including slash.
331+
332+
- Paths follow Unix '$PATH'-like conventions; when duplicate definitions exist
333+
in the path, the first one found is used.
334+
311335
##### Shared library prefix
312336

313337
By default shared libraries will have the prefix 'lib'. This means, for a given
@@ -552,6 +576,25 @@ will add usd_m's interface link libraries, etc. This second instance
552576
doesn't increase the resulting file size because all symbols will be
553577
found in the first (-WHOLEARCHIVE) instance.
554578

579+
###### Avoiding linking statically to Python
580+
581+
The default build with python support will link to the python static lib for
582+
your interpreter. This is to support running python code from C++. If that is
583+
not desirable, python static linking can be disabled using the flag
584+
585+
```
586+
-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUP=ON
587+
```
588+
589+
The primary motivating case for this is generating wheel packages for PyPI, but
590+
the parameter was made more generic in case it has other uses in the future. It
591+
is useful when we want to take advantage of python's approach to ABI
592+
compatibility.
593+
594+
Note that this flag has no effect on Windows, see
595+
[here for more info](https://docs.python.org/3/extending/windows.html)
596+
597+
555598
## Build Issues FAQ
556599

557600
1. Boost_NO_BOOST_CMAKE:

CHANGELOG.md

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

3+
## [21.02] - 2021-01-18
4+
5+
### Build
6+
- Added build and packaging scripts for PyPI packages. Thanks to Nvidia for
7+
their work on this project!
8+
- Updated documentation build to fix several issues and no longer require
9+
Python. (Issue #718)
10+
- GLEW is no longer required for building imaging components.
11+
12+
- Various fixes and changes to build_usd.py:
13+
- Fixed command-line args not being respected for OpenVDB. (PR #1406)
14+
- Updated boost to 1.70 on macOS for both Python 2 and 3. (Issue #1369)
15+
- Updated MaterialX to 1.37.3 with shared libraries on Linux.
16+
17+
- Fixed various linking issues with OpenEXR. (PR #1398)
18+
19+
### USD
20+
- Allow setting malloc hook functions if they were previously set to malloc/etc.
21+
- Fixed handling of symbolic links and mount points on Windows. (PR #1378)
22+
- Fixed incorrect handling of non-existent variables in TfEnvSetting in Python.
23+
- Updated GfRect2i API to use function and argument names that are agnostic
24+
to the direction of the Y axis.
25+
- Updated ilmbase half embedded in Gf to OpenEXR v2.5.3. (Issue #1354)
26+
- Added VtArray::AsConst, cfront, and cback methods to help avoid inadvertent
27+
copy-on-writes and thread-safety issues.
28+
29+
- Fixes for variety of issues with VtArray conversions in Python, including
30+
conversion from Python sequences if all elements are convertible and a
31+
bug with inadvertent copy-on-writes. (Issue #1138)
32+
33+
- Initial implementation of Ar 2.0. This includes new features like support
34+
for URI resolvers and many changes to the ArResolver interface. For more
35+
details see https://graphics.pixar.com/usd/docs/668045551.html.
36+
37+
Work on Ar 2.0 is not yet complete and will continue through the next few
38+
releases. Ar 2.0 is disabled by default but can be enabled for preview and
39+
initial testing by specifying `PXR_USE_AR_2=ON` when running CMake.
40+
41+
- Moved SdfFindOrOpenRelativeToLayer to SdfLayer::FindOrOpenRelativeToLayer.
42+
- Fixed SdfLayer::FindRelativeToLayer to use the same anchoring logic as
43+
SdfLayer::FindOrOpenRelativeToLayer.
44+
- Fixed string encoding issue in .usda file writer. (Issue #1331)
45+
- Improved behavior when hitting hard-coded composition graph limits in Pcp.
46+
- Fixed incorrect native instancing behavior with sub-root references.
47+
48+
- Added support for auto-apply API schemas. This allows single-apply API
49+
schemas to be automatically applied to prims using one of a list of
50+
associated concrete schema types instead of requiring the user to manually
51+
apply the API schema.
52+
53+
- Renamed UsdSchemaType to UsdSchemaKind to disambiguate between the schema
54+
type (e.g. UsdGeomSphere) and kind (e.g. non-applied, single-apply, etc).
55+
- Deprecated functions using the "schema type" terminology in favor of
56+
"schema kind".
57+
- Added UsdVariantSet::BlockVariantSelection. (Issue #1319, PR #1340)
58+
- Removed deprecated UsdAttribute::BlockConnections.
59+
- Removed deprecated UsdRelationship::BlockTargets.
60+
- Removed deprecated UsdCollectionAPI::ApplyCollection.
61+
- Added "container" concept to UsdShadeConnectableAPI.
62+
- Added support for connecting multiple sources to UsdShadeConnectableAPI.
63+
- Deprecated API for connecting to single sources in favor of the more
64+
general multiple-source API on UsdShadeConnectableAPI.
65+
66+
- Deprecated UsdConnectableAPI::IsShader and IsNodeGraph in favor of
67+
IsContainer API. Warnings are emitted on first use unless the environment
68+
setting `USD_SHADE_EMIT_CONNECTABLE_API_DEPRECATION_WARNING` is set to 0.
69+
70+
- Updated various clients to apply the UsdShadeMaterialBindingAPI schema
71+
before binding materials.
72+
- Fixed Python binding for UsdShade.CoordSysAPI.HasLocalBindings. (PR #1360)
73+
- Fixed Python binding for UsdSkel.SkinningQuery.ComputeExtentsPadding.
74+
(Issue #1375)
75+
- Added UsdLuxPluginLight and UsdLuxPluginLightFilter schemas that allow for
76+
defining a light or light filter via an SdrShaderNode.
77+
- UsdLuxLight and UsdLuxLightFilter schemas now publish an associated
78+
SdrShaderNode based on their built-in properties.
79+
- Input attributes for UsdLuxLight and UsdLuxLightFilter schemas are now
80+
connectable and have been renamed to include the "inputs:" prefix.
81+
- Deprecated UsdLuxLightPortal schema in favor of new UsdLuxPortalLight schema.
82+
83+
### Imaging
84+
- Added new GL Loading Library (GLApi) to replace GLEW. GLEW is no longer
85+
required.
86+
- Added HioImage, removed GlfImage.
87+
- Added new camera framing API. Introduces the display and data window and
88+
storage size to separate these concepts. Updated Storm, HdPrman, and HdEmbree.
89+
- Added support for normal buffers to HdxPickFromRenderBufferTask.
90+
- Added standard prim API to HdInstancer and HdSceneDelegate::GetInstancerId.
91+
- Added support for animated extents when using draw modes. (PR #1365)
92+
- Improved Hydra camera to better support physically based attributes.
93+
- Extended HdDisplayStyle to house more advanced selection behaviors.
94+
- Changed renderParams timeCode default values from Default to EarliestValue.
95+
- Changed UsdImagingDelegate to map HdLightTokens to the new input attribute
96+
names in queries through GetLightParamValue.
97+
- Merged tokens textureResourceMemory into textureMemory for better performance
98+
tracking.
99+
- Renamed UsdImagingValueCache to UsdImagingPrimvarDescCache, it only stores
100+
primvar descriptors.
101+
- Removed implementations of deprecated HdSceneDelegate::GetTextureResource.
102+
- Removed HwFieldReader volume material node in favor of typed nodes.
103+
- Fixed bug in pick targets when resolving unique hits. (Issue #1343)
104+
- Fixed UsdSkel instance drawing at origin bug. (Issue #1347)
105+
- Fixed UsdImaging to discard coord sys bindings to non-existent xforms.
106+
(Issue #1346)
107+
- Fixed UsdSkelImagingSkeletonAdapter to forward GetMaterialId and
108+
GetDoubleSided calls to skinned mesh primadapter. (Issue #1384)
109+
- Fixed an issue where UsdSkelImagingSkeletonAdapter::_RemovePrim() failed to
110+
remove skeletons that did not have any bindings to skinned prims.
111+
(Issue #1228, #1248)
112+
- Fixed some display crashes after resyncing skeletons. (PR #1397)
113+
- Fixed dome light preview surface. (PR #1392)
114+
- Fixed links to OpenEXR for Alembic and OpenImageIO plugins. (PR #1398)
115+
116+
### Storm
117+
- Added support for varying interpolation of any basis curves primvar.
118+
(Issue #1308)
119+
- Added support for HdStResourceRegistry::ReloadResource to allow clients to
120+
explicitly force textures to be reloaded by file path. (Issue #1352)
121+
- Added a new HdMaterialNetwork2 to combine (and then replace)
122+
HdStMaterialNetwork and MatFiltNetwork.
123+
- Added step to convert 3 channel textures to 4 channel to support Hgi backends
124+
with 4 channel requirements.
125+
- Added Resize() to barContainer.
126+
- Added fieldTextureMemory render setting to specify the target memory of
127+
volume textures.
128+
- Added experimental MaterialXFilter to process a material network and convert
129+
it into a MaterialX network. Also, added a first pass on a MaterialX
130+
shadergen.
131+
- Enabled bindless textures by default.
132+
- Several improvements to volume rendering including a step size relative to the
133+
sample distance so that the quality of the rendered volume does not depend on
134+
the scale.
135+
- Optimized HdStRenderBuffer performance by only allocating when the descriptor
136+
changes.
137+
- Optimized computations by avoiding copying the compute kernel for GPU
138+
computations.
139+
- Refactored face culling to remove fragment shader discards when possible.
140+
- Refactored geometric shaders such that only prims with the "masked" material
141+
tag can use alpha threshold based discards.
142+
- Switched Storm over to using the "translucent" material tag rather than
143+
"additive" as the default translucency state.
144+
- Fixed handling of valid to invalid BAR transitions due to Scene graph
145+
operations on primvars or primvar filtering. (Issue #1182)
146+
- Fixed GPU memory leak of certain buffers never getting garbage collected.
147+
- Fixed fullscreen pass to preserve alpha.
148+
- Removed instance primvar filtering.
149+
- Various improvements to Hgi :
150+
- Added initial version of the Hgi codegen to be able to produce
151+
GLSL/MetalSL/others from glslfx.
152+
- Added the first push of our experimental, incomplete, HgiVulkan backend,
153+
which does not yet build by default.
154+
- Added memory barriers to Hgi.
155+
- Added CopyTextureToBuffer and CopyBufferToTexture to HgiBlitCmds.
156+
- Added 2D_ARRAY support to Hgi.
157+
- Moved Ptex and Udim loading from Glf to Hgi and Storm.
158+
- Added UINT16 format as prep work for Ptex support.
159+
- Fixed obj-c autorelease issue, and simplification of secondary command
160+
buffer in HgiMetal compute encoder.
161+
- Fixed HgiTexture::GetByteSizeOfResource to take the mip levels into account.
162+
- Fixed for missing include. (PR #1359)
163+
164+
### usdview
165+
- Fixed StageView.pickObject when doubles are small or out of image-bounds.
166+
(PR #1296)
167+
168+
### MaterialX Plugin
169+
- Removed deprecated support for MaterialX 1.36.
170+
171+
### Embree Hydra Plugin
172+
- Added support for new camera framing API and HdCamera API.
173+
174+
### RenderMan Hydra Plugin
175+
- Bumped version requirement to RenderMan 23.5 or greater.
176+
- Improved calculation of vertex, varying, and face-varying primvar counts in
177+
BasisCurves to better match RenderMan.
178+
- Added support for new camera framing API and HdCamera API.
179+
- Added support for material node int array inputs. (Issue #1294)
180+
- Fixed issue that caused parameters from a shader to be incorrectly carried
181+
over to the next shader that was parsed. (Issue #1396)
182+
3183
## [20.11] - 2020-10-14
4184

5185
### Build

LICENSE.txt

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,3 +522,70 @@ Roboto Mono Fonts
522522
============================================================
523523
USD bundles Roboto Mono fonts, which is available under the Apache 2.0 license.
524524
For details, see https://fonts.google.com/specimen/Roboto+Mono#license
525+
526+
527+
============================================================
528+
Vulkan Memory Allocator
529+
============================================================
530+
Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
531+
532+
Permission is hereby granted, free of charge, to any person obtaining a copy
533+
of this software and associated documentation files (the "Software"), to deal
534+
in the Software without restriction, including without limitation the rights
535+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
536+
copies of the Software, and to permit persons to whom the Software is
537+
furnished to do so, subject to the following conditions:
538+
539+
The above copyright notice and this permission notice shall be included in
540+
all copies or substantial portions of the Software.
541+
542+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
543+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
544+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
545+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
546+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
547+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
548+
THE SOFTWARE.
549+
550+
551+
============================================================
552+
Spirv Reflect
553+
============================================================
554+
Copyright 2017-2018 Google Inc.
555+
556+
Licensed under the Apache License, Version 2.0 (the "License");
557+
you may not use this file except in compliance with the License.
558+
You may obtain a copy of the License at
559+
560+
http://www.apache.org/licenses/LICENSE-2.0
561+
562+
Unless required by applicable law or agreed to in writing, software
563+
distributed under the License is distributed on an "AS IS" BASIS,
564+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
565+
See the License for the specific language governing permissions and
566+
limitations under the License.
567+
568+
569+
============================================================
570+
khrplatform.h
571+
============================================================
572+
Copyright (c) 2008-2018 The Khronos Group Inc.
573+
574+
Permission is hereby granted, free of charge, to any person obtaining a
575+
copy of this software and/or associated documentation files (the
576+
"Materials"), to deal in the Materials without restriction, including
577+
without limitation the rights to use, copy, modify, merge, publish,
578+
distribute, sublicense, and/or sell copies of the Materials, and to
579+
permit persons to whom the Materials are furnished to do so, subject to
580+
the following conditions:
581+
582+
The above copyright notice and this permission notice shall be included
583+
in all copies or substantial portions of the Materials.
584+
585+
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
586+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
587+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
588+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
589+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
590+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
591+
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ The following dependencies are required:
6969

7070
The following dependencies are optional:
7171

72-
- [GLEW](http://glew.sourceforge.net/)
7372
- [OpenEXR](http://www.openexr.com)
7473
- [OpenImageIO](https://sites.google.com/site/openimageio/home)
7574
- [OpenColorIO](http://opencolorio.org/)

VERSIONS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ Our test machines have the following software versions installed
2020
| Boost | 1.61.0, 1.70.0 | 1.61.0, 1.70.0 | 1.61.0, 1.70.0 |
2121
| Intel TBB | 2017 Update 6 | 2017 Update 6 | 2017 Update 6 |
2222
| OpenSubdiv | 3.4.3 | 3.4.3 | 3.4.3 |
23-
| GLEW | 2.0.0 | 2.0.0 | 2.0.0 |
2423
| OpenImageIO | 2.1.16.0 | 2.1.16.0 | 2.1.16.0 |
2524
| OpenColorIO | 1.0.9 | 1.1.0 | 1.1.0 |
2625
| OSL | 1.8.12 | | |
@@ -38,6 +37,7 @@ Our test machines have the following software versions installed
3837
| Doxygen | 1.8.14 | | |
3938
| GraphViz | 2.40.1 | | |
4039
| OpenVDB | 5.2.0, 6.1.0 | 6.1.0 | 6.1.0 |
40+
| Vulkan SDK | 1.2.135.0 | 1.2.135.0 | 1.2.135.0 |
4141

4242
## Other Known Versions
4343

azure-pipelines.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ jobs:
3030
- script: |
3131
# The SYSTEM env var is used by the Makefile of glew and having it set trips it up
3232
unset SYSTEM
33+
# Update PATH to ensure that pyside2-uic can be found
34+
export PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
3335
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_10.1.app/Contents/Developer"
3436
sudo pip install pyside2 ;
3537
sudo pip install PyOpenGL ;

0 commit comments

Comments
 (0)