Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] release from PixarAnimationStudios:release #1

Open
wants to merge 5,544 commits into
base: release
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Nov 22, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Nov 22, 2021
clach and others added 29 commits November 4, 2024 11:33
I believe it's potentially problematic to declare an HdStRenderDelegate or
HdStResourceRegistrySharedPtr as static in the way some of these tests did.
The _HgiToResourceRegistryMap is a static singleton that includes a custom
deleter for HdStResourceRegistry. If _HgiToResourceRegistryMap is deleted first,
the custom deleter for HdStResourceRegistry might do a heap-use-after-free as
the deleter modifies a member of _HgiToResourceRegistryMap.

(Internal change: 2346349)
…d produce data sources even though the input container data source has no data source for that key.

(Internal change: 2346648)
SdfAttributeSpec only would incur the additional performance overhead of GetAttributeAtPath
anywhere an SdfAttributeSpec handle doesn't already exist (many of the cases exist).

(Internal change: 2346655)
…::GetTimeSampleMap

(Internal change: 2346656)
and track allocations.  These match the same options
as provided in usdview, and provide instrumentation
for batch rendering.

(Internal change: 2346702)
…ers.

- If the visibility or filterLink collection on the filter is invalidated, we forward the invalidation to the light prim.

(Internal change: 2346736)
valid interpolation  values.

(Internal change: 2346787)
Pcp_ComposeExpressionVariables should always return a pointer to
a PcpExpressionVariables object whose lifetime is managed externally.
This is checked via a TF_VERIFY, but if that failed due to a bug
this function could return a pointer to a temporary instead. This
change avoids that by making that temporary static.

This allows client code to recover gracefully if the TF_VERIFY is
tripped. It also avoids a return-local-addr warning that is emitted
under gcc11.

(Internal change: 2346790)
…re-factoring.

Bugs fixed:
1. The dependencies were only added if it had a path data source for the all-purpose material binding. This meant that if a prim started off without such a data source and then added it, the scene index do not pick up the new dependency.
2. If a material binding data source returned an empty path, the scene index was trying to call GetPrim for the empty path on the input scene index and added an unnecessary self-dependencies.

There is one (hopefully reasonable) assumption that that the new implementation makes (for performance): if we got a null pointer for material bindings, no dependencies are created (for performance) and if a client adds a material bindings data source later, it won't be picked up.

We also simplified the code using:
1. _GetInputSceneIndex() is never null.
2. The helper HdOverlayContainerDataSource::OverlayedContainerDataSources.

(Internal change: 2346826)
… This

amortizes the high cost of computing instancer information when generating
pick hit information for multiple hits with one function call.
…var reader is changed.

(Internal change: 2346866)
- usdchecker.py has been removed and converted to usdchecker.cpp, which
  currently just forwards to the existing UsdUtils.ComplianceChecker
  python utility.

- A subsequent change adds an option to use the new Usd Validation
  Framework instead, which will run ALL available UsdValidators, via
  UsdValidationContext, and report appropriate warnings/errors.
  Note that as all UsdUtilsCompliant tests are ported over to the new
  framework, this option will be the default.

(Internal change: 2346881)
1. Adding a dependency of the material binding of a prim on the material's data source of the bound material.
2. Fixing a bug where HdContainerDataSourceEditor::Overlay was called twice for the dependencies locator. This resulted in the data source given in the second call to be overlayed over the the dependencies of the input container data source and the data source given in the first call to be ignored.
3. Removing dependencies that are already added by the HdsiMaterialPrimvarTransferSceneIndex.

(Internal change: 2346925)
Note that usdchecker as of right now depends on calling
UsdUtils.ComplianceChecker python module, which are not build in static
builds.

In a subsequent change, usdchecker will be updated to also work with the new
validation framework, which will remove this dependency on ComplianceChecker
and make it work with static builds.

(Internal change: 2346963)
…cpCacheChanges for storing specs whose children also changed in order to limit the growth of the _didChangeSpecsInternal container resulting in a performance gain. In the initial implementation, processing of this container was identical to that of _didChangeSpecsInternal.

The existing updateSpecStacks function contains code paths which may modify the state of the prim index cache during invocation.  Since the index cache is used for processing of _didChangeSpecsAndChildrenInternal, this could result in errors during iteration and processing if one of those branches were to ever be followed.

This change provides and more applicable name to this container and streamlines the processing of the items in _didChangePrimSpecsAndChildrenInternal to include only logic which ensures that prim stacks are updated.  Relevant property and target path caches are updated due to their parent paths having signficiantly changed due to addional / removal.

(Internal change: 2347031)
check for a 'primvars' token first, avoiding unnecessary computation.

(Internal change: 2347061)
… We should

refresh view settings at AppController initialization so that the actual "display purposes"
selection is propagated to the BBoxCache. This fixes a bug where some bboxes are not displayed
on usdview startup when "display purpose Render" is set by default.

(Internal change: 2347104)
including materials and coordinate systems.  The new codepath
sites behind the HD_PRMAN_ENABLE_PARALLEL_PRIM_SYNC feature flag,
which is enabled by default.

