Skip to content

Commit 1845291

Browse files
committed
Merge release v19.01
2 parents 6c50b29 + 79f095a commit 1845291

File tree

607 files changed

+20172
-9311
lines changed

Some content is hidden

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

607 files changed

+20172
-9311
lines changed

CHANGELOG.md

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

3+
## [19.01] - 2018-12-14
4+
5+
### Added
6+
USD:
7+
- usdresolve utility for checking the results of asset resolution at the
8+
command line. (PR #609)
9+
- SdfFileFormat::FindAllFileFormats and FindAllFileFormatExtensions
10+
for querying available file formats. (PR #532)
11+
- Option to UsdGeomBBoxCache to ignore visibility.
12+
13+
Imaging:
14+
- Render settings API to HdRenderDelegate. ("Enable Tiny Prim Culling" is the
15+
first example for Hydra GL)
16+
- Support for UDIM textures in Hydra GL. (PR #597)
17+
- Blending controls to HdRenderPassState for initial transparency support in
18+
Hydra GL.
19+
- Ability to specify backend when starting usdview via "--renderer" parameter.
20+
- Optional "Draw Mode" column to prim browser in usdview that provides control
21+
of model draw modes. (texture cards, bbox, etc.)
22+
23+
Houdini plugin:
24+
- Optional layer scale, layer offset, and target prim parameters to the
25+
USD Reference ROP.
26+
- Option on USD Output ROP to use or ignore obj-level transforms.
27+
- Support for exporting ramp parameters in OSL shader networks.
28+
29+
Katana plugin:
30+
- "info.usd.outputSession" attribute authored by PxrUsdIn. This is a sibling
31+
to "info.usd.session" but is not affected by the translation of PxrUsdIn's
32+
old "variants" parameter into session data. It acts as a more stable session
33+
cache key for external apps to use.
34+
- "forceArrayForSingleValue" parameter that allows PxrUsdInAttributeSet to
35+
author 1-length arrays.
36+
37+
Maya plugin:
38+
- Support for instancing USD reference assemblies in instancers.
39+
40+
### Changed
41+
Build:
42+
- Symbols for wrapping functions are no longer exported from modules
43+
to avoid issues with using RTLD_GLOBAL in Python. (Issue #641)
44+
- Updated minimum required version of GLEW to 2.0.0.
45+
46+
USD:
47+
- Numerous fixes and cleanup changes throughout to improve performance,
48+
remove dead code, convert code to more modern patterns, and remove
49+
unneeded uses of boost.
50+
- Replaced safe-bool idiom with explicit bool operator in several places.
51+
- Improved performance of setting and erasing time samples in .usda
52+
layers from linear complexity to logarithmic.
53+
- Improved error messages when attempting to read a .usdz files using
54+
compression or encryption.
55+
- Various improvements to UsdSkel documentation and API.
56+
- Changed scene description name for UsdSkelBindingAPI from "BindingAPI"
57+
to "SkelBindingAPI" to distinguish it from other binding API schemas.
58+
59+
Imaging:
60+
- Several improvements to the handling of AOVs in Hydra.
61+
- Simplified class hierarchy in usdImagingGL. The primary API entry point
62+
is now UsdImagingGLEngine.
63+
- Better performance for animated textures and large numbers of invisible
64+
prims in Hydra.
65+
- Optimized batch removal of prims in Hydra and UsdImaging.
66+
- Better handling of edits made in the interpreter in usdview.
67+
- Mesh normals are suppressed when the subdivision scheme is something
68+
other than "none".
69+
- The default stb-based image reader now extracts gamma information from
70+
.png images.
71+
- Functionality specific to the prim browser in usdview have been moved
72+
to a browser-specific menu bar with "Navigation" and "Show" menus.
73+
- Property browser in usdview now shows resolved material bindings and
74+
inherited primvars.
75+
76+
Maya plugin:
77+
- The name of the scope for exported material prims can now be customized
78+
in the UI or via the "materialsScopeName" parameter to usdExport. The
79+
default scope name is "Looks", matching the previous behavior.
80+
- Refactoring and cleanup in preparation for shading export support.
81+
82+
### Removed
83+
Build:
84+
- Build-time dependency on Python. (Issue #605, PR #615)
85+
86+
Imaging:
87+
- HdSceneTask in favor of HdTask.
88+
- UsdImagingGL and UsdImagingGLHdEngine.
89+
90+
### Fixed
91+
USD:
92+
- Incorrect composition error in cases involving internal sub-root references
93+
and variants. (Issue #677)
94+
- Regression that caused prims to sometimes be composed incorrectly.
95+
- Missing symbol exports that could cause build errors on Windows.
96+
(PR #623, Issue #703, #704, #705)
97+
- Incorrect type validation and conversion when authoring metadata via Python
98+
that could lead to invalid scene description. (Issue #529)
99+
- Various issues in usdzip and related usdUtils API when processing references
100+
for packaging into a .usdz file.
101+
102+
Imaging:
103+
- Batch aggregation for prims with face-varying primvars.
104+
- Drawing coord initialization of instance primvar slots.
105+
- Deep batch validation only happens when needed, improving performance.
106+
- Crash in cases where a prim is removed from a stage and a collection
107+
targeting that prim is updated in the same round of changes. (PR #685)
108+
- Crash when reading half-float .exr images in the OpenImageIO plugin.
109+
(Issue #581)
110+
- Incorrect handling of edits to material bindings.
111+
112+
Houdini plugin:
113+
- Issue where visibility and purpose attributes weren't properly inherited
114+
on import. (Issue #649)
115+
- Crash when running ginfo on a USD file. (Issue #673, PR #674)
116+
- Issue where imported string attribute values could be incorrect. (Issue #653)
117+
118+
Katana plugin:
119+
- Issues with reading UsdGeomPointInstancers
120+
- Regression in instance transform computation with masked instances.
121+
- Prototype transforms are cleared out on the Katana side since they are
122+
folded in when computing instance transforms.
123+
124+
Maya plugin:
125+
- Reference assemblies weren't being drawn in "playback" representation.
126+
(Issue #675)
127+
- Issue where HdImagingShape prevented nodes from being reordered.
128+
3129
## [18.11] - 2018-10-10
4130

5131
### Added

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ may be disabled at build-time, for further details see [Advanced Build Configura
6262
| Name | Version | Optional |
6363
| ---- | ------- | :------: |
6464
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 (Linux/OS X), 3.2.0 (Windows) | |
65-
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 | x |
65+
| [GLEW](http://glew.sourceforge.net/) | 2.0.0 | x |
6666
| [OpenEXR](http://www.openexr.com) | 2.2.0 | |
6767
| [OpenImageIO](https://sites.google.com/site/openimageio/home) | 1.5.11 | x |
6868
| [OSL (OpenShadingLanguage)](https://github.com/imageworks/OpenShadingLanguage) | 1.5.12 | x |

build_scripts/build_usd.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -446,13 +446,13 @@ def InstallZlib(context, force, buildArgs):
446446
# boost
447447

448448
if Linux():
449-
BOOST_URL = "http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.gz"
449+
BOOST_URL = "https://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.gz"
450450
BOOST_VERSION_FILE = "include/boost/version.hpp"
451451
elif MacOS():
452-
BOOST_URL = "http://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.tar.gz"
452+
BOOST_URL = "https://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.tar.gz"
453453
BOOST_VERSION_FILE = "include/boost/version.hpp"
454454
elif Windows():
455-
BOOST_URL = "http://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.tar.gz"
455+
BOOST_URL = "https://downloads.sourceforge.net/project/boost/boost/1.61.0/boost_1_61_0.tar.gz"
456456
# The default installation of boost on Windows puts headers in a versioned
457457
# subdirectory, which we have to account for here. In theory, specifying
458458
# "layout=system" would make the Windows install match Linux/MacOS, but that
@@ -461,7 +461,7 @@ def InstallZlib(context, force, buildArgs):
461461

462462
# On Visual Studio 2017 we need at least boost 1.65.1
463463
if IsVisualStudio2017OrGreater():
464-
BOOST_URL = "http://downloads.sourceforge.net/project/boost/boost/1.65.1/boost_1_65_1.tar.gz"
464+
BOOST_URL = "https://downloads.sourceforge.net/project/boost/boost/1.65.1/boost_1_65_1.tar.gz"
465465
BOOST_VERSION_FILE = "include/boost-1_65_1/boost/version.hpp"
466466

467467

@@ -579,7 +579,7 @@ def InstallTBB_LinuxOrMacOS(context, force, buildArgs):
579579
if Windows():
580580
JPEG_URL = "https://github.com/libjpeg-turbo/libjpeg-turbo/archive/1.5.1.zip"
581581
else:
582-
JPEG_URL = "http://www.ijg.org/files/jpegsrc.v9b.tar.gz"
582+
JPEG_URL = "https://www.ijg.org/files/jpegsrc.v9b.tar.gz"
583583

584584
def InstallJPEG(context, force, buildArgs):
585585
if Windows():
@@ -606,7 +606,7 @@ def InstallJPEG_Lib(context, force, buildArgs):
606606
############################################################
607607
# TIFF
608608

609-
TIFF_URL = "http://download.osgeo.org/libtiff/tiff-4.0.7.zip"
609+
TIFF_URL = "https://download.osgeo.org/libtiff/tiff-4.0.7.zip"
610610

611611
def InstallTIFF(context, force, buildArgs):
612612
with CurrentWorkingDirectory(DownloadURL(TIFF_URL, context, force)):
@@ -628,7 +628,7 @@ def InstallTIFF(context, force, buildArgs):
628628
############################################################
629629
# PNG
630630

631-
PNG_URL = "http://downloads.sourceforge.net/project/libpng/libpng16/older-releases/1.6.29/libpng-1.6.29.tar.gz"
631+
PNG_URL = "https://downloads.sourceforge.net/project/libpng/libpng16/older-releases/1.6.29/libpng-1.6.29.tar.gz"
632632

633633
def InstallPNG(context, force, buildArgs):
634634
with CurrentWorkingDirectory(DownloadURL(PNG_URL, context, force)):
@@ -660,7 +660,7 @@ def InstallOpenEXR(context, force, buildArgs):
660660
# GLEW
661661

662662
if Windows():
663-
GLEW_URL = "http://downloads.sourceforge.net/project/glew/glew/2.0.0/glew-2.0.0-win32.zip"
663+
GLEW_URL = "https://downloads.sourceforge.net/project/glew/glew/2.0.0/glew-2.0.0-win32.zip"
664664
else:
665665
# Important to get source package from this URL and NOT github. This package
666666
# contains pre-generated code that the github repo does not.

cmake/defaults/Version.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
#
2424
# Versioning information
2525
set(PXR_MAJOR_VERSION "0")
26-
set(PXR_MINOR_VERSION "18")
27-
set(PXR_PATCH_VERSION "11")
26+
set(PXR_MINOR_VERSION "19")
27+
set(PXR_PATCH_VERSION "1")

cmake/macros/Private.cmake

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,16 @@ function(_copy_headers LIBRARY_NAME)
4646
foreach (f ${_args_FILES})
4747
set(infile "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
4848
set(outfile "${header_dest_dir}/${f}")
49-
list(APPEND files_copied ${outfile})
49+
get_filename_component(dir_to_create "${outfile}" PATH)
5050
add_custom_command(
5151
OUTPUT ${outfile}
52-
COMMAND
53-
"${PYTHON_EXECUTABLE}"
54-
"${PROJECT_SOURCE_DIR}/cmake/macros/copyHeaderForBuild.py"
55-
"${infile}"
56-
"${outfile}"
52+
COMMAND ${CMAKE_COMMAND} -E make_directory "${dir_to_create}"
53+
COMMAND ${CMAKE_COMMAND} -Dinfile="${infile}" -Doutfile="${outfile}" -P "${PROJECT_SOURCE_DIR}/cmake/macros/copyHeaderForBuild.cmake"
5754
MAIN_DEPENDENCY "${infile}"
5855
COMMENT "Copying ${f} ..."
5956
VERBATIM
60-
)
57+
)
58+
list(APPEND files_copied ${outfile})
6159
endforeach()
6260
endif()
6361

@@ -106,7 +104,7 @@ endfunction() # _plugInfo_subst
106104
function(_pxrDoxyConfig_subst)
107105
configure_file(${CMAKE_SOURCE_DIR}/pxr/usd/lib/usd/Doxyfile.in
108106
${CMAKE_BINARY_DIR}/Doxyfile
109-
)
107+
)
110108
endfunction()
111109

112110
# Install compiled python files alongside the python object,
@@ -128,7 +126,7 @@ function(_install_python LIBRARY_NAME)
128126
set(files_copied "")
129127
foreach(file ${ip_FILES})
130128
set(filesToInstall "")
131-
set(installDest
129+
set(installDest
132130
"${libPythonPrefix}/pxr/${LIBRARY_INSTALLNAME}")
133131

134132
# Only attempt to compile .py files. Files like plugInfo.json may also
@@ -165,7 +163,7 @@ function(_install_python LIBRARY_NAME)
165163
message(FATAL_ERROR "Cannot have non-Python file ${file} in PYTHON_FILES.")
166164
endif()
167165

168-
# Note that we always install under lib/python/pxr, even if we are in
166+
# Note that we always install under lib/python/pxr, even if we are in
169167
# the third_party project. This means the import will always look like
170168
# 'from pxr import X'. We need to do this per-loop iteration because
171169
# the installDest may be different due to the presence of subdirs.
@@ -205,7 +203,7 @@ function(_install_resource_files NAME pluginInstallPrefix pluginToLibraryPath)
205203
_get_resources_dir(${pluginInstallPrefix} ${NAME} resourcesPath)
206204

207205
foreach(resourceFile ${ARGN})
208-
# A resource file may be specified like <src file>:<dst file> to
206+
# A resource file may be specified like <src file>:<dst file> to
209207
# indicate that it should be installed to a different location in
210208
# the resources area. Check if this is the case.
211209
string(REPLACE ":" ";" resourceFile "${resourceFile}")
@@ -222,7 +220,7 @@ function(_install_resource_files NAME pluginInstallPrefix pluginToLibraryPath)
222220

223221
get_filename_component(dirPath ${resourceDestFile} PATH)
224222
get_filename_component(destFileName ${resourceDestFile} NAME)
225-
223+
226224
# plugInfo.json go through an initial template substitution step files
227225
# install it from the binary (gen) directory specified by the full
228226
# path. Otherwise, use the original relative path which is relative to
@@ -320,15 +318,15 @@ function(_get_install_dir path out)
320318
endfunction() # get_install_dir
321319

322320
function(_get_resources_dir_name output)
323-
set(${output}
324-
resources
321+
set(${output}
322+
resources
325323
PARENT_SCOPE)
326324
endfunction() # _get_resources_dir_name
327325

328326
function(_get_resources_dir pluginsPrefix pluginName output)
329327
_get_resources_dir_name(resourcesDir)
330-
set(${output}
331-
${pluginsPrefix}/${pluginName}/${resourcesDir}
328+
set(${output}
329+
${pluginsPrefix}/${pluginName}/${resourcesDir}
332330
PARENT_SCOPE)
333331
endfunction() # _get_resources_dir
334332

@@ -643,7 +641,7 @@ function(_pxr_install_rpath rpathRef NAME)
643641
endforeach()
644642

645643
set_target_properties(${NAME}
646-
PROPERTIES
644+
PROPERTIES
647645
INSTALL_RPATH_USE_LINK_PATH TRUE
648646
INSTALL_RPATH "${final}"
649647
)
@@ -913,7 +911,7 @@ function(_pxr_python_module NAME)
913911
# Install .ui files.
914912
if (args_PYSIDE_UI_FILES)
915913
_install_pyside_ui_files(${LIBRARY_NAME} ${args_PYSIDE_UI_FILES})
916-
endif()
914+
endif()
917915

918916
# If no C++ files then we're done.
919917
if (NOT args_CPPFILES)
@@ -935,7 +933,7 @@ function(_pxr_python_module NAME)
935933

936934
# Convert the name of the library into the python module name
937935
# , e.g. _tf.so -> Tf. This is later used to determine the eventual
938-
# install location as well as for inclusion into the __init__.py's
936+
# install location as well as for inclusion into the __init__.py's
939937
# __all__ list.
940938
_get_python_module_name(${LIBRARY_NAME} pyModuleName)
941939

@@ -945,7 +943,7 @@ function(_pxr_python_module NAME)
945943
)
946944

947945
# Always install under the 'pxr' module, rather than base on the
948-
# project name. This makes importing consistent, e.g.
946+
# project name. This makes importing consistent, e.g.
949947
# 'from pxr import X'. Additionally, python libraries always install
950948
# into the default lib install, not into the third_party subdirectory
951949
# or similar.
@@ -1027,7 +1025,7 @@ function(_pxr_python_module NAME)
10271025
LIBRARY DESTINATION ${libInstallPrefix}
10281026
RUNTIME DESTINATION ${libInstallPrefix}
10291027
)
1030-
1028+
10311029
if(NOT "${PXR_PREFIX}" STREQUAL "")
10321030
if(args_PRECOMPILED_HEADERS)
10331031
_pxr_enable_precompiled_header(${LIBRARY_NAME}
@@ -1190,7 +1188,7 @@ function(_pxr_library NAME)
11901188
#
11911189
# If we're building a monolithic library or individual static libraries,
11921190
# these libraries are not separately loadable at runtime. In these cases,
1193-
# we don't need to specify the library's location, so we leave
1191+
# we don't need to specify the library's location, so we leave
11941192
# pluginToLibraryPath empty.
11951193
if(";${PXR_CORE_LIBS};" MATCHES ";${NAME};")
11961194
if (NOT _building_monolithic AND NOT args_TYPE STREQUAL "STATIC")

cmake/macros/copyHeaderForBuild.cmake

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#
2+
# Copyright 2018 Pixar
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "Apache License")
5+
# with the following modification; you may not use this file except in
6+
# compliance with the Apache License and the following modification to it:
7+
# Section 6. Trademarks. is deleted and replaced with:
8+
#
9+
# 6. Trademarks. This License does not grant permission to use the trade
10+
# names, trademarks, service marks, or product names of the Licensor
11+
# and its affiliates, except as required to comply with Section 4(c) of
12+
# the License and to reproduce the content of the NOTICE file.
13+
#
14+
# You may obtain a copy of the Apache License at
15+
#
16+
# http://www.apache.org/licenses/LICENSE-2.0
17+
#
18+
# Unless required by applicable law or agreed to in writing, software
19+
# distributed under the Apache License with the above modification is
20+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21+
# KIND, either express or implied. See the Apache License for the specific
22+
# language governing permissions and limitations under the Apache License.
23+
#
24+
file(TO_NATIVE_PATH ${infile} INFILE)
25+
file(TO_NATIVE_PATH ${outfile} OUTFILE)
26+
27+
file(READ "${INFILE}" _tmp_file_content)
28+
file(WRITE "${OUTFILE}" "\#line 1 ${infile}\n")
29+
file(APPEND "${OUTFILE}" "${_tmp_file_content}")

0 commit comments

Comments
 (0)