platform/core/uifw/OpenUSD.git
17 months agoRefactoring HdSt_CodeGen to take metaData as constructor arg.
ucbearkat [Fri, 12 Jan 2024 18:38:40 +0000 (10:38 -0800)]
Refactoring HdSt_CodeGen to take metaData as constructor arg.

This allows us to delay the construction of the codeGen object since the hash can be computed
from the constructor args. Prior to this change the codeGen object was created on every
invocation of HdStExtCompGpuComputationResource::_Resolve just so the metadata member
can be retrieved and filled in by HdSt_ResourceBinder.
Although HdSt_CodeGen::CompileComputeProgram was being called only for the first instance of
each program merely constructing the codeGen object on every invocation was doubling the time
taken in the _Resolve function when the use case involved 1000s of extComputations, as in
an example production crowds case.
With this change we can delay the construction of the codeGen object and make sure it is created
only for the first instance of each compute program. For the example case this change provides
approx 50% speedup in HdStExtCompGpuComputation::Execute and consequently >10% speedup
in frame rendering time.

(Internal change: 2311005)

17 months agopcp: Defer node culling passes to the end of indexing
sunyab [Fri, 12 Jan 2024 18:38:35 +0000 (10:38 -0800)]
pcp: Defer node culling passes to the end of indexing

When recursively computing prim indexes to incorporate
ancestral opinions due to composition arcs, Pcp would scan
and mark cullable nodes in those indexes before adding them
to the "final" requested prim index. These culling passes
assumed that all ancestral composition arcs had already been
processed.

An upcoming fix will defer the handling of ancestral variant
arcs, breaking this assumption. In anticipation of this, this
change defers the culling pass until the final prim index has
been fully computed. This has the side benefit of removing
some semi-complicated logic that would "uncull" nodes in
certain cases.

This change causes the TrickySpookyVariantSelectionInClass
test case to fail, but the behavior that test was intended to
verify was already broken to begin with; the test just happened
to be set up in such a way to mask that failure. That behavior
will be fixed by the upcoming change, so we just disable the
test for now.

Besides that, I don't expect any practically noticeable changes
in behavior or performance. Pcp did not rely on node culling
for any optimizations during indexing, and we should wind up
with the same nodes being culled and removed after indexing
is completed. Landing this change first will help verify that
and allow us to track unexpected regressions if they occur.

(Internal change: 2311004)

17 months agoUsdNamespaceEditor now finds all relationship targets and attribute
pixar-oss [Fri, 12 Jan 2024 18:38:30 +0000 (10:38 -0800)]
UsdNamespaceEditor now finds all relationship targets and attribute
connections for properties on the stage the stage that refer to the
paths changed by a namespace edit and attempts to modify them to
refer to the updated path (or remove the target altogether in the case
of namespace deletion).

The test here currently only handles the basic case where all target and
connection paths exist in specs in the root layer stack. The
UsdNamespaceEditor does handle targets and connections that are defined
across composition arcs, but the test cases for this will be added in
an upcoming change.

(Internal change: 2310948)

17 months agoREADME fix -- avoid recommending /opt/local for install
pixar-oss [Fri, 12 Jan 2024 18:38:25 +0000 (10:38 -0800)]
README fix -- avoid recommending /opt/local for install

(Internal change: 2310922)

17 months ago[usdImagingGL] Add test setup for testUsdImagingGLDomeLightTaskController to
clach [Fri, 12 Jan 2024 18:37:54 +0000 (10:37 -0800)]
[usdImagingGL] Add test setup for testUsdImagingGLDomeLightTaskController to
the open source build.

(Internal change: 2310873)

17 months agoInitial version of Ts library.
Pixneb [Fri, 12 Jan 2024 18:36:54 +0000 (10:36 -0800)]
Initial version of Ts library.

This library implements animation splines.

It builds, but isn't used by anything yet.  It's a first milestone
that will allow us to begin co-developing with external partners and collecting
public feedback.

Much work remains.  See the README for a rough list of tasks.

(Internal change: 2310847)
(Internal change: 2310875)
(Internal change: 2310876)
(Internal change: 2311059)
(Internal change: 2311623)

17 months ago[hd, usdImaging] Rework material binding schemata and resolution.
rajabala [Fri, 12 Jan 2024 18:34:29 +0000 (10:34 -0800)]
[hd, usdImaging] Rework material binding schemata and resolution.

hd:
- Remove 'bindingStrength' from HdMaterialSchema. This is an authoring affordance that doesn't need to be transported to a render delegate.
- Update HD_API_VERSION.

usdImaging:
- Add schemata to represent direct and collection-based material bindings.
- Update materialBindingAPIAdapter to build and invalidate data sources based on the schemata.
- Move direct binding flattening from hd to usdImaging.
- Add a scene index to compute the resolved material bindings. Currently, it just wraps the flattened direct binding for a given purpose; this will be updated to factor in collection material bindings in a future change.

(Internal change: 2310706)