(Internal change: 2347140)
in common workflows, HdPrman now only deletes the light instance
in the case that the light either was or is visible to camera.

Also, remove a stray TODO that no longer applies.

(Internal change: 2347265)
…t-HgiVulkanBlitCmds-CopyBufferCpuToGpu

Autodesk: Vulkan Bugfix - HgiVulkanBlitCmds offset

(Internal change: 2347311)
legacyGeomSubsetSceneIndex was not properly cleaning up its cache of subsets upon ancestor removal.

(Internal change: 2347373)
HdPrman_UpdateObjectSettings_DataSource. This avoids the need to do
the same check in the new data source.

- In _UpdatePrimvars(), we don't need to check the result of
primvars.GetPrimvar(), which removes one level of nesting.

(Internal change: 2347503)
ImageIOParameter has been a simple alias for ParamValue since at
least OpenImageIO 2.0.
diyajoy and others added 30 commits December 20, 2024 14:22
testUsdReferenceAssemblySelection crashes due to the nullptr hgi instance. The
test is likely creating an unsupported HgiGL instance due to a lack of proper
GL context, which needs further investigation to fix. A ticket will be filed
for this issue.

(Internal change: 2352432)
Restored the earlier behavior of allocating textures
with MTLResourceStorageModePrivate. This is the preferred
mode for best performance and compatibility across different
Metal implementations.

This regression had been introduced inadvertently as part of
enabling imaging for Apple embedded systems.

Fixes #3470

(Internal change: 2352441)
…material overrides selected

(Internal change: 2352469)
Conditional jump or move depends on uninitialised value(s)
at: HdPrman_RenderPass::_RestartRenderIfNecessary(HdRenderDelegate*) (renderPass.cpp:769)

(Internal change: 2352493)
…ds on the tutorialPlugin/ path itself being in PYTHONPATH.

(Internal change: 2352552)
In 2351859, we added the HD_PRMAN_ALL_LIGHTS_FIXED_SAMPLE_COUNT environment variable to allow overriding fixedSampleCount on all lights hdPrman sends to RenderMan. But that parameter is only valid on a subset of lights. To avoid warnings when the parameter is set on ineligible lights, we now check whether the light supports the parameter before setting it whenever the environment variable is set.

(Internal change: 2352652)
…anded and doubleSided to true

(Internal change: 2352722)
Per boostorg/boost#996, boost releases
are no longer hosted at JFrog. This change updates build_usd.py
to download boost from SourceForge instead. If this fails the
script will fall back to the "official" (but slower) host at
archives.boost.io.

This change also verifies the SHA256 checksum for the downloaded
archive file to ensure we get the expected file regardless of
host.

(Internal change: 2352768)
(Internal change: 2352849)
When the environment variable is set, only set fixedSampleCount on visible lights.

fixedSampleCount conflicts with lighting:mute, which is set from visibility. The conflict arises because lighting:mute needs to be very fast, so it's implemented as a zeroing-out of the light's importance. fixedSampleCount bypasses importance sampling,

(Internal change: 2353124)
This was for a studio-specific workflow and not intended
to be supported in OpenUSD.

(Internal change: 2353214)
Besides being recommended practice, this avoids a hang on
Windows that could occur when the static UsdStageCache member
was destroyed during process teardown. The UsdStage objects
stored in the cache would try to use TBB in their d'tors
after the TBB library had been unloaded and its worker
threads destroyed, leading to odd deadlocks. This most
recently showed up in testUsdChecker* but also affected
imaging tests, which were disabled primarily because of
this issue.

(Internal change: 2353331)
…ly, the emulated scene index driven by legacy scene delegates.

This fixes the crash reported in #3471 caused by change 2351061.

The problem was that the HdxTaskController added a task without going through emulation. But when we received a removed notice (in this case UsdImagingStageSceneIndex removing /), we removed the task without re-adding it. That is, the merging scene index is removing and re-adding prims. But because the task was not properly emulated, it was never re-added when the merging scene index send the prims added notice.

Fixes #3471

(Internal change: 2353415)
(Internal change: 2353502)
(Internal change: 2353635)
…sublayer results in a cycle. In order to prevent this, a cache of visited layer/sublayer path pairs is used to terminate recursive processing of sublayer paths.

Fixes #3493

(Internal change: 2355098)
Alembic requires ZLIB, but only in the case that HDF5 support is enabled.
Since we are selectively adding zlib as a dependency, we need to append
zlib to `requiredDependencies` if HDF5 is enabled in the build context.
This fixes alembic build failures on Windows.

Closes #3501

(Internal change: 2355438)
…sublayer operation on a layer whose file format is a package. The current implementation which generates fine grained change lists makes use of an anonymous layer to compute a diff against. It is an error to create such a layer with a package file format. To workaround this limitation with the current implementation, we send packages down the "big bang" invalidation path.

(Internal change: 2355629)
(Internal change: 2355759)
upload-artifacts@v3 had previously been deprecated and was
disabled as of January 30th per:

https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/

The bug that prevented us from using v4 earlier on Windows
appears to have been fixed.

(Internal change: 2355870)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.