File tree Expand file tree Collapse file tree 2 files changed +10
-11
lines changed
Expand file tree Collapse file tree 2 files changed +10
-11
lines changed Original file line number Diff line number Diff line change @@ -91,11 +91,15 @@ class HnMaterial final : public pxr::HdMaterial
9191 m_PrimitiveAttribsVar->SetBufferOffset (PrimitiveAttribsOffset);
9292 return m_SRB;
9393 }
94- void ApplyMaterialAttribsBufferOffset () const
94+ void ApplyMaterialAttribsBufferOffset (Uint32& CurrentOffset ) const
9595 {
9696 VERIFY_EXPR (m_MaterialAttribsVar != nullptr );
9797 VERIFY_EXPR (m_PBRMaterialAttribsBufferOffset != ~0u );
98- m_MaterialAttribsVar->SetBufferOffset (m_PBRMaterialAttribsBufferOffset);
98+ if (CurrentOffset != m_PBRMaterialAttribsBufferOffset)
99+ {
100+ m_MaterialAttribsVar->SetBufferOffset (m_PBRMaterialAttribsBufferOffset);
101+ CurrentOffset = m_PBRMaterialAttribsBufferOffset;
102+ }
99103 }
100104 void SetJointsBufferOffset (Uint32 Offset) const
101105 {
@@ -137,11 +141,6 @@ class HnMaterial final : public pxr::HdMaterial
137141
138142 Uint32 GetPBRPrimitiveAttribsBufferRange () const { return m_PBRPrimitiveAttribsBufferRange; }
139143 Uint32 GetPBRMaterialAttribsSize () const { return m_PBRMaterialAttribsSize; }
140- Uint32 GetPBRMaterialAttribsBufferOffset () const
141- {
142- VERIFY_EXPR (m_PBRMaterialAttribsBufferOffset != ~0u );
143- return m_PBRMaterialAttribsBufferOffset;
144- }
145144
146145private:
147146 HnMaterial (pxr::SdfPath const & id);
Original file line number Diff line number Diff line change @@ -153,11 +153,11 @@ struct HnRenderPass::RenderState
153153 return ;
154154 }
155155
156- if (pNewSRB != this ->pMaterialSRB || this -> MaterialBufferOffset != Material. GetPBRMaterialAttribsBufferOffset () )
156+ if (pNewSRB != this ->pMaterialSRB )
157157 {
158- Material.ApplyMaterialAttribsBufferOffset ();
159- this ->MaterialBufferOffset = Material.GetPBRMaterialAttribsBufferOffset ();
158+ this ->MaterialBufferOffset = ~0u ;
160159 }
160+ Material.ApplyMaterialAttribsBufferOffset (this ->MaterialBufferOffset );
161161
162162 if (pNewSRB == this ->pMaterialSRB )
163163 return ;
@@ -226,7 +226,7 @@ struct HnRenderPass::RenderState
226226
227227 IBuffer* pIndexBuffer = nullptr ;
228228
229- Uint32 MaterialBufferOffset = 0 ;
229+ Uint32 MaterialBufferOffset = ~ 0u ;
230230
231231 Uint32 NumVertexBuffers = 0 ;
232232 std::array<IBuffer*, VERTEX_BUFFER_SLOT_COUNT> ppVertexBuffers = {};
You can’t perform that action at this time.
0 commit comments