17 months agoAdd documentation to HdContainerDataSourceEditor::Finish()
vverovvero [Fri, 12 Jan 2024 18:34:24 +0000 (10:34 -0800)]
Add documentation to HdContainerDataSourceEditor::Finish()

(Internal change: 2310692)

17 months agoAdd support for elementType "edge" to UsdGeomSubset.
diyajoy [Fri, 12 Jan 2024 18:34:19 +0000 (10:34 -0800)]
Add support for elementType "edge" to UsdGeomSubset.

(Internal change: 2310632)

17 months agotf: Wrap lines to fit in 80 cols following change 2310294.
gitamohr [Fri, 12 Jan 2024 18:34:12 +0000 (10:34 -0800)]
tf: Wrap lines to fit in 80 cols following change 2310294.

(Internal change: 2310626)

17 months agoMerge pull request #2848 from erslavin/lex_yacc_utf8_text_file_format
pixar-oss [Thu, 4 Jan 2024 18:10:18 +0000 (10:10 -0800)]
Merge pull request #2848 from erslavin/lex_yacc_utf8_text_file_format

Support for UTF-8 Identifiers

(Internal change: 2310407)

17 months agoSome refactoring UsdNamespaceEditor in preparation for adding connection
pixar-oss [Thu, 4 Jan 2024 18:09:45 +0000 (10:09 -0800)]
Some refactoring UsdNamespaceEditor in preparation for adding connection
and relationship target fixups. This will make that upcoming change
cleaner and easier to understand.

Main details:
- Moved edit processing details into a separate private helper subclass
  so that we don't have to clutter the header file with these
  declarations.
- Combined the separate process edit functions for prims and properties
  so they can share more code.
- Addtional other small refactors

(Internal change: 2310327)

17 months agoAdded environment variable to toggle err on result of failed AccessCheck call
pixar-oss [Thu, 4 Jan 2024 00:26:17 +0000 (16:26 -0800)]
Added environment variable to toggle err on result of failed AccessCheck call

Fixes #849

(Internal change: 2310294)

17 months agosdf: Remove old compiler workaround.
gitamohr [Thu, 4 Jan 2024 00:25:44 +0000 (16:25 -0800)]
sdf: Remove old compiler workaround.

(Internal change: 2310287)

17 months agoMerge pull request #2884 from michaeljblain/mblain/usd_products_unity_update
pixar-oss [Thu, 4 Jan 2024 00:25:38 +0000 (16:25 -0800)]
Merge pull request #2884 from michaeljblain/mblain/usd_products_unity_update

Update "Products Using USD" docs page with new Unity packages

(Internal change: 2310253)

17 months agoSupport for UTF-8 Identifiers
Edward Slavin [Thu, 7 Dec 2023 15:23:44 +0000 (10:23 -0500)]
Support for UTF-8 Identifiers

- Added UTF-8 character class support to Path parser
- Added UTF-8 based validation rules for SDF identifier methods
- Added UTF-8 support to lex-based text file format lexer
- Added tests for UTF-8 based identifiers

17 months ago[hdSt] Provide visual feedback for broken material shaders.
rajabala [Wed, 3 Jan 2024 19:50:48 +0000 (11:50 -0800)]
[hdSt] Provide visual feedback for broken material shaders.

- Add an "invalid material network" shader to provide visual feedback for prims that fail shader compilation/linking. This shader is used when errors are encountered during shader code generation when the env setting HDST_ENABLE_BROKEN_SHADER_VISUAL_FEEDBACK is enabled. It is currently disabled by default.

Fixes #2613

(Internal change: 2310129)

17 months agoMerge pull request #2883 from nvmkuruc/uninlinexid
pixar-oss [Wed, 3 Jan 2024 19:50:29 +0000 (11:50 -0800)]
Merge pull request #2883 from nvmkuruc/uninlinexid

Undo inlining of `TfIsUtf8CodePointXid{Start,Continue}`

(Internal change: 2310103)

17 months ago[usdImagingGL] Minor cleanups to CMake test registration.
rajabala [Wed, 3 Jan 2024 19:50:06 +0000 (11:50 -0800)]
[usdImagingGL] Minor cleanups to CMake test registration.
Move tests that depend on build configuration or external libraries after tests that do not.

(Internal change: 2310071)

17 months agotypo fix in USD tutorial
pixar-oss [Tue, 2 Jan 2024 22:44:12 +0000 (14:44 -0800)]
typo fix in USD tutorial

Fixes #2565

(Internal change: 2310057)

17 months agohdPrman motion blur scene index plugin: simplifying code using that HdSceneIndexPrim...
unhyperbolic [Tue, 2 Jan 2024 22:43:30 +0000 (14:43 -0800)]
hdPrman motion blur scene index plugin: simplifying code using that HdSceneIndexPrim::dataSource is already a container data source.

(Internal change: 2310001)

