@@ -1286,8 +1286,8 @@ void HnRenderPass::UpdateDrawListItemGPUResources(DrawListItem& ListItem, Render
12861286 auto & PsoCache = State.GePsoCache ();
12871287 VERIFY_EXPR (PsoCache);
12881288
1289- auto & PSOFlags = ListItem.PSOFlags ;
1290- PSOFlags = static_cast <PBR_Renderer::PSO_FLAGS>(m_Params.UsdPsoFlags );
1289+ PBR_Renderer::PSO_FLAGS & PSOFlags{ ListItem.PSOFlags } ;
1290+ PSOFlags = static_cast <PBR_Renderer::PSO_FLAGS>(m_Params.UsdPsoFlags );
12911291
12921292 const HnDrawItem::GeometryData& Geo = DrawItem.GetGeometryData ();
12931293 const CULL_MODE CullMode = ListItem.Mesh .GetCullMode ();
@@ -1357,6 +1357,8 @@ void HnRenderPass::UpdateDrawListItemGPUResources(DrawListItem& ListItem, Render
13571357 ShaderTextureIndexingId,
13581358 };
13591359 ListItem.pPSO = PsoCache.Get (PSOKey, GetPSOFlags);
1360+ // PSOKey may have cleared some flags - get updated flags
1361+ PSOFlags = PSOKey.GetFlags ();
13601362 }
13611363 else if (m_RenderMode == HN_RENDER_MODE_MESH_EDGES ||
13621364 m_RenderMode == HN_RENDER_MODE_POINTS)
@@ -1372,6 +1374,8 @@ void HnRenderPass::UpdateDrawListItemGPUResources(DrawListItem& ListItem, Render
13721374 ShaderTextureIndexingId,
13731375 };
13741376 ListItem.pPSO = PsoCache.Get (PSOKey, GetPSOFlags);
1377+ // PSOKey may have cleared some flags - get updated flags
1378+ PSOFlags = PSOKey.GetFlags ();
13751379 }
13761380 else
13771381 {
@@ -1385,7 +1389,7 @@ void HnRenderPass::UpdateDrawListItemGPUResources(DrawListItem& ListItem, Render
13851389 ListItem.PrimitiveAttribsBufferRange , " ) computed from material PSO flags. The latter is used by HnMaterial to set the buffer range." );
13861390
13871391 // Note: some PSOs (e.g. shadow) may not use the full range of the material attribs buffer.
1388- VERIFY (ListItem.pMaterial ->GetPBRMaterialAttribsSize () >= State.USDRenderer .GetPBRMaterialAttribsSize (ListItem. PSOFlags ),
1392+ VERIFY (ListItem.pMaterial ->GetPBRMaterialAttribsSize () >= State.USDRenderer .GetPBRMaterialAttribsSize (PSOFlags),
13891393 " Material attribs size is smaller than required by the PSO flags" );
13901394 VERIFY_EXPR (ListItem.pPSO != nullptr );
13911395 m_PendingPSOs.emplace (ListItem.pPSO , false );
0 commit comments