-
Notifications
You must be signed in to change notification settings - Fork 202
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
Update dev branch to include latest AL develop, and (nearly) latest Pixar dev #18
Conversation
Also fixing one case of unused variable in specific build environments. (Internal change: 1972760)
(Internal change: 1972761)
[usdview] Added currentFrame command line argument (Internal change: 1972807)
…ting (Internal change: 1972835)
(Internal change: 1972851)
UsdImaging's PointInstancerAdapter was working with singly- and doubly-nested UsdGeomPoinstInstancer prims, but would crash when a third level of nesting was added. The root cause was a mix-up between USD paths and cachePaths. Specifically, cache paths for instancers may embed variant selections to disambiguate uses of a USD point instancer in the cache. When looking up the backing USD prim, we must strip off the variant selections -- but this step was missing in some places. This was relatively easy to spot after adjusting variable names to distinguish paths used for USD vs. cache paths. Also, UpdateForTime() must check if the parent instancer prim exists, similar to what UpdateForTimePrep() already does, an issue revealed once the above was addressed. Fixes Autodesk#838 (Internal change: 1972877)
Adding support for skipping some subdiv parameters during refinement. Change the 'addPathAttributes' param of USD unpack methods to instead be included in the GT_RefineParms as key 'usd:addPathAttributes' Updating GusdGU_PackedUSD::unpackGeometry to take an optional GT_RefineParms Adding the same, optional parm to GusdGU_USD::ImportPrimUnpacked and various methods in agentUtils. (Internal change: 1972878) (Internal change: 1973071)
...did not call _InitGL, like the no-arg constructor. This resulted in an error: 'GlfContextCaps has not been initialized'
…s from a USD file This change includes two other main additions. The first is a UsdAppUtilsFrameRecorder class that wraps a UsdImagingGLEngine and can be used to output images to disk that are effectively the same as what you would see in the viewer in usdview. The other is a rendererArgs.py module that supports added command-line args to a script for specifying the Hydra renderer plugin to use. (Internal change: 1972902) (Internal change: 1973128)
In this crash, we repopulate a native instancer adapter after some scene edits. Since this is a top-level Populate() call, the instanceChainPath is </> and _GetPrimPathFromInstancerChain() returns a path that does not reflect a real prim: instancePath: /__Master_2/obj_0 parentProxyPath: / instanceChainPath: /obj_0 Work around the crash by checking if the returned prim is valid before querying its modelDrawMode. Fixes Autodesk#847 (Internal change: 1972953)
…ags. Prior to this change, tasks has two mechanism to specify render tags to the Execute Phase. Firstly there was the render tags specified by the collection, which was used in the gathering of draw items. Each render tag was bucketed into different command buffers. Secondly, the task could pass a set of render tags to the Execute function, which would be used to select which render tag buckets to draw. This change, removes the render tag bucketing and instead changes render pass to using a single command buffer. Instead of using the collections render tags, the render tags passed to Execute are used to do draw item filtering. This simplifies the logic and provides a consistent set of render tags across sync and execute. However, this will impacting render tag change performance as changing render tags now causing command buffers to be rebuilt. However, this isn't a high frequency operation and the new performance should be in line with Repr (display mode switching) performance it was felt to be a good compromise. Changes: - Render Index's GetDrawItems() now takes render tags as a parameter and not longer returns a bucketed list of draw items, but instead just a single list of draw items. - Render Index gather filter will now early out if a tag match is found. - render tags is now carried separately through the draw item gather code, ignoring render tags in collections (which will soon be removed). - Removed the various overloads of HdRenderPass::Execute(), as they all ended up just passing a render tag token vector to _Execute(). Now just a single entry point for Execute() exists. - Most tasks now pass the result of it's own GetRenderTags() method to Execute(). - HdSt_RenderPass, now only contains a single command buffer. Rebuilding if the render tags change - Shadow task no longer uses a hard coded set of render tags for execute and instead uses those provided by GetRenderTags(). (Internal change: 1973001)
(Internal change: 1973105)
(Internal change: 1973106)
We needed to move the discovery of node source types from NdrRegistry::_FindAndInstantiateParserPlugins to NdrRegistry::_RunDiscoveryPlugins. We used to assume that a plugin could only discover nodes of one type; however, this assumption did not hold true, since for example some file formats like 'mtlx' can define a shader for multiple different source types. Thus, we instead need to discover the node source types after the parser plugins run. (In the past a parser plugin that returned an "" was returning more than one type) Changes: * Don't populate _availableSourceTypes at parser instantiation (_FindAndInstantiateParserPlugins) * Populate _availableSourceTypes when the parsers run (_RunDiscoveryPlugins) * In NdrRegistry::GetAllNodeSourceTypes, get the _discoveryResultsMutex lock in order to access _availableSourceTypes, since _availableSourceTypes now gets populated in _RunDiscoveryPlugins when we need this lock. * Update testSdrRegistry to check that we find source types for the registry from the discovery results (Internal change: 1973110)
(Internal change: 1973168)
…chRenderer Following the change that removed HdxIntersector, DrawCustomCollection() is no longer used or needed. (Internal change: 1973216)
…rom Scene Delegate. Now, tasks own the render tags; rather than hard coded the render tags in the tasks themselves, it is preferred to obtain them from the application via the Task's Scene Delegate. The change provides the core infrastructure to support this objective. Changes: - Added DirtyRenderTags to list of Task's dirty bits. - Change tracker now takes an initial set of dirty bits for tasks, matching other prims. This is obtained from the task's new GetInitialDirtyBitsMask() API. - Scene Delegate API has new GetTaskRenderTags() method for obtains the render tags for a task. - To match other prims HdTask, now implements _GetTaskRenderTags() to obtain the render tags from the delegate. (Internal change: 1973270) (Internal change: 1974405)
Existing window policies (fit, crop, match verticaly/horizontally) will always adjust a camera's frustum to honor the target (viewport) aspect ratio. The "DontConform" policy leaves the frustum as-is, meaning that the resulting image may be stretched/squished if it wasn't pre-fit. While this isn't generally what one might want, it may prove useful in a few cases: - The application has prefitted the camera frustum to the viewport, and doesn't want Hydra to tamper with it. This is mostly cautionary to avoid any changes due to precision. - The application wants the squishing/stretching effect (quite unlikely in practice). - Avoid rebaselining of unit tests whose baselines were generated w/o adjusting the camera frustum. (Internal change: 1973325)
Previously, inherited primvars were supported only for backends using full material networks (e.g. Prman); and they weren't supported for special, "builtin", primvars, such as displayColor/displayOpacity/widths. This change adds inherited primvar support for all backends, and adds support for displayColor/displayOpacity/widths. To counteract the performance hit, this change also adds an "inherited primvar cache", an implementation of the UsdImaging inherited cache that stores the inherited primvars at each level. The design of this cache has been modelled after the coordsys binding cache, which we expect to have similar authoring patterns. This change also fixes GprimAdapter::TrackVariability to set DirtyPrimvar when any primvar is time-varying; previously, it just checked color and opacity. (Internal change: 1973330) (Internal change: 1973452)
Previously, if we had an instance-rate primvar "displayColor" (for example), CodeGen would generate the accessors: vec3 HdGet_displayColor_0(); vec3 HdGetInstance_displayColor(int level, vec3 default); ... but these aren't discoverable for shading code, which is explicitly ignorant of whether the primvar is instance rate or prototype rate. Those two accessors are still provided, for the HdSt instancing shaders, but we now generate a user facing accessor: vec3 HdGet_displayColor() { return HdGet_displayColor_0(); } Prototype primvars take precedence over instance-rate, so this is only defined if there's no prototype-rate displayColor (as tested with #if !defined(HD_HAS_displayColor)). (Internal change: 1973334)
…ng if a field change is relevant. File formats no longer have to handle this themselves. (Internal change: 1973387)
…cent_alembic Fix compatibility for AbcCoreOgawa::ReadArchive with Alembic>=1.7.9 (Internal change: 1973396)
…Task Controller based delegates. This change implements the new scene delegate API for obtaining render tags from the scene delegate for Task Controller based delegates. The task controller has a new method, SetRenderTaskRenderTags(), that sets the render tags to use for the render task. The shadow task currently uses a hard coded render tag of geometry. Changes: - Added SetRenderTaskRenderTags() to HdxTaskController, which sets the render tag parameter on the task and marks it dirty in the change tracker. - Task Controller's Shadow and Render Tasks initialize the render tags to geometry. - UsdImagingGLEngine and Katana plugin now sets the render tags on the task controller. (Internal change: 1973453)
Fixes Autodesk#844 (Internal change: 1973557)
Our use of boost::function in tf/pyFunction.h causes placement-new warnings on newer versions of gcc and older versions of boost. We can't easily get rid of boost::function yet because of its pervasive use in the rest of the tree that depends on this functionality in pxr. (Internal change: 1973568)
[usdMaya] make UsdMayaTranslatorUtil::CreateShaderNode use shadingNode (Internal change: 1973640)
…ollection names The names of the HdRprimCollections managed by Maya/Hydra shape adapters now need to be sanitized since they are used as part of the SdfPath that identifies render tasks. This change makes the shape adapters themselves responsible for that so that the batch renderer does not need to sanitize every collection name at every draw call. (Internal change: 1973804)
This makes the data model more consistent between joint anim and blend shapes Fixing bug in UsdSkelBakeSkinning with skinning transforms being computed on prims that have no joint influences. Adding UsdSkelAnimQuery::GetBlendShapeAttributes() method, matching the interface of UsdSkelAnimQuery::GetJointTransformAttributes(). GetBlendShapeAttributes() is needed for motion sampling in Katana. Adding UsdSkelBlendShapeQuery::GetBlendShapeIndex, for determining which blendshape goes with each sub-shape. (Internal change: 1973864)
Also disabled a "maybe uninitialized" warning in sdf. (Internal change: 1973935)
…erTask. This change is primarily to support the Maya scene delegate, but has a nice side effect of simplifying the RenderTask's render tag support and removes the complex handshacking between setup task and render task. Previously, the render setup task would be provided the render tags through it's Params structure. RenderSetupTask would provide the tags to the Sync algorithm and then communicate them through the task context to the RenderTask for execute. This was additionaly complicated by sometimes the RenderTask owned the setup task. Now, full ownership of render tags is within the RenderTask. It uses the new RenderTag dirty bit and scene delegate API to obtain them. As the Maya scene delegate uses one RenderTask per shape, this now means it no longer needs to generate a union of render tags for the setup task. Due to some dependencies, it was also necessary to convert the Pick task to the new API at the same time. Changes: - The pick and render tasks now has seperate ownership of render tags, through a _renderTags attribute. - When syncing these task, the _renderTags attribute is populated through the new _GetTaskRenderTags() API when HdChangeTracker::DirtyRenderTags is set. - The task's GetRenderTags() method, now just returns the value of the attribute. - HdxRenderTask::_GetRenderTagsForExecute() is no longer needed and Execute can just use GetRenderTags() as the values are the same. - Removed render tags from the HdxRenderTaskParams and HdxPickTaskParams structures. - Removed _renderTags attribute and getter from HdxRenderSetupTask. - Updated task controller to not set render tags in params structures. - Task controller's SetRenderTags() method now sets the render tags parameter for the pick task as well as the render tasks. - Hdx's renderTags token, which was used for inter-task communication is no longer needed. - Hdx_UnitTestDelegate and Maya scene delegates now implements the GetTaskRenderTags() scene delegate API. - UsdImagingGLEngine no longer needs to set render tags in the render params structure. - UsdImagingGLEngine::TestIntersection() wasn't setting the render tags on the task controller. - Maya scene delegate's GetPickingTasks() method now takes a collection and uses this to set the render tags for the picking task. - Maya scene delegate's GetRenderTasks() method now sets the render tags on a per task basis rather than creating a union from all collections. (Internal change: 1973936)
Add support for bools, arrays of bools, and arrays of ints. (Internal change: 1987406)
(Internal change: 1987451)
…heir input parameters, but the OSL versions of them did. This change fixes these shaders to specify the same default values that are in the OSL versions. (Internal change: 1987478)
While the Embree buffers are backed by uint8_t* this is not likely going to be the type of data in these buffers for HdSt (e.g. color/depth buffers will be 16F). I feel void* better communicates the user must carefull cast the return buffer from Map() to the appropriate type. For some tasks we are alreasy casting from uint8_t to uint32_t, such as ColorizeSelectionTask. Void* also aligns better opengl's Map() return type, the expect .data input to GlfImage and memcpy. (Internal change: 1987505)
…e of a sample. The OIT samples depth value is now in eye space. Using this in the hdSt volume fragment shader to insert a depth sample with depth at the first non-empty voxel hit during ray marching instead of the bounding box. (Internal change: 1987561)
(Internal change: 1987580)
(Internal change: 1987610)
includRoot and do not need special collection semantics in UsdLux. (Internal change: 1987633)
CodeGen was emitting HD_HAS_foo for *all* shader parameter bindings. This change fixes it so it only emits HD_HAS_foo for cases where it will generate an accessor. Fixes an issue of instanced-primvar/shader param binding name collision. Fixes Autodesk#887 (Internal change: 1987665)
Currently, most primvar population lives in the different render delegates, some use the low level buffer system and some use their own. For constant primvars, we still had it in hdRprim even though only Storm is really using it. This change moves this code to Storm. Having said that, since we don't have a low level hdSt/rprim that can host this, we introduce a helper class to host it. The reason we don't have a low level hdSt/rprim is because we are inheriting hdSt Mesh/Volumes/BasisCurves/Points from Hd Mesh/Volumes/BasisCurves/Points and those inherit from hd/rprim. (Internal change: 1987674)
…ontrol_api Adding new APIs to the render delegate for pause, resume, and getting status (Internal change: 1987739)
This merges in latest dev from pixar usd repo: b29152c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
License header has an extra // at the end of below sentence that needs to be removed.
you may not use this file except in compliance with the License.//
- don't replace lines in replace_lic.py itself - allow replacing both al + pxr lics at once - syntax bugfix - missing comma - also replace python docstrings with trailing //
So, I updated / fixed the "replace_lic.py" utiltity to deal with with converting these licenses from AL. To run it, just cd to the root of the repo, then run:
(with a python-2 interpreter). I didn't run / commit the results yet, because I wasn't sure if you also wanted to fix the pixar-style modified-apache licenses. |
I haven't seen the additional // with the pixar copyright headers. It is AL only. I also wrote a similar script like yours internally when I initially had to update these headers. Anyways, if your script handles this case then good. |
The issue with the pixar licenses isn't a trailing "//", it's that they have an extra clause which you removed in most of your files. |
Then that has to be fixed too. |
Ok, updated! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, thank you.
Also includes the PR from Autodesk:
LumaPictures#1
...and merges in the latest changes from master