17 months agomake Vt_ValueWrapper objects equality-comparable.
haldean [Tue, 2 Jan 2024 22:42:20 +0000 (14:42 -0800)]
make Vt_ValueWrapper objects equality-comparable.

This defines equality comparison of ValueWrappers to just compare their wrapped VtValues.

This also gives them a more useful repr, so you can see what the wrapped value is; without
this, it's difficult to debug test failures that occur from comparing two wrapped values.

(Internal change: 2309999)

17 months agoRegister Python bindings for std::optional
JaredCounts [Tue, 2 Jan 2024 22:41:46 +0000 (14:41 -0800)]
Register Python bindings for std::optional

Updates TfPyOptional to register a std::optional converter in addition to each
boost::optional converter.

(Internal change: 2309985)

17 months agoUpdate minimum tested macOS version
tallytalwar [Fri, 22 Dec 2023 22:05:51 +0000 (14:05 -0800)]
Update minimum tested macOS version

(Internal change: 2309852)

17 months agoMerge pull request #2079 from slingthor/thor/dev/oiio_openexr_debug_mac
pixar-oss [Fri, 22 Dec 2023 22:05:19 +0000 (14:05 -0800)]
Merge pull request #2079 from slingthor/thor/dev/oiio_openexr_debug_mac

APPLE: Fix OpenImageIO and OpenEXR debug libraries not found

(Internal change: 2309779)
(Internal change: 2309783)

17 months agoFix OpenEXR issues reported by AAPL and ADSK
meshula [Fri, 22 Dec 2023 22:05:03 +0000 (14:05 -0800)]
Fix OpenEXR issues reported by AAPL and ADSK

(Internal change: 2309777)

17 months agoMerge pull request #2867 from nvmkuruc/utfsortorder
pixar-oss [Fri, 22 Dec 2023 22:04:32 +0000 (14:04 -0800)]
Merge pull request #2867 from nvmkuruc/utfsortorder

Validate code point ordering for non-ASCII range

(Internal change: 2309760)

17 months agoUpdate Unity section in USD products to include new import,export and C# SDK packages.
Michael Blain [Thu, 21 Dec 2023 11:41:45 +0000 (12:41 +0100)]
Update Unity section in USD products to include new import,export and C# SDK packages.

17 months agoMerge pull request #2858 from nvmkuruc/codepointclass
pixar-oss [Wed, 20 Dec 2023 23:02:46 +0000 (15:02 -0800)]
Merge pull request #2858 from nvmkuruc/codepointclass

Add class to facilitate serialization and validation of code points

(Internal change: 2309715)

17 months agoupdate docs for UsdSchemaKind to point to more detailed doc
pixar-oss [Wed, 20 Dec 2023 23:02:32 +0000 (15:02 -0800)]
update docs for UsdSchemaKind to point to more detailed doc

(Internal change: 2309710)

17 months agoUndo inlining of `TfIsUtf8CodePointXid{Start,Continue}`
Matt Kuruc [Wed, 20 Dec 2023 22:21:51 +0000 (14:21 -0800)]
Undo inlining of `TfIsUtf8CodePointXid{Start,Continue}`

17 months ago[hgiVulkan] Updated use of Vulkan SDK header implementations
davidgyu [Wed, 20 Dec 2023 22:54:57 +0000 (14:54 -0800)]
[hgiVulkan] Updated use of Vulkan SDK header implementations

Both SPIRV-Reflect and VMA (Vulkan Memory Allocator) are published
in the Vulkan SDK as header source that can be included by client
code.

We now include these implementations from the SDK at compile time
instead of maintaining static copies as part of the hgiVulkan source.

Updated VERSIONS.md to indicate the version of the Vulkan SDK
that we are building and testing against:
   vulkansdk-1.3.243.0

This is a simplified version of:
  https://github.com/PixarAnimationStudios/OpenUSD/pull/2563

Fixes #2563

(Internal change: 2309689)

17 months ago[usdviewq] Update renderer selection before drawing
davidgyu [Wed, 20 Dec 2023 22:48:43 +0000 (14:48 -0800)]
[usdviewq] Update renderer selection before drawing

Updated Usdviewq.StageView to update renderer selection
state just before drawing (like other renderer parameters)
instead of directly from the updateSelection() method, which
might be executed when it is not possible to access the
renderer, e.g. before a current GL context has been made
current during startup.

This avoids some errors that can occur during start up
when usdview is using PySide6 on Linux and Windows.

Updated test baselines which now correctly display selected
prims.

Tested with PySide6 and PySide2.

(Internal change: 2309688)

17 months agoHydra schema generation: mark BuildRetained as deprecated.
unhyperbolic [Tue, 19 Dec 2023 23:53:14 +0000 (15:53 -0800)]
Hydra schema generation: mark BuildRetained as deprecated.

(Internal change: 2309561)

17 months agoHydra schema generation: making generated code doxygen friendly.
unhyperbolic [Tue, 19 Dec 2023 23:52:59 +0000 (15:52 -0800)]
Hydra schema generation: making generated code doxygen friendly.

