@@ -145,13 +145,6 @@ void HnBeginFrameTask::Sync(pxr::HdSceneDelegate* Delegate,
145145 m_Params.Formats .Depth ,
146146 m_Params.UseReverseDepth );
147147
148- const TEXTURE_FORMAT OITRTVFormats[] = {USD_Renderer::OITTailFmt};
149- m_RenderPassStates[HnRenderResourceTokens->renderPass_OITLayers ].Init (
150- OITRTVFormats,
151- _countof (OITRTVFormats),
152- m_Params.Formats .Depth ,
153- m_Params.UseReverseDepth );
154-
155148 (*TaskCtx)[HnRenderResourceTokens->suspendSuperSampling ] = pxr::VtValue{true };
156149 }
157150 }
@@ -172,9 +165,6 @@ void HnBeginFrameTask::PrepareRenderTargets(pxr::HdRenderIndex* RenderIndex,
172165
173166 HnRenderDelegate* RenderDelegate = static_cast <HnRenderDelegate*>(RenderIndex->GetRenderDelegate ());
174167
175- const bool FrameBufferResized = (m_FrameBufferWidth != FinalTargetDesc.Width ||
176- m_FrameBufferHeight != FinalTargetDesc.Height );
177-
178168 m_FrameBufferWidth = FinalTargetDesc.Width ;
179169 m_FrameBufferHeight = FinalTargetDesc.Height ;
180170
@@ -255,22 +245,6 @@ void HnBeginFrameTask::PrepareRenderTargets(pxr::HdRenderIndex* RenderIndex,
255245 m_FrameRenderTargets.ClosestSelectedLocationRTV [1 ] = UpdateBrim (m_ClosestSelLocnTargetId[1 ], m_Params.Formats .ClosestSelectedLocation , " Closest selected location 1" );
256246 m_FrameRenderTargets.JitteredFinalColorRTV = UpdateBrim (m_JitteredFinalColorTargetId, m_Params.Formats .JitteredColor , " Jittered final color" );
257247
258- const USD_Renderer& Renderer = *RenderDelegate->GetUSDRenderer ();
259- if (Renderer.GetSettings ().OITLayerCount > 0 )
260- {
261- if (FrameBufferResized)
262- {
263- m_FrameRenderTargets.OIT = {};
264- }
265-
266- if (!m_FrameRenderTargets.OIT )
267- {
268- m_FrameRenderTargets.OIT = Renderer.CreateOITResources (FinalTargetDesc.Width , FinalTargetDesc.Height );
269- // Mark OIT resources dirty to make render delegate recreate main pass frame attribs SRB.
270- static_cast <HnRenderParam*>(RenderDelegate->GetRenderParam ())->MakeAttribDirty (HnRenderParam::GlobalAttrib::OITResources);
271- }
272- }
273-
274248 (*TaskCtx)[HnRenderResourceTokens->frameRenderTargets ] = pxr::VtValue{&m_FrameRenderTargets};
275249
276250 // Set render pass render targets
@@ -306,21 +280,6 @@ void HnBeginFrameTask::PrepareRenderTargets(pxr::HdRenderIndex* RenderIndex,
306280 RPState->SetCamera (m_pCamera);
307281 }
308282
309- if (Renderer.GetSettings ().OITLayerCount > 0 )
310- {
311- HnRenderPassState& RP_OITLayers = m_RenderPassStates[HnRenderResourceTokens->renderPass_OITLayers ];
312-
313- ITextureView* OITRTVs[] = {m_FrameRenderTargets.OIT .Tail ->GetDefaultView (TEXTURE_VIEW_RENDER_TARGET)};
314- const float4 TailClearValue{
315- 0 , // Layer counter
316- 0 , // Unused
317- 0 , // Unused
318- 1 , // Total tail transmittance
319- };
320- RP_OITLayers.Begin (_countof (OITRTVs), OITRTVs, m_FrameRenderTargets.DepthDSV , &TailClearValue, 0 , 0x01u );
321- RP_OITLayers.SetCamera (m_pCamera);
322- }
323-
324283 // Register render pass states in the task context
325284 for (auto & it : m_RenderPassStates)
326285 {
@@ -388,6 +347,7 @@ void HnBeginFrameTask::Prepare(pxr::HdTaskContext* TaskCtx,
388347 {
389348 LOG_ERROR_MESSAGE (" Camera is not set at Id " , m_Params.CameraId );
390349 }
350+ (*TaskCtx)[HnRenderResourceTokens->camera ] = pxr::VtValue{static_cast <const HnCamera*>(m_pCamera)};
391351 }
392352 else
393353 {
@@ -720,39 +680,6 @@ void HnBeginFrameTask::UpdateFrameConstants(IDeviceContext* pCtx,
720680 pCtx->TransitionResourceStates (static_cast <Uint32>(Barriers.size ()), Barriers.data ());
721681}
722682
723- void HnBeginFrameTask::BindOITResources (HnRenderDelegate* RenderDelegate)
724- {
725- HnRenderParam* RenderParam = static_cast <HnRenderParam*>(RenderDelegate->GetRenderParam ());
726- if (m_BoundOITResourcesVersion == RenderParam->GetAttribVersion (HnRenderParam::GlobalAttrib::OITResources))
727- return ;
728-
729- if (!m_FrameRenderTargets.OIT )
730- {
731- UNEXPECTED (" OIT resources are not initialized. This likely indicates that Prepare() has not been called." );
732- return ;
733- }
734-
735- USD_Renderer& Renderer = *RenderDelegate->GetUSDRenderer ();
736- if (IShaderResourceBinding* pFrameAttribsSRB = RenderDelegate->GetFrameAttribsSRB (HnRenderDelegate::FrameAttribsSRBType::Transparent))
737- {
738- Renderer.SetOITResources (pFrameAttribsSRB, m_FrameRenderTargets.OIT );
739- m_BoundOITResourcesVersion = RenderParam->GetAttribVersion (HnRenderParam::GlobalAttrib::OITResources);
740- }
741- else
742- {
743- UNEXPECTED (" Main pass frame attribs SRB is null" );
744- }
745-
746- IDeviceContext* pCtx = RenderDelegate->GetDeviceContext ();
747-
748- StateTransitionDesc Barriers[] =
749- {
750- {m_FrameRenderTargets.OIT .Layers , RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_SHADER_RESOURCE, STATE_TRANSITION_FLAG_UPDATE_STATE},
751- {m_FrameRenderTargets.OIT .Tail , RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_SHADER_RESOURCE, STATE_TRANSITION_FLAG_UPDATE_STATE},
752- };
753- pCtx->TransitionResourceStates (_countof (Barriers), Barriers);
754- }
755-
756683void HnBeginFrameTask::Execute (pxr::HdTaskContext* TaskCtx)
757684{
758685 if (m_RenderIndex == nullptr )
@@ -768,11 +695,6 @@ void HnBeginFrameTask::Execute(pxr::HdTaskContext* TaskCtx)
768695
769696 ScopedDebugGroup DebugGroup{pCtx, " Begin Frame" };
770697
771- if (Renderer.GetSettings ().OITLayerCount > 0 )
772- {
773- BindOITResources (RenderDelegate);
774- }
775-
776698 // NB: we can't move the buffer update to Prepare() because we need TAA parameters
777699 // that are set by HnPostProcessTask::Prepare().
778700 if (IBuffer* pFrameAttribsCB = RenderDelegate->GetFrameAttribsCB ())
0 commit comments