Skip to content

Commit d8a405a

Browse files
committed
Merge release v20.11
2 parents 71b4baa + edc7cde commit d8a405a

File tree

912 files changed

+29197
-16598
lines changed

Some content is hidden

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

912 files changed

+29197
-16598
lines changed

BUILDING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Advanced Build Configuration
1212
- [USD Developer Options](#usd-developer-options)
1313
- [Optimization Options](#optimization-options)
1414
- [Linker Options](#linker-options)
15+
- [Build Issues FAQ](#build-issues-faq)
1516

1617
## Building With Build Script
1718

@@ -550,3 +551,13 @@ to get the path to the library. We also link 'usd_m' separately so cmake
550551
will add usd_m's interface link libraries, etc. This second instance
551552
doesn't increase the resulting file size because all symbols will be
552553
found in the first (-WHOLEARCHIVE) instance.
554+
555+
## Build Issues FAQ
556+
557+
1. Boost_NO_BOOST_CMAKE:
558+
We currently set Boost_NO_BOOST_CMAKE=ON explicitly in USD builds for all
559+
platforms to avoid issues with Boost config files (introduced in Boost version
560+
1.70) and python, program options component requirements. If the user wants
561+
to use Boost specified config files for their USD build, specify
562+
-DBoost_NO_BOOST_CMAKE=OFF when running cmake.
563+

CHANGELOG.md

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

3+
## [20.11] - 2020-10-14
4+
5+
### Build
6+
- Updated CMakeLists.txt to conform to recommended practice. (Issue #1241)
7+
- The build system now sets `Boost_NO_BOOST_CMAKE=ON` by default to
8+
work around issues with boost's cmake files. (Issue #1255)
9+
10+
- Various fixes and changes to build_usd.py:
11+
- Added `--toolset` option for specifying CMake toolset. (PR #1325)
12+
- Added `--prefer-safety-over-speed` and `--prefer-speed-over-safety`
13+
options. See below for more details.
14+
- Fixed issue with building libTIFF with Xcode 12. (PR #1315)
15+
16+
### USD
17+
- Fixed incorrect underlying container type for TfHashMultiMap. (PR #1281)
18+
- Fixed invalid conversions of Gf containers like GfVec3f in Python. Note this
19+
issue is still present in Python 3. (Issue #1290)
20+
- Fixed various tests to accommodate `PXR_OVERRIDE_PLUGINPATH_NAME`. (PR #1275)
21+
22+
- Added GetExternalAssetDependencies to SdfLayer and SdfFileFormat to allow
23+
file format plugins to declare additional dependencies that determine when
24+
a layer produced from that file format should be reloaded.
25+
26+
- Reduced memory usage from SdfPath::GetString and added SdfPath::GetAsString
27+
and SdfPath::GetAsToken to avoid populating internal caches. (Issue #1287)
28+
29+
- Various fixes to composition behavior:
30+
- Fixed issues with sub-root references, payloads, and inherits, and
31+
ancestral variant selections.
32+
- Fixed issue with payloads on ancestors of sub-root references/payloads.
33+
- Fixed issue with combinations of root, sub-root, and ancestral inherits.
34+
35+
- Fixed bug in .usda file writer that could cause data corruption. (Issue #1331)
36+
- Fixed performance issue when writing many relationship targets or attribute
37+
connections to .usdc files. (Issue #1345)
38+
39+
- Improved performance for certain queries with .usdc files. In one example,
40+
this decreased draw times in usdview after transform changes by ~90%.
41+
(Issue #1300)
42+
43+
- New .usdc files now default to version 0.8.0. These files cannot be read in
44+
USD releases prior to v19.03. Users can revert to writing older versions by
45+
setting the environment variable `USD_WRITE_NEW_USDC_FILES_AS_VERSION` to an
46+
older version.
47+
48+
- Added safety checks to guard against reading malformed .usdc files. These
49+
checks may negatively impact performance and may be disabled by specifying
50+
`PXR_PREFER_SAFETY_OVER_SPEED=OFF` when running CMake or
51+
`--prefer-speed-over-safety` with build_usd.py.
52+
53+
- Native instancing "master" prims are now referred to as "prototype" prims.
54+
The generated paths of prototype prims has been changed from /__Master_<X>
55+
to /__Prototype_<X>. Clients can use new UsdPrim::IsPrototypePath and
56+
UsdPrim::IsPathInPrototype API to determine if a given path is related
57+
to a prototype.
58+
59+
UsdStage and UsdPrim API using "master" terminology like UsdPrim::GetMaster
60+
and UsdStage::GetMasters have been deprecated and will be removed in a future
61+
release.
62+
63+
- Added Get/Set/ClearChildrenReorder to UsdPrim for reordering prim children.
64+
- UsdProperty::FlattenTo now allows flattening properties across stages.
65+
- Deprecated UsdRelationship::BlockTargets and UsdAttribute::BlockConnections.
66+
Clients should use SetTargets({}) and SetConnections({}) instead.
67+
- Changed UsdRelationship::GetTargets and UsdAttribute::GetConnections to return
68+
false when HasAuthored would return false.
69+
- Fixed bug where UsdFlattenLayerStack was not applying the asset path
70+
resolution callback to asset paths in `clips` metadata. (PR #1266)
71+
- Added UsdNotice::LayerMutingChanged notice. (Issue #676)
72+
- Fixed resource leak with Usd.PrimCompositionQuery in Python. (PR #1297)
73+
- Fixed crashes when printing expired Sdf.Layer and Usd.Stage objects in
74+
Python. (PR #1012)
75+
- Removed `isPrivateApply` functionality from schema generation.
76+
- Fixed error in UsdUtilsComputeAllDependencies when an invalid
77+
templateAssetPath value is specified. (PR #1289)
78+
- Improved UsdUtilsGetPrimaryUVSetName and UsdUtilsGetPrefName. (PR #1283)
79+
- Fixed bug in UsdUtilsStitchClips that led to inconsistent stitched results.
80+
81+
- Added CanContainPropertyName to UsdCollectionAPI, UsdGeomPrimvars,
82+
UsdShadeMaterialBindingAPI, and UsdShadeCoordSysAPI for checking if a
83+
property name is valid for these schemas.
84+
85+
- Deprecated UsdCollectionAPI::ApplyCollection in favor of Apply.
86+
- Added fallback values for texture card attributes on UsdGeomModelAPI schema.
87+
- Added exposure control to UsdGeomCamera.
88+
- Added ease-of-use API to UsdGeom primitives for querying the size of primary
89+
geometric properties (e.g. UsdGeomMesh::GetFaceCount).
90+
- Fixed plugin extent computations for primitives in UsdGeom to respect
91+
given timecode parameter. (PR #1284)
92+
- Fixed crash in UsdGeomSubset::GetUnassignedIndices when a given subset had
93+
negative indices. (Issue #1227)
94+
- Added UsdShadeNodeDefAPI schema to represent connectable nodes in a graph.
95+
UsdShadeShader has been modified to build off of this schema.
96+
- Added UsdShadeConnectableAPIBehavior to allow plugins to customize
97+
connectability by prim type.
98+
- Added API to retrieve material outputs for standard terminals in all
99+
render contexts on UsdShadeMaterial.
100+
- Added more instancing support to UsdSkel. (PR #1258)
101+
- Updated UsdVol FieldAsset schemas.
102+
- Various documentation fixes. (Issue #1162, PR #1335)
103+
104+
### Imaging
105+
- Added new "sourceColorSpace" input to UsdUVTexture with values "raw", "sRGB",
106+
and "auto" for better control of with which color space a texture is read.
107+
- Added ability to use mip maps authored in a file in the new texture system in
108+
Storm.
109+
- Added UsdImagingPrimAdapter::ShouldIgnoreNativeInstanceSubtrees() to allow
110+
adapters to disable instancing of itself and its descendants.
111+
- Added pre-multiply alpha functionality for UDIM textures. Also added sRGB
112+
internal formats for UDIMs.
113+
- Added checks in HioGlslfxConfig to make sure the default value for an
114+
attribute and its type match.
115+
- Added HdEngine::ClearTaskContextData() to avoid the task context to hold on to
116+
resources that are about to become invalid as the render delegate is destroyed.
117+
- Added HDST_DUMP_FAILING_SHADER_SOURCEFILE debug flag to facilitate shader
118+
debugging.
119+
- Added texture filepath resolution for symlinks.
120+
- Added an "outHitNormal" parameter to UsdImagingGLEngine::TestIntersection().
121+
- Added ReloadResource in Storm which reloads shader files when they change.
122+
123+
- Improvements to Hgi:
124+
- Added Draw, DrawIndirect and DrawIndexedIndirect to Hgi and backends.
125+
- Added tracking of HgiCmds submission to ensure they only get submitted once.
126+
- Added TextureCpuToGpu copy on BlitCmd, and CopyBufferGpuToCpu to read back
127+
the GPU frustum cull results.
128+
- Added guarantees that HgiGLInterop will restore GL state after interop.
129+
- Added guarantees that Hgi GPU-GPU sync between SubmitCmds calls.
130+
- Added TextureView to Hgi and convert domelight to use Hgi compute and
131+
texture views.
132+
- Added staging buffer in Hgi to reduce the amount of times small amounts of
133+
data are copied into the same GPU buffer.
134+
- Added HgiPrimitiveType, and added HgiSampleCount on HgiPipelineDesc.
135+
- Added support for BC texture compression.
136+
- Added component mapping to HgiTextureDesc and implementations for GL and
137+
Metal.
138+
- Added ability to share HgiCmds objects in Storm.
139+
- Added optional wait behavior for command submission in Hgi.
140+
141+
- Changed GLenum usage in GlfBaseTextureData and others to use new HioFormat.
142+
- Changed Storm's frustum culling to be done via a vertex shader without a
143+
fragment shader.
144+
- Changed HdxShadowTask to specify that it should only render opaque and masked
145+
materials.
146+
- Changed cards UVs from face-varying to vertex interpolated.
147+
- Changed to GL_SAMPLE_ALPHA_TO_ONE when using alpha to coverage, the alpha
148+
computed after the framebuffer resolve is more meaningful.
149+
- Changed texture cards to require prims with UsdGeomModelAPI schema applied.
150+
- Changed type of UsdPrimvarReader.varname input from token to string.
151+
- Renamed various HdSt*GL classes to just HdSt*, this is part of the transition
152+
of Storm to support multiple rendering APIs.
153+
- Enabled bindless shadow maps by default in Storm.
154+
- On first material sync in Storm, now we try to batch prims with identical
155+
textures together.
156+
- HdStDrawTarget's preferred mechanism are AOVs not GlfDrawTarget's. This change
157+
allows us to remove all GlfDrawTarget support from HdStDrawTarget.
158+
- Since HdStDrawTarget's no longer rely on the resolve task, removing code to
159+
communicate the draw target task render passes to the resolve task.
160+
- Deprecated HdSceneDelegate::GetTextureResource and will eventually be removed.
161+
- An application can now disable the PresentTask in hdx task controller.
162+
- When imaging basis curves, treat empty normals array the same as missing
163+
normals (i.e. draw as tube and not ribbon at higher complexities).
164+
- Store HgiResourceBindings and HgiPipeline objects on HdSt resource registry.
165+
- Switched (most of) the GPU frustum culling code from raw GL to Hgi.
166+
- With the addition of HgiMetal, all platforms we currently support (for Storm)
167+
support color correction and 16F targets.
168+
- Use BufferResource for GPU frustum cull result buffer so we can use the
169+
regular buffer binding APIs.
170+
- Load mipmap data in HgiMetal textures.
171+
- Changed signature of HgiDataSizeOfFormat so that it can return blockWidth and
172+
blockHeight. Returning block size in bytes for compressed formats.
173+
- Describe shader constants (push constants) in pipeline.
174+
- Using HgiCompute in smooth normals computation, switched flat normals and
175+
quadrangulate to HgiCompute, and converted HdStExtCompGpuComputation to Hgi.
176+
177+
- Removed UsdImaging value cache API for all data except primvar descriptors and
178+
instance indices.
179+
- Removed unused hitMode field from HdxPickTaskContextParams.
180+
- Removed UsdImagingGLEngine::InvalidateBuffers().
181+
- Removed pre-multiply alpha behavior from volume.glslfx and changed
182+
renderPass.glslfx to allow fully transparent but still emissive volumes.
183+
- Removed pre-multiply alpha behavior from stb_image and make it optional via
184+
SubtextureIdentifier within the HdSt texture system.
185+
- Removed support of old-style draw targets using GlfDrawTarget instead of AOVs
186+
and render buffers.
187+
- Removed UsdUvTexture's rgba output, and updated the cards draw mode to now use
188+
"rgb" and "a" outputs rather than rgba.
189+
- Removed ReloadAllShaders from HdEngine.
190+
- Removed HD_DRAWITEM_DRAWN as it uses raw gl calls that map/unmap a buffer.
191+
- Removed HgiPipelineType. We split HgiPipeline into HgiComputePipeline and
192+
HgiGraphicsPipeline a little bit ago.
193+
- Removed resource bindings handle from pipeline.
194+
- Removed smooth normals CPU fallback path. Since previous releases required
195+
OpenGL 4.5 for Hgi to work, OpenGL compute must always be available.
196+
- Removed HdBinding::TBO.
197+
- Removed the implicit barriers from Hgi and let the external client manage
198+
synchronization via SubmitCmds.
199+
200+
- Fixed potential dead-lock caused by parallel loading plugins.
201+
- Fixed lights to be turned off when invisible in UsdImaging.
202+
- Fixed issue with UsdImagingGLEngine::TestIntersection such that it now
203+
correctly populates. Callers of this function are reminded to provide the
204+
"frame" field in UsdImagingGLRenderParams for correct and performant results.
205+
- Fixed handling of computed primvar sources for meshes.
206+
- Fixed normals after complexity change.
207+
- Fixed HgiGL garbage collector leak when Hgi is recreated during process.
208+
- Fixed HgiGL to better protect against long labels when using glObjectLabel.
209+
- Fixed render settings behaviors so we test whether or not we're really
210+
changing anything before incrementing the settings version.
211+
- Fixed for cycle detection in material network processing.
212+
- Fixed Glf lighting resource binding.
213+
- Fixed USD edit dependency tracking for cards prims.
214+
215+
- Updated UsdPreviewSurface clearcoat calculations to better match expected
216+
inputs for a specular lobe in Storm, and added clearcoat component to indirect
217+
lighting calculation in Storm. (Issue #1307)
218+
- Added support for UsdPreviewSurface's opacityThreshold parameter in
219+
Storm. (Issue #990)
220+
- Added support for normal mapping for UsdPreviewSurfaces in Storm. (Issue #701)
221+
- Metallic materials should have an F0 equal to their base color in
222+
UsdPreviewSurface in Storm. (Issue #1174)
223+
224+
- Removed pre-multiplication behavior from OIT resolve shader. The preview
225+
surface (and other shaders) pre-multiply within the fragment shader (unless
226+
the "diffuseColor" and "opacity" params are connected to the same
227+
texture). (Issue #1269)
228+
229+
- Added support for UDIM texture scale and bias in Storm. (Issue #1129)
230+
- Converted render index to usdImaging cachePath before calling the adapter
231+
InvokeComputation method. (Issue #1333)
232+
- Fix draw mode adapter handling of transforms for instanced card prims. (Issue #1251)
233+
- _IsVarying no longer clears dirty bit and now ProcessPropertyChange is filled
234+
out to provide more efficiency. (Issue #1250)
235+
236+
### usdview
237+
- Added 'Enable Scene Lights' option.
238+
- Changed UI to use bundled Roboto and Roboto Mono fonts.
239+
- Fixed build issues due to stricter checks in PySide2 5.15.1. (PR #1320)
240+
241+
### Alembic Plugin
242+
- Alembic uv's are now converted to texCoord2f[] primvars:st. This can
243+
be disabled by setting the `USD_ABC_WRITE_UV_AS_ST_TEXCOORD2FARRAY`
244+
environment variable to 0.
245+
246+
### RenderMan Plugin
247+
- Fixed infinite loop in material processing.
248+
- Initial implementation of exposure.
249+
- Volumes can react to changes to a field prim.
250+
- Fixed UsdUVTexture wrap mode support.
251+
- Add support for UsdPreviewSurface's opacityThreshold param in HdPrman. (Issue #990)
252+
- Updated UsdPreviewSurface clearcoat calculations to better match expected
253+
inputs for a specular lobe in HdPrman. (Issue #1307)
254+
- Metallic materials should have an F0 equal to their base color in
255+
UsdPreviewSurface in HdPrman. (Issue #1174)
256+
3257
## [20.08] - 2020-07-21
4258

5259
### Build

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
project(usd)
2-
31
cmake_minimum_required(VERSION 3.12)
42

3+
project(usd)
4+
55
if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
66
if (WIN32)
77
message(FATAL_ERROR "Compiler does not support 64-bit builds. "

LICENSE.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,3 +508,17 @@ Draco
508508
============================================================
509509
USD bundles Draco, which is available under the Apache 2.0 license. For details,
510510
see https://github.com/google/draco/blob/master/README.md.
511+
512+
513+
============================================================
514+
Roboto Fonts
515+
============================================================
516+
USD bundles Roboto fonts, which is available under the Apache 2.0 license.
517+
For details, see https://fonts.google.com/specimen/Roboto#license
518+
519+
520+
============================================================
521+
Roboto Mono Fonts
522+
============================================================
523+
USD bundles Roboto Mono fonts, which is available under the Apache 2.0 license.
524+
For details, see https://fonts.google.com/specimen/Roboto+Mono#license

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ Set the environment variables specified by the script when it finishes and
165165
launch ```usdview``` with a sample asset.
166166

167167
```
168-
> usdview extras/usd/tutorials/convertingLayerFormats/Sphere.usda
168+
> usdview USD/extras/usd/tutorials/convertingLayerFormats/Sphere.usda
169169
```
170170

171171
Contributing

0 commit comments

Comments
 (0)