(Internal change: 2309493)

17 months agoUpdating clients of hydra schemas to use Builder() instead of BuildRetained().
unhyperbolic [Tue, 19 Dec 2023 23:52:36 +0000 (15:52 -0800)]
Updating clients of hydra schemas to use Builder() instead of BuildRetained().

Also changing signature of custom HdCategoriesSchema::BuildRetained to take const ptrs.

(Internal change: 2309492)

17 months agoUpdate testusdchecker to incorporate updates the arkit tests from a previous change...
tallytalwar [Tue, 19 Dec 2023 23:52:21 +0000 (15:52 -0800)]
Update testusdchecker to incorporate updates the arkit tests from a previous change 2309099

(Internal change: 2309488)

17 months agoMerge pull request #2564 from marsupial/MR/opengl+vulkan-interop
pixar-oss [Tue, 19 Dec 2023 23:52:10 +0000 (15:52 -0800)]
Merge pull request #2564 from marsupial/MR/opengl+vulkan-interop

Support both OpenGL and Vulkan Hgi from single build.

(Internal change: 2309483)

17 months agoMerge pull request #2875 from dgovil/fix-skipARKitRootLayerCheck
pixar-oss [Tue, 19 Dec 2023 23:51:59 +0000 (15:51 -0800)]
Merge pull request #2875 from dgovil/fix-skipARKitRootLayerCheck

Fix for skipARKitRootLayerCheck warning

(Internal change: 2309450)

17 months agoAdd support for Material Nodegraph edits when using the stage SceneIndex
klucknav [Tue, 19 Dec 2023 23:51:15 +0000 (15:51 -0800)]
Add support for Material Nodegraph edits when using the stage SceneIndex

(Internal change: 2309444)

17 months agoAdd unit test for UsdGeomTetMesh that exercises surface extraction.
eberled [Tue, 19 Dec 2023 23:50:29 +0000 (15:50 -0800)]
Add unit test for UsdGeomTetMesh that exercises surface extraction.

Changes to custom code in tetMesh.h/tetMesh.cpp
    - to get deterministic order of the surfafce face indices across compilers/OS, the resulting surface faces must be sorted.

(Internal change: 2309441)

17 months agoFix testPcpLayerMuting test on windows.
tallytalwar [Tue, 19 Dec 2023 23:50:09 +0000 (15:50 -0800)]
Fix testPcpLayerMuting test on windows.

We use os.path.normcase() to ensure the paths can be accurately compared. On
Windows this will change forward slash directory separators to backslashes.

(Internal change: 2309417)

17 months agopcp: Fix layer muting bug with file format targets
sunyab [Tue, 19 Dec 2023 23:49:40 +0000 (15:49 -0800)]
pcp: Fix layer muting bug with file format targets

Pcp did not consider the file format target used for prim
index computations when determining whether a given layer
should be considered muted. So, if a user added a layer
identifier with an embedded file format target to the muted
layer set (e.g., "foo.usda:SDF_FORMAT_ARGS:target=x"), and
"foo.usda" was seen during a prim index computation where
the file format target was set to "x", this layer would
not be considered muted when it should have.

When computing the "canonical" identifier used to check
if a layer is muted, Pcp now strips out the embedded
file format target argument if it's present and matches
the file format target used during prim indexing. In
the example above, layer muting would work as expected
because the canonical identifier added to the muted
layer set would be just "foo.usda".

(Internal change: 2309311)

17 months ago[hdSt] Make converted GLSL identifier tokens immortal
tgvarik [Tue, 19 Dec 2023 20:50:36 +0000 (12:50 -0800)]
[hdSt] Make converted GLSL identifier tokens immortal

GLSL has strict identifier requirements. During codegen, we turn primvar (and other) names into GLSL identifiers. When the primvar name is not a legal GLSL identifier, we convert it into one using HdStGLConversions::GetGLSLIdentifier(). However, the TfTokens thus generated were short-lived, so on subsequent frames, primvars (&c.) with GL-illegal names would produce new TfTokens at new memory addresses, giving them different hash values. The hash value differences caused the program's overall hash value to change from frame to frame, triggering unnecessary recompilation.

To fix this, all TfTokens generated by GetGLSLIdentifier() will be instantiated as immortal, so that even if they go out of scope, later calls to GetGLSLIdentifier() for a given input name will produce TfTokens with the same hash value as those from earlier calls.

(Internal change: 2309306)

17 months agoMerge pull request #2715 from nvmkuruc/sdflistoptional
pixar-oss [Tue, 19 Dec 2023 20:48:21 +0000 (12:48 -0800)]
Merge pull request #2715 from nvmkuruc/sdflistoptional

Replace `boost::optional` with `std::optional` for `sdf` list operations

(Internal change: 2309264)

17 months agoMerge pull request #2855 from nvmkuruc/continuationbytes
pixar-oss [Tue, 19 Dec 2023 20:48:12 +0000 (12:48 -0800)]
Merge pull request #2855 from nvmkuruc/continuationbytes

