Skip to content

Conversation

@ivanimanishi
Copy link
Member

Merge branch 'RB-10.4' into main

yannci and others added 30 commits October 6, 2022 16:48
We noticed huge FPS drops in scenes with a huge amount of
`SceneShapes`. Profiling showed that a lot of time is spend by
`SubSceneOverride` requesting draw updates from the shapes in
the scene. This also happens for shapes that are set as hidden,
what we consider a bug/flaw in Maya's VP2 drawing API.

To alleviate this issue, we derive the proxy from `SceneShape`
and inherit all of it's behaviour with the exception, that we don't
register it as drawable. This allows us to replace `SceneShape`s with
its proxy implementation, where only the data reading capabilities
are needed, e.g. layouts or rigs.
DataAlgo : Support PathMatcherData in `dispatch()`
Newer version of RV (>=2022.3.0) is crashing randomly on startup. After few trial and error the combination that seems to work is to build cortex for RV by using OIIO libraries packaged with RV. That library is older enough so to not contain OpenImageIO_Util library which is assumed to exist in SConstruct configuration. These changes will allow to use that older version.

There still occasional "double memory free" crushes on application close. But I could not yet figure out how to address that. Theoretically that crash is because of incompatible version of boost. However, using proper version of boost doesn't seem enough.
These dependencies include :
- Binaries needed for building and running GafferCycles
- Helpful graphical USD tools that have been asked for that were not included in past Windows releases.
- `exrheader` which is needed for `GafferImageTest`
Windows build : Update to dependencies `6.2.0`
SConstruct : Fix slash error on Windows
MurmurHash : Added string constructor and `fromString` function.
USDScene : Improve responsiveness of `readSet()` cancellation
Allow building RV with older version of OIIO
We backport the Python3 compatibility changes for `FnSceneShape.py`
and `__init__.py from the following commits:
   - 58d250f
   - 8f7f614

This is to avoid merge conflicts later on
Changing all `staticmethod`s to `classmethod`s and replacing
all method calls from within the class to use either `self`
or `cls` instead of the class name. This allows for easier
inheritance and less code duplication in subclasses
With overriding the `__new__` method of the `FnSceneShape` class we
change the object type during construction and before initialization.
This gives us the ability to use `FnSceneShape` regardless if it's
dealing with a `SceneShape` or it's proxy version.
We add the `shapeType` argument to the methods that can create a
`SceneShape` node to specify if we want to create an `ieSceneShape` or
its proxy version. If we don't pass in the argument `FnSceneShape`
will create shapes of the type it was initially created with.
Moving the node creation in the `setUp` method, which is called before
every test method, gives subclasses the ability to run the same test
cases with a different node. This is e.g. useful for
`ieSceneShapeProxy` as we need to make sure that it behaves the same
way as it's non proxy version
…ath::Box3d and Imath::M44d to DD::Image::Matrix4.
We want to maintain the world space matrix instead of transforming the points
so we can more easily round trip scene cache in/out of nuke.
This allows to write the bounds as the SceneInterface expects ( local space ).

Due to some kind of reset happening in the SourceGeo source code, we need to store
the matrix in create_geometry and apply in the geometry_engine.

I think this should work fine considering that Op are instantiate per output context ( frame )
so we shouldn't have a clash in the map data structure.
Allow to query the Nuke's scene representation through the SceneInterface API.
@ivanimanishi ivanimanishi merged commit 4528f3a into main Nov 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants