-
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 the pixar/dev branch #20
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
the non-ROI get_pixels overloads were removed in this version, and USD was still using it, despite the fact that it was deprecated. This adds a version switch, so that the ROI version is used if available
slipped through because it was in a template that's not used by core (but is by HdPrman)
the targeted output does not exist. Previously, we misleadingly only required the host target *prim* to exist to indicate success. UsdImagingMaterialAdapter was also not processing connections to material inputs properly: if the material input has no value, then we must take the value authored on the connected input, if it exists. Also update dox for affected methods, and add a new section to UsdShade's overview.dox that explains connection semantics, also fixing upstream/downstream confusion in the examples. (Internal change: 1987950)
[imaging] fix another sign compare issue (Internal change: 1987983)
done by passing in a non-null riley callback to Riley::Begin. (Internal change: 1988115)
…sers and move to SdrShaderProperty * Add new _ConformDefaultValue utility to SdrShaderProperty to conform the type of the given default value when a new SdrShaderProperty is instantiated. The logic in this function was factored out from the specific Sdr parser plugins, across which this logic was duplicated. * Remove special logic from sdrOslParser, rmanOslParser, rmanArgsParser. * No work needed on usdShadeShaderDefParser because it reads values directly into VtValues (Internal change: 1988139) (Internal change: 1988844)
to VtArray<T> copies. This change replaces copies with constant references when possible. (Internal change: 1988165)
…the OIT buffers has been moved to HdxOitResolveTask::Prepare and is happening if a OIT render task sets the oitRequestFlag in the task context. The OIT buffers are cleared in Execute of the first OIT render task with draw items. To coordinate this, a flag oitClearedFlag is used in the task context. The communication between the render tasks and the resolve tasks is encapsulated in the helper class HdxOitBufferAccessor. (Internal change: 1988199) (Internal change: 1988240) (Internal change: 1989121)
…le format example (Internal change: 1988230)
… pass and before the resolve. The new task is dedicated to volumes as indicated by the new material tag token HdStMaterialTagTokens->volume. (Internal change: 1988259)
(Internal change: 1988276)
fix for OpenImageIO >= 1.9.1 (Internal change: 1988422)
… USD caches. (Internal change: 1988426)
…using accelerations to calculate instance transforms (Internal change: 1988471)
… UsdPrimCompositionQuery class (Internal change: 1988576) (Internal change: 1988718) (Internal change: 1988847)
…tion, where necessary. Some features of the new baking process include: - parallel writes over multiple data layers - (approximate) memory management for pending writes - unvarying value caching - animation sharing (where possible) - more efficient comutation of mesh extents - improved tracking of dependencies, allowing computations to be bypassed in more cases - addressing long-standing bug with UsdSkelBakeSkinning not respecting the passed in interval The older UsdSkelBakeSkinning() calls remain intact, but use the new imlementation internally For greater control, an additional function form taking a UsdSkelBakeSkinningParms object has been added. Given the complexity of the new implementation, moving the bulk of UsdSkelBakeSkinning to bakeSkinning.cpp Fixing lbs.usda test case to store extentsHint at an appropriate scope for exercsing extents hint updates (Internal change: 1988704) (Internal change: 1988841)
pointInstancer (Internal change: 1988777)
(Internal change: 1988846)
This makes the Render() method a simple wrapper around calls to PrepareBatch() and RenderBatch(). The code paths were already the same, but this removes the duplicated source code. (Internal change: 1989019)
(Internal change: 1989135)
… GPU frustum culling - Absence of bounds (extents) is represented as [FLT_MAX, -FLT_MAX], making the min > max. This is used in the frustum culling code to disable culling for the prim. Add comments to clarify this. - Add check in frustum culling code for the presence of infinity in the bounds. In such a case, we disable culling for the prim, and will thus, always submit a draw call for it. - Add guard in stageView when the computed stage BBox is infinite in any dimension to return an empty BBox. This is used in setting the free camera's frustum, and currently results in NaN's in the xform matrix and nothing being rendered. With the fix, that isn't the case. - Add test wherein a mesh has an infinite point, but no authored extents. (Internal change: 1989168) (Internal change: 1993411)
The call to TfStringify was broken because there was no variable named "time" in function scope. This may have been picking up the "time" C stdlib function instead. This didn't break any of our regular builds but broke test builds on GCC 6.3.1. (Internal change: 1989312)
(Internal change: 1989380)
Because prim ids are always assigned sequentially, it is trivial to map them by indexing into a vector. In addition to being algorithmically superior and friendlier to caches, we save 40 bytes/rprim relative to std::map. (Internal change: 1989415)
…atrix types are trivial. Update half to OpenEXR version 2.3. (Internal change: 1989436)
(Internal change: 1989466)
(Internal change: 1989531)
(Internal change: 1989569)
- Add static Create and CreateExplicit functions for creating a list op and populating the various lists in a single call. This required adding Python container conversions for vector<SdfUnregisteredValue>. - Previously, the string output for a list-op with an empty explicit list would just be "SdfListOp()". This was misleading, since the default constructed SdfListOp is an empty, non-explicit list op; in addition, having an empty explicit list is meaningful. This output is now "SdfListOp(Explicit Items: [])". - Also put the full typename alias of the listop in the string output for clarity, e.g. "SdfTokenListOp". - Replace boost::lexical_cast with TfStringify. (Internal change: 1989593)
…rly out. (Internal change: 1989604)
…te 1 (Internal change: 1989610) (Internal change: 1989797) (Internal change: 1990044)
…ng them to the instance array child (before, they were being set on both the instancer and the instance array). This prevents per-instance primvars from being inherited by the instancer's prototypes. Update ops that were inadvertently taking advantage of this unintended inheritance. Fixes Autodesk#893 (Internal change: 1989753)
…ome cases, which merit further investigation. (Internal change: 1990134)
During batch validation (HdSt_DrawBatch::Validate), we compute the front draw item's bufferArraysHash and compare it with the batch's previous hash. This hash incorporates the version number of all the BARs known to the draw item (the BARs themselves are "owned" by the RprimSharedData object on the Rprim). HdDrawItem::GetBufferArraysHash factors the various primvar frequency BARs, topology BARs and instance BARs to compute the hash. Living in the base class, it didn't factor in the shader param BAR managed by HdStSurfaceShader in HdStDrawItem, and thus meant that the batches and/or the dispatch buffer for the (indirect) draw batch was not updated correctly. This situation can be triggered via garbage collection of a BAR that shared the buffer array for the shader param data. When garbage collection happens, the version number of the HdBufferArray is bumped up. Calling GetVersion on the HdBufferArrayRange returns the version of the underlying buffer array. Changes: - Add virtual _GetBufferArraysHash to HdDrawItem to allow derived classes to compute hashes of any buffers they manage/know about. - Add implementation in HdStDrawItem that returns the version of the shader param BAR. (Internal change: 1990382)
HdRepr holds a vector of (raw) pointers to draw items, and is responsible for deleting them during destruction (which happens on Rprim removal). Failure to do so leaks CPU memory. While HdDrawItem doesn't manage any BAR (and instead delegates to RprimSharedData), HdStDrawItem holds a handle to the surface shader, which manages a BAR for the params array, leading to GPU memory that was never being released when using Storm (HdSt). (Internal change: 1990426)
(Internal change: 1990585)
…enShape to allow python lists to be passed. This makes the python wrappers more consistent with other USD wrappers. Also updating CreateNormalOffsetsAttr() to accept a default value, to be consistent with common schema API. (Internal change: 1990677)
UsdGeomPointInstancer::ComputeInstanceTransformsAtTime (Internal change: 1993231)
…imensional data. (Internal change: 1993264)
…ntBased to compute points at given times using velocities and accelerations. Moved all functions shared between PointBased and PointInstancer to SamplingUtils. The preamble in PointInstancer now computes values for only ProtoIndices, PrototypePaths, and the mask. ComputeInstanceTransformsAtTime in PointInstancer now calls on ComputeInstanceTransformsAtTimes in order to reduce repeated code, as does ComputePointsAtTime in PointBased, which calls on ComputePointsAtTimes. (Internal change: 1993290) (Internal change: 1993412)
Moving fallback volume shader out of the HdSt_VolumeShaderKey into its separate file. Changing HdStVolume::_UpdateDrawItem to use the fallback volume shader if no material is provided for a volume prim. Adding HioGlslfx::GetVolumeSource to read volumeShader technique from GLSLFX file. (Internal change: 1993388)
Updated texture resouce binding in HdStSurfaceShader to add a level of indirection between the shader's texture descriptors and the underlying GL texture resource IDs. This is exposed as a concept only within HdSt and does not change the HdSceneDelegate interface. This is implemented by registering an HdStTextureResourceHandle in the HdStResourceRegistry which can be used to resolve the current texture resource for a given texture handle ID The texture handle ID is the ID of a texture prim or draw target attachment. Using texture resource handles allows some common cases of texture updates (e.g. animated texture cards) to proceed without needing to update material parameters. We still need to propagate texture resource changes to materials in some cases, i.e. when the texture type has changed (e.g. UV vs Ptex, etc) or when using bindless textures. (Internal change: 1993404)
…terial if outputs:surface is not connected. If it follows the outputs:volume, it uses the volumeShader technique instead of the surfaceShader technique from a GLSLFX file. Ideally, the query of the render delegate to the scene delegate for a shader would specify whether it is for a surface or volume shader. In this change, this distinction is not made and the shader is used according to whether it is consumed by a volume prim or not. The proper time to fix this is when we switch from the UsdImagingGLHydraMaterialAdapter to HdNetworkMaterialMap which will have different entries for the surface and volume shader. (Internal change: 1993410)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.