Validate continuation bytes during code point iteration

(Internal change: 2309258)

17 months agoMerge pull request #2874 from nvmkuruc/sdfallowed
pixar-oss [Tue, 19 Dec 2023 20:48:01 +0000 (12:48 -0800)]
Merge pull request #2874 from nvmkuruc/sdfallowed

Replace `boost::optional` with `std::optional` in `SdfAllowed`

(Internal change: 2309257)

17 months agoAdd tetmesh as arg to Python function and change call in _ComputeSurfaceFacesHelper.
eberled [Tue, 19 Dec 2023 20:46:51 +0000 (12:46 -0800)]
Add tetmesh as arg to Python function and change call in _ComputeSurfaceFacesHelper.

(Internal change: 2309239)

17 months ago[usdImaging] Fix typo.
rajabala [Tue, 19 Dec 2023 20:45:48 +0000 (12:45 -0800)]
[usdImaging] Fix typo.

(Internal change: 2309216)

17 months agoHydra schema generation: Another round of updates.
unhyperbolic [Tue, 19 Dec 2023 18:20:29 +0000 (10:20 -0800)]
Hydra schema generation: Another round of updates.

(Internal change: 2309213)

17 months agoAdd class to facilitate serialization and validation of code points
Matt Kuruc [Mon, 11 Dec 2023 04:31:05 +0000 (20:31 -0800)]
Add class to facilitate serialization and validation of code points

17 months agoFix for benign warning issued in PR 2863 due to NOT being needed to be removed.
Dhruv Govil [Mon, 18 Dec 2023 17:51:15 +0000 (09:51 -0800)]
Fix for benign warning issued in PR 2863 due to NOT being needed to be removed.

17 months agoValidate continuation bytes during code point iteration.
Matt Kuruc [Sat, 9 Dec 2023 22:45:36 +0000 (14:45 -0800)]
Validate continuation bytes during code point iteration.

18 months agobuild_usd.py: Enable Python 3.11 support
sunyab [Fri, 15 Dec 2023 00:36:14 +0000 (16:36 -0800)]
build_usd.py: Enable Python 3.11 support

Python 3.11 requires updated versions of CMake (3.27+) and
boost (1.82.0+).

This change builds off PR #2742 by @dgovil.

Fixes #2742

(Internal change: 2309146)

18 months agoAdd custom code to UsdGeomTetMeshto compute the surface face indices
eberled [Fri, 15 Dec 2023 00:36:11 +0000 (16:36 -0800)]
Add custom code to UsdGeomTetMeshto compute the surface face indices
expected in surfaceFaceVertexIndices for imaging and attachments in UsdPhysics.

(Internal change: 2309127)

18 months agoMerge pull request #2863 from dgovil/cleanup-arkit-checks
pixar-oss [Fri, 15 Dec 2023 00:36:08 +0000 (16:36 -0800)]
Merge pull request #2863 from dgovil/cleanup-arkit-checks

Cleanup arkit checks

(Internal change: 2309099)

18 months agoRegen usdRiPxr to includes updates from various args updates.
tallytalwar [Fri, 15 Dec 2023 00:36:04 +0000 (16:36 -0800)]
Regen usdRiPxr to includes updates from various args updates.

(Internal change: 2309093)

18 months agoHdPrman: Add HdPrman_UpdateObjectSettingsSceneIndex, which
blevin [Fri, 15 Dec 2023 00:35:56 +0000 (16:35 -0800)]
HdPrman: Add HdPrman_UpdateObjectSettingsSceneIndex, which
upgrades RenderMan attributes to track with latest versions

This is equivalent in purpose and motivation to the
PRManUpdateObjectSettingsOp in Katana's RfK

Currently it handles a few cases we are seeing in testing:

- shadingrate -> micropolygonlength
- trace:displacements values over 1 are deprecated
- dice:rasterorient string->bool

can be extended to handle other such cases as needed

(Internal change: 2309090)

18 months agoAdding USDShadeBindingMaterialAPI details to overview docs for UsdShade
pixar-oss [Fri, 15 Dec 2023 00:35:49 +0000 (16:35 -0800)]
Adding USDShadeBindingMaterialAPI details to overview docs for UsdShade

(Internal change: 2309045)

18 months agoMerge pull request #2856 from erslavin/unicode_character_classes_doxygen
pixar-oss [Fri, 15 Dec 2023 00:35:46 +0000 (16:35 -0800)]
Merge pull request #2856 from erslavin/unicode_character_classes_doxygen

Unicode character classes doxygen

(Internal change: 2309007)

18 months agoMerge pull request #2702 from nvmkuruc/sdfcopyoptional
pixar-oss [Fri, 15 Dec 2023 00:35:20 +0000 (16:35 -0800)]
Merge pull request #2702 from nvmkuruc/sdfcopyoptional

Replace `boost::optional` with `std::optional` for `SdfCopySpec`

