Skip to content

Commit 7229566

Browse files
committed
Merge release v0.8.3
2 parents 022f7ef + c8bb83d commit 7229566

File tree

818 files changed

+44979
-18373
lines changed

Some content is hidden

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

818 files changed

+44979
-18373
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ install:
104104
tar -xvzf /tmp/oiio.tgz -C $HOME;
105105
pushd $HOME/oiio-Release-1.5.11;
106106
mkdir build && cd build;
107-
cmake -DCMAKE_INSTALL_PREFIX=$HOME/oiio -DILMBASE_HOME=$HOME/openexr -DOPENEXR_HOME=$HOME/openexr ..;
107+
cmake -DCMAKE_INSTALL_PREFIX=$HOME/oiio -DILMBASE_HOME=$HOME/openexr -DOPENEXR_HOME=$HOME/openexr -DUSE_PYTHON=OFF -DOIIO_BUILD_TOOLS=OFF -DOIIO_BUILD_TESTS=OFF ..;
108108
make && make install;
109109
popd;
110110
else

CHANGELOG.md

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

3+
## [0.8.3] - 2018-02-05
4+
5+
### Added
6+
- Compression in .usdc files for integer arrays and scalar floating point
7+
arrays. The latter are compressed if the values are all integers or there
8+
are a small number of unique values. In the example Kitchen Set asset on
9+
the USD website, the total size of the geometry layers decreased by ~46%,
10+
from 25 MB to 14 MB.
11+
12+
.usdc files with this new compression enabled are marked as version 0.6.0
13+
and are not readable by earlier releases. These files are not written by
14+
default; this may be enabled by setting the environment variable
15+
`USD_WRITE_NEW_USDC_FILES_AS_VERSION` to "0.6.0".
16+
- Ability to record and query API schemas that have been applied to a prim
17+
via new Apply method on API schema classes, UsdPrim::GetAppliedSchemas and
18+
UsdPrim::HasAPI. Custom API schemas should be updated with these new
19+
methods by re-running usdGenSchema.
20+
- GetUnionedTimeSamples and GetUnionedTimeSamplesInInterval functions for
21+
UsdAttribute and UsdAttributeQuery.
22+
- Ability to offset time for active value clips when using template clip
23+
metadata via "templateActiveOffset" entry.
24+
- UsdUtilsGetDirtyLayers for retrieving dirty layers used by a UsdStage.
25+
- GetTimeSamplesInInterval functions for UsdGeomXformOp, UsdGeomXformable
26+
and UsdGeomXformable::XformQuery.
27+
- UsdShadeMaterialBindingAPI, which provides an interface for binding
28+
materials to prims or collections of prims and computing the final bound
29+
material for a prim via "material resolution".
30+
- Numerous features and documentation for UsdSkel schema.
31+
- "Save Flattened As" functionality in usdview.
32+
- Plugin mechanism in usdview that allows users to add custom commands
33+
and menus. See new tutorial for more details.
34+
- Partial support for RenderMan for Maya lights in the Maya plugin.
35+
- PxrUsdIn.BootstrapMaterialGroup op in Katana plugin for more robustly reading
36+
a Looks scope from a .usd file
37+
38+
### Changed
39+
- Build now supports versioned OpenEXR and IlmBase shared libraries. (Issue #71)
40+
- Layer identifiers may now include '?' characters. (Issue #289)
41+
- UsdStage preserves payload load state when processing instancing changes.
42+
- UsdListPosition enum values now specify the "append" or "prepend" list as
43+
well as a position to provide users with finer-grained control.
44+
- The various Add... methods in Usd that take a UsdListPosition argument
45+
now author entries to the back of the "prepend" list by default if no
46+
"explicit" list exists. The old behavior of authoring to the (now
47+
deprecated) "added" list can be restored by setting the environment
48+
variable `USD_AUTHOR_OLD_STYLE_ADD` to 1.
49+
- Standard schema conventions are more strictly-enforced in usdGenSchema.
50+
- UsdCollectionAPI::AddCollection has been renamed ApplyCollection.
51+
- Enabled authoring of new UsdShade encoding by default. Authoring the old
52+
(now deprecated) encoding can be restored by setting the environment variable
53+
`USD_SHADE_WRITE_NEW_ENCODING` to 0.
54+
- The "joints" relationship on the UsdSkelSkeleton, UsdSkelPackedJointAnimation,
55+
and UsdSkelBinding API schemas is now a token array-valued attribute.
56+
- UsdRiStatements API schema has been renamed to UsdRiStatementsAPI.
57+
- sdfdump utility now shows all specs in a layer, even if they have no fields.
58+
- Various improvements to Hydra reprs and geometry processing.
59+
- More improvements to Hydra's handling of invalid data.
60+
- Ongoing work to prepare Hydra to fully consume UsdShade schemas.
61+
- Refactored GL dependency out of Hd library.
62+
- Built-in variables in usdview interpreter are now accessed through a separate
63+
usdviewApi object to avoid name collisions.
64+
- Performance improvements in Maya plugin when in Viewport 2.0.
65+
- Inclusion of info.usd.opArgs in Katana plugin is now parameterized; it will
66+
be authored to the location where a "setOpArgsToInfo" attribute exists and is
67+
set to 1.
68+
69+
### Deprecated
70+
- The "added" list for list ops in scene description is deprecated in favor
71+
of the "prepend" and "append" lists.
72+
73+
### Removed
74+
- GfCamera::ZUp and GfCamera::YUp.
75+
- UsdSkelJoint schema.
76+
77+
### Fixed
78+
- build_usd.py ensures OpenImageIO build does not pick up OpenEXR from other
79+
locations, which could have led to runtime errors. (Issue #315, Issue #325)
80+
- Headers are now installed properly for monolithic builds. (Issue #277)
81+
- Original install location will no longer be searched for plugins after
82+
relocating builds. (Issue #363)
83+
- Fixed thread-safety issue where plugins with the same name but in different
84+
locations could be loaded twice. (Issue #358)
85+
- Fixed bug where layers that were muted via SdfLayer::AddToMutedLayers before
86+
they were first opened could not be unmuted.
87+
- Fixed bug in usdGenSchema where changing an existing property's type in a
88+
schema would not be reflected in the generated code.
89+
- Fixed bug where a large (> 1460) number of variants in a .usda file would
90+
cause a "memory exhausted" error when parsing that file.
91+
- Fixed broken pread mode for .usdc files.
92+
- Fixed bug that caused UsdStage::CreateNew to crash on Windows. (Issue #364)
93+
- Fixed bug when using a UsdStagePopulationMask with prims beneath instances.
94+
(Issue #312)
95+
- Fixed bug where setting float-valued attributes to +inf in Python would fail.
96+
- UsdAttribute::GetTimeSamplesInInterval now properly accounts for layer
97+
offsets. (Issue #352)
98+
- Internal references or empty asset paths no longer cause errors in
99+
UsdUtilsFlattenLayerStack.
100+
- Fixed bug where UsdGeomPrimvar::GetTimeSamples would miss time samples for
101+
indexed primvars.
102+
- Disabled tiny prim culling in Hydra by default. It can be re-enabled by
103+
setting the environment variable `HD_ENABLE_TINY_PRIM_CULLING` to 1.
104+
(Issue #314)
105+
- Fixed issues with using non-file-backed asset paths in various utilities
106+
and Maya and Katana plugins.
107+
- Houdini plugin explicitly links against required libraries to avoid runtime
108+
errors with Houdini 16.5.
109+
- Fixed several bugs with point instancing support in Houdini plugin.
110+
3111
## [0.8.2] - 2017-12-01
4112

5113
Release 0.8.2 increments the file format version for .usdc files. New .usdc

build_scripts/build_usd.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -556,20 +556,14 @@ def InstallPNG(context, force):
556556
def InstallOpenEXR(context, force):
557557
srcDir = DownloadURL(OPENEXR_URL, context, force)
558558

559-
# Specify NAMESPACE_VERSIONING=OFF so that the built libraries
560-
# don't have the version appended to their filename. USD's
561-
# FindOpenEXR module can't handle that right now -- see
562-
# https://github.com/PixarAnimationStudios/USD/issues/71
563559
ilmbaseSrcDir = os.path.join(srcDir, "IlmBase")
564560
with CurrentWorkingDirectory(ilmbaseSrcDir):
565-
RunCMake(context, force,
566-
['-DNAMESPACE_VERSIONING=OFF'])
561+
RunCMake(context, force)
567562

568563
openexrSrcDir = os.path.join(srcDir, "OpenEXR")
569564
with CurrentWorkingDirectory(openexrSrcDir):
570565
RunCMake(context, force,
571-
['-DNAMESPACE_VERSIONING=OFF',
572-
'-DILMBASE_PACKAGE_PREFIX="{instDir}"'
566+
['-DILMBASE_PACKAGE_PREFIX="{instDir}"'
573567
.format(instDir=context.instDir)])
574568

575569
OPENEXR = Dependency("OpenEXR", InstallOpenEXR, "include/OpenEXR/ImfVersion.h")
@@ -657,6 +651,16 @@ def InstallOpenImageIO(context, force):
657651
'-DOIIO_BUILD_TESTS=OFF',
658652
'-DSTOP_ON_WARNING=OFF']
659653

654+
# OIIO's FindOpenEXR module circumvents CMake's normal library
655+
# search order, which causes versions of OpenEXR installed in
656+
# /usr/local or other hard-coded locations in the module to
657+
# take precedence over the version we've built, which would
658+
# normally be picked up when we specify CMAKE_PREFIX_PATH.
659+
# This may lead to undefined symbol errors at build or runtime.
660+
# So, we explicitly specify the OpenEXR we want to use here.
661+
extraArgs.append('-DOPENEXR_HOME="{instDir}"'
662+
.format(instDir=context.instDir))
663+
660664
# If Ptex support is disabled in USD, disable support in OpenImageIO
661665
# as well. This ensures OIIO doesn't accidentally pick up a Ptex
662666
# library outside of our build.

cmake/defaults/Packages.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ if(PXR_ENABLE_PYTHON_SUPPORT)
4646
find_package(Boost
4747
COMPONENTS
4848
date_time
49+
filesystem
4950
program_options
5051
python
5152
regex
@@ -62,6 +63,7 @@ else()
6263
find_package(Boost
6364
COMPONENTS
6465
date_time
66+
filesystem
6567
program_options
6668
regex
6769
system

cmake/defaults/Version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@
2424
# Versioning information
2525
set(PXR_MAJOR_VERSION "0")
2626
set(PXR_MINOR_VERSION "8")
27-
set(PXR_PATCH_VERSION "2")
27+
set(PXR_PATCH_VERSION "3")

cmake/macros/Private.cmake

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,14 +1174,12 @@ function(_pxr_library NAME)
11741174
endif()
11751175

11761176
# Names and paths passed to the compile via macros. Paths should be
1177-
# relative to facilitate relocating the build. installLocation is
1178-
# absolute but the client can override with any path, including a
1179-
# relative one.
1177+
# relative to facilitate relocating the build.
11801178
_get_python_module_name(${NAME} pythonModuleName)
11811179
string(TOUPPER ${NAME} uppercaseName)
1182-
set(installLocation "${CMAKE_INSTALL_PREFIX}/share/usd/plugins")
11831180
if(PXR_INSTALL_LOCATION)
1184-
file(TO_CMAKE_PATH "${PXR_INSTALL_LOCATION}" installLocation)
1181+
file(TO_CMAKE_PATH "${PXR_INSTALL_LOCATION}" pxrInstallLocation)
1182+
set(pxrInstallLocation "PXR_INSTALL_LOCATION=${pxrInstallLocation}")
11851183
endif()
11861184

11871185
# API macros.
@@ -1266,9 +1264,9 @@ function(_pxr_library NAME)
12661264
MFB_PACKAGE_NAME=${PXR_PACKAGE}
12671265
MFB_ALT_PACKAGE_NAME=${PXR_PACKAGE}
12681266
MFB_PACKAGE_MODULE=${pythonModuleName}
1269-
"PXR_BUILD_LOCATION=../share/usd/plugins"
1270-
"PXR_PLUGIN_BUILD_LOCATION=../plugin/usd"
1271-
"PXR_INSTALL_LOCATION=${installLocation}"
1267+
PXR_BUILD_LOCATION=../share/usd/plugins
1268+
PXR_PLUGIN_BUILD_LOCATION=../plugin/usd
1269+
${pxrInstallLocation}
12721270
${pythonModulesEnabled}
12731271
${apiPrivate}
12741272
)
@@ -1305,7 +1303,15 @@ function(_pxr_library NAME)
13051303
# Set up the install.
13061304
#
13071305

1308-
if(NOT isObject)
1306+
if(isObject)
1307+
get_target_property(install_headers ${NAME} PUBLIC_HEADER)
1308+
if (install_headers)
1309+
install(
1310+
FILES ${install_headers}
1311+
DESTINATION ${headerInstallPrefix}
1312+
)
1313+
endif()
1314+
else()
13091315
if(BUILD_SHARED_LIBS AND NOT PXR_BUILD_MONOLITHIC)
13101316
install(
13111317
TARGETS ${NAME}

cmake/macros/Public.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ endfunction() # pxr_install_test_dir
560560
function(pxr_register_test TEST_NAME)
561561
if (PXR_BUILD_TESTS)
562562
cmake_parse_arguments(bt
563-
"PYTHON;REQUIRES_SHARED_LIBS;REQUIRES_PYTHON_MODULES"
563+
"RUN_SERIAL;PYTHON;REQUIRES_SHARED_LIBS;REQUIRES_PYTHON_MODULES"
564564
"CUSTOM_PYTHON;COMMAND;STDOUT_REDIRECT;STDERR_REDIRECT;DIFF_COMPARE;POST_COMMAND;POST_COMMAND_STDOUT_REDIRECT;POST_COMMAND_STDERR_REDIRECT;PRE_COMMAND;PRE_COMMAND_STDOUT_REDIRECT;PRE_COMMAND_STDERR_REDIRECT;FILES_EXIST;FILES_DONT_EXIST;CLEAN_OUTPUT;EXPECTED_RETURN_CODE;TESTENV"
565565
"ENV;PRE_PATH;POST_PATH"
566566
${ARGN}
@@ -706,6 +706,12 @@ function(pxr_register_test TEST_NAME)
706706
COMMAND ${PYTHON_EXECUTABLE} ${testWrapperCmd}
707707
"--env-var=PYTHONPATH=${_testPythonPath}" ${testCmd}
708708
)
709+
710+
# But in some cases, we need to pass cmake properties directly to cmake
711+
# run_test, rather than configuring the environment
712+
if (bt_RUN_SERIAL)
713+
set_tests_properties(${TEST_NAME} PROPERTIES RUN_SERIAL TRUE)
714+
endif()
709715
endif()
710716
endfunction() # pxr_register_test
711717

cmake/modules/FindHoudini.cmake

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,21 @@
4545
# HOUDINI_BUILD_VERSION
4646
# HOUDINI_INCLUDE_DIRS
4747
# HOUDINI_LIBRARY_DIRS
48+
# HOUDINI_LIBRARIES
49+
# HOUDINI_APPS1_LIBRARY
50+
# HOUDINI_APPS2_LIBRARY
51+
# HOUDINI_APPS3_LIBRARY
52+
# HOUDINI_DEVICE_LIBRARY
53+
# HOUDINI_GEO_LIBRARY
54+
# HOUDINI_OP1_LIBRARY
55+
# HOUDINI_OP2_LIBRARY
56+
# HOUDINI_OP3_LIBRARY
57+
# HOUDINI_OPZ_LIBRARY
58+
# HOUDINI_PRM_LIBRARY
59+
# HOUDINI_RAY_LIBRARY
60+
# HOUDINI_SIM_LIBRARY
61+
# HOUDINI_UI_LIBRARY
62+
# HOUDINI_UT_LIBRARY
4863

4964
find_path(HOUDINI_BASE_DIR
5065
NAMES
@@ -78,6 +93,35 @@ find_path(HOUDINI_LIB_DIRS
7893
"Houdini Development Kit Library Path"
7994
)
8095

96+
foreach(HOUDINI_LIB
97+
APPS1
98+
APPS2
99+
APPS3
100+
DEVICE
101+
GEO
102+
OP1
103+
OP2
104+
OP3
105+
OPZ
106+
PRM
107+
RAY
108+
SIM
109+
UI
110+
UT)
111+
find_library(HOUDINI_${HOUDINI_LIB}_LIBRARY
112+
Houdini${HOUDINI_LIB}
113+
HINTS
114+
"${HOUDINI_LIB_DIRS}"
115+
DOC
116+
"Houdini's ${HOUDINI_LIB} library path"
117+
NO_CMAKE_SYSTEM_PATH
118+
)
119+
120+
if (HOUDINI_${HOUDINI_LIB}_LIBRARY)
121+
list(APPEND HOUDINI_LIBRARIES ${HOUDINI_${HOUDINI_LIB}_LIBRARY})
122+
endif ()
123+
endforeach()
124+
81125
if(HOUDINI_INCLUDE_DIRS AND EXISTS "${HOUDINI_INCLUDE_DIRS}/SYS/SYS_Version.h")
82126
foreach(comp FULL MAJOR MINOR BUILD)
83127
file(STRINGS

0 commit comments

Comments
 (0)