(Internal change: 2308993)

18 months agoMerge pull request #2864 from nvmkuruc/sdfoptional
pixar-oss [Fri, 15 Dec 2023 00:35:15 +0000 (16:35 -0800)]
Merge pull request #2864 from nvmkuruc/sdfoptional

Replace `boost::optional` with `std::optional` in `SdfLayer` and `Sdf_TextParserContext`

(Internal change: 2308968)

18 months agoMerge pull request #2828 from jasonfielder/metal-gl-interop-remove-cvtexturecache
pixar-oss [Fri, 15 Dec 2023 00:35:12 +0000 (16:35 -0800)]
Merge pull request #2828 from jasonfielder/metal-gl-interop-remove-cvtexturecache

Remove use of CV*TextureCache in GL/Metal HgiIntrop

(Internal change: 2308951)

18 months agoThis change addresses regressions that stem from a subtle difference in the way boost...
matthewcpp [Fri, 15 Dec 2023 00:35:08 +0000 (16:35 -0800)]
This change addresses regressions that stem from a subtle difference in the way boost::optional and std::optional handle object destruction. When the optional value's destructor is called, operator bool() will return true for the case of boost and false for the case of std.

The effect of this difference in behavior can be observed in the _ComposeSubtree method. With std::optioanl's implementation the `if(_dispatcher)` check returns false and these will not be enqueued to the dispatcher. The result was a significant speed regression due to lack of parallelism.

This fix adds and explict call to WorkDispatcher::Wait() before setting _dispatcher to std::nullopt. This ensures that all tasks are enqueued and will be processed in parallel.

(Internal change: 2308941)

18 months agoMerge pull request #2843 from nvmkuruc/tfsplitpreprocessorutils
pixar-oss [Fri, 15 Dec 2023 00:35:06 +0000 (16:35 -0800)]
Merge pull request #2843 from nvmkuruc/tfsplitpreprocessorutils

Split `preprocessorUtilsLite` tests into their own file

(Internal change: 2308869)

18 months agoMerge pull request #2857 from erslavin/unicode_character_classes_compile_time_ranges
pixar-oss [Fri, 15 Dec 2023 00:35:03 +0000 (16:35 -0800)]
Merge pull request #2857 from erslavin/unicode_character_classes_compile_time_ranges

Convert xid ranges classes into compile time lookup tables

(Internal change: 2308868)

18 months agoAdded support for float precision rotations for point instancers; propagated
pixar-oss [Fri, 15 Dec 2023 00:34:56 +0000 (16:34 -0800)]
Added support for float precision rotations for point instancers; propagated
support up to hdPrman, and Storm

Fixes #2529

(Internal change: 2308814)

18 months agoMerge pull request #2807 from erikaharrison-adsk/adsk/bugfix/namecollisionfix
pixar-oss [Fri, 15 Dec 2023 00:33:37 +0000 (16:33 -0800)]
Merge pull request #2807 from erikaharrison-adsk/adsk/bugfix/namecollisionfix

Autodesk: Bugfix - Avoid name collision with MaterialX inputs and built-in uniforms

(Internal change: 2308795)

18 months agoReplace `boost::optional` with `std::optional` in `SdfAllowed`
Matt Kuruc [Fri, 15 Dec 2023 05:00:05 +0000 (21:00 -0800)]
Replace `boost::optional` with `std::optional` in `SdfAllowed`

18 months agoAdding schema for UsdGeomTetMesh needed by UsdPhysics schema.
eberled [Fri, 15 Dec 2023 00:33:31 +0000 (16:33 -0800)]
Adding schema for UsdGeomTetMesh needed by UsdPhysics schema.
Additional work to imaging support will land in later changes.

(Internal change: 2308792)

18 months ago[hdGp] Fix typo that was preventing generative procedurals from getting
mrawde [Fri, 15 Dec 2023 00:33:17 +0000 (16:33 -0800)]
[hdGp] Fix typo that was preventing generative procedurals from getting
updated when running asynchronously.

(Internal change: 2308770)

18 months ago[hdPrman] Merging MotionBlurSceneIndexPlugin
tgvarik [Fri, 15 Dec 2023 00:31:25 +0000 (16:31 -0800)]
[hdPrman] Merging MotionBlurSceneIndexPlugin

This change brings MotionBlurSceneIndexPlugin into alignment. It includes some tangential and a few unrelated fixes in files that needed more extensive work on the rman side.

Notables:
 * The motion blur scene index plugin for hdPrman always ignores the start and end times provided in calls to GetContributingSampleTimesForInterval(). The interval provided to SetShutterInterval() is used instead. This is part of our workaround for the prman global shutter interval issue.
 * We add a polyfill for VtVisitValue. Translation units in hdPrman can now #include "pxr/base/vt/visitValue.h" and use VtVisitValue without needing to gate by USD_VERSION and provide a fallback. When hdPrman drops support for USD versions older than 22.11, the polyfill headers can simply be deleted.
 * Instancer now uses pxr/base/work to parallelize instance management, providing significant performance benefit on instancing-heavy scenes.
 * Utils::Compose() can now take an arbitrary number of param lists, so long as they are all passable by reference. It now also works for PrimVarLists, although Instancer has not yet been updated to make use of it.
* Some unrelated minor issues like adding missing `override` and removing unused variables. These were only done in files that required more extensive changes in the other tree.

(Internal change: 2308761)
(Internal change: 2309067)

18 months agoplug: Emit all the pathnames that Plug_ReadPlugInfo will search upfront when
gitamohr [Fri, 15 Dec 2023 00:31:22 +0000 (16:31 -0800)]
plug: Emit all the pathnames that Plug_ReadPlugInfo will search upfront when
the PLUG_INFO_SEARCH debug code is enabled.

(Internal change: 2308648)

18 months ago[hgiMetal] Change Metal's swizzle so single channel texture
klucknav [Fri, 15 Dec 2023 00:31:15 +0000 (16:31 -0800)]
[hgiMetal] Change Metal's swizzle so single channel texture
reads follow the UsdPreviewSurface spec of repeating the single channel
on the r, g and b channels with 1.0 in the alpha channel.

Fixes #2731

(Internal change: 2308645)

18 months agoHydra schema generation: changing processing of include paths to expand macros rather...
unhyperbolic [Fri, 15 Dec 2023 00:31:08 +0000 (16:31 -0800)]
Hydra schema generation: changing processing of include paths to expand macros rather than hard-coding the path to hd.

Also making specific schemas include vectorSchemaTypeDefs.h rather than including it from HdSchema.

(Internal change: 2308638)

18 months ago[hdsi] Fix GetContributingSampleTimesForInterval for ExtComp
tgvarik [Fri, 15 Dec 2023 00:30:56 +0000 (16:30 -0800)]
[hdsi] Fix GetContributingSampleTimesForInterval for ExtComp

Instead of just returning false, which breaks motion blur for ExtComped geometry, we iterate over the comp inputs and gather all their contributing sample times and return true if we end up with more than one sample time in the set.

(Internal change: 2308633)

18 months agoMove material node sampler parameter extraction into a standalone function.
cvj [Fri, 15 Dec 2023 00:30:48 +0000 (16:30 -0800)]
Move material node sampler parameter extraction into a standalone function.

(Internal change: 2308507)

18 months agoMerge pull request #2724 from erikaharrison-adsk/adsk/bugfix/FloatMatrix
pixar-oss [Fri, 15 Dec 2023 00:30:44 +0000 (16:30 -0800)]
Merge pull request #2724 from erikaharrison-adsk/adsk/bugfix/FloatMatrix

Autodesk: Support float type matrix (GfMatrix4f) for instanceTransform

(Internal change: 2308434)

18 months ago[hdSt] Enable Hgi resource generation for non-HgiGL Hgi backends, such as
clach [Fri, 15 Dec 2023 00:30:00 +0000 (16:30 -0800)]
[hdSt] Enable Hgi resource generation for non-HgiGL Hgi backends, such as
HgiVulkan, by default.

(Internal change: 2308367)

18 months agoMerge pull request #2834 from nvmkuruc/vtseq
pixar-oss [Fri, 15 Dec 2023 00:29:55 +0000 (16:29 -0800)]
Merge pull request #2834 from nvmkuruc/vtseq

Replace `BOOST_PP_SEQ` with `TF_PP_SEQ` in `vt` and `tf`

(Internal change: 2308315)

18 months agoMerge pull request #2835 from nvmkuruc/usdseq
pixar-oss [Fri, 15 Dec 2023 00:29:52 +0000 (16:29 -0800)]
Merge pull request #2835 from nvmkuruc/usdseq

Replace `BOOST_PP_SEQ` with `TF_PP_SEQ` in `usd`, `usdSkel`, and `sdf`

(Internal change: 2308314)

18 months agoMerge pull request #2833 from nvmkuruc/tfseq
pixar-oss [Fri, 15 Dec 2023 00:29:48 +0000 (16:29 -0800)]
Merge pull request #2833 from nvmkuruc/tfseq

Add `TF_PP_SEQ_FOR_EACH` and `TF_PP_SEQ_SIZE` macros

(Internal change: 2308313)

18 months agoFixed Doxygen Comment Style
Edward Slavin [Mon, 11 Dec 2023 12:30:30 +0000 (07:30 -0500)]
Fixed Doxygen Comment Style

- Adjusted doxygen style in unicode character classes from @ to \

18 months agoValidate code point ordering for non-ASCII range
Matt Kuruc [Tue, 12 Dec 2023 18:11:34 +0000 (10:11 -0800)]
Validate code point ordering for non-ASCII range

18 months agoConvert xid ranges classes into compile time lookup tables
Matt Kuruc [Fri, 8 Dec 2023 21:10:08 +0000 (13:10 -0800)]
Convert xid ranges classes into compile time lookup tables

(cherry picked from commit 278d3cb62f96a1dfc283280c73de359b6452fe11)

18 months agoReplace `boost::optional` with `std::optional` for `sdf` list operations
Matt Kuruc [Tue, 19 Sep 2023 03:03:23 +0000 (20:03 -0700)]
Replace `boost::optional` with `std::optional` for `sdf` list operations

18 months agoAdd class to facilitate serialization and validation of code points
Matt Kuruc [Mon, 11 Dec 2023 04:31:05 +0000 (20:31 -0800)]
Add class to facilitate serialization and validation of code points

18 months agoValidate continuation bytes during code point iteration.
Matt Kuruc [Sat, 9 Dec 2023 22:45:36 +0000 (14:45 -0800)]
Validate continuation bytes during code point iteration.

18 months agoReplace `boost::optional` with `std::optional` in `SdfLayer` and `Sdf_TextParserContext`
Matt Kuruc [Mon, 11 Dec 2023 23:35:50 +0000 (15:35 -0800)]
Replace `boost::optional` with `std::optional` in `SdfLayer` and `Sdf_TextParserContext`

18 months agoChange documentation to specify which year of RealityKit this supports.
Dhruv Govil [Mon, 11 Dec 2023 18:53:34 +0000 (10:53 -0800)]
Change documentation to specify which year of RealityKit this supports.

18 months agoAdd more supported RealityKit types
Dhruv Govil [Mon, 11 Dec 2023 18:47:25 +0000 (10:47 -0800)]
Add more supported RealityKit types

18 months agoRemove ARKitRootLayerChecker because its no longer valid for RealityKit
Dhruv Govil [Mon, 11 Dec 2023 18:36:44 +0000 (10:36 -0800)]
Remove ARKitRootLayerChecker because its no longer valid for RealityKit

18 months agoAllow MaterialX shaders within USDZ files
Dhruv Govil [Mon, 11 Dec 2023 18:24:52 +0000 (10:24 -0800)]
Allow MaterialX shaders within USDZ files

18 months agousdImagingGL: update incorrect test arguments
sunyab [Mon, 11 Dec 2023 17:20:19 +0000 (09:20 -0800)]
usdImagingGL: update incorrect test arguments

(Internal change: 2308307)

18 months agousd: Bump default version for newly created crate files to 0.9.0.
gitamohr [Sun, 10 Dec 2023 18:53:13 +0000 (10:53 -0800)]
usd: Bump default version for newly created crate files to 0.9.0.

Fixes #2838

(Internal change: 2308208)

18 months agoMerge pull request #2830 from erslavin/utf8_character_class
pixar-oss [Sun, 10 Dec 2023 18:53:10 +0000 (10:53 -0800)]
Merge pull request #2830 from erslavin/utf8_character_class

Support for UTF-8 Character Class Processing

(Internal change: 2308196)

18 months agoMerge pull request #2707 from nvmkuruc/tracejsoptional
pixar-oss [Sun, 10 Dec 2023 18:53:06 +0000 (10:53 -0800)]
Merge pull request #2707 from nvmkuruc/tracejsoptional

Replace `boost::optional` with `std::optional` in `trace` and `js`

(Internal change: 2308163)

18 months agousd: Simplify CrateFile::_ValueHandler type hierarchy using C++17's 'if
gitamohr [Sun, 10 Dec 2023 18:53:01 +0000 (10:53 -0800)]
usd: Simplify CrateFile::_ValueHandler type hierarchy using C++17's 'if
constexpr()'.  This type hierarchy existed to let us simultaneously share
common code among all the kinds of value types (inlined-vs-not,
array-supporting-vs-not) while not instantiating code that wouldn't be valid
for one type or another.

Happily, 'if constexpr()' will totally discard the appropriate 'if' or 'else'
branch, giving us a cleaner way to achieve these goals.  This change collapses
the old type hierarchy:

_ValueHandlerBase <- _ScalarValueHandlerBase<T> <-
    _ArrayValueHandlerBase<T> <- _ValueHandler<T>

To simply:

_ValueHandlerBase <- _ValueHandler<T>

And the type-based special cases are handled locally within the methods of
_ValueHandler<T> via 'if constexpr()' rather than spread across the different
subclasses.

(Internal change: 2308134)

18 months ago[hdx] Fixes visualization of Embree normals AOV when using HgiVulkan.
clach [Sun, 10 Dec 2023 18:52:56 +0000 (10:52 -0800)]
[hdx] Fixes visualization of Embree normals AOV when using HgiVulkan.

(Internal change: 2308132)

18 months agoMerge pull request #2697 from mati-nvidia/mati/usdSkel_docs
pixar-oss [Sun, 10 Dec 2023 18:52:17 +0000 (10:52 -0800)]
Merge pull request #2697 from mati-nvidia/mati/usdSkel_docs

Improve UsdSkel docs

(Internal change: 2308060)