refactor(rendering): generalize pipeline stage render graph boundary
This commit is contained in:
@@ -181,7 +181,8 @@ bool CameraRenderer::Render(
|
||||
return false;
|
||||
}
|
||||
if (plan.UsesGraphManagedOutputColor(CameraFrameStage::MainScene) &&
|
||||
(m_pipeline == nullptr || !m_pipeline->SupportsMainSceneRenderGraph())) {
|
||||
(m_pipeline == nullptr ||
|
||||
!m_pipeline->SupportsStageRenderGraph(CameraFrameStage::MainScene))) {
|
||||
Debug::Logger::Get().Error(
|
||||
Debug::LogCategory::Rendering,
|
||||
"CameraRenderer::Render failed: graph-managed main scene color requires pipeline main-scene render-graph support");
|
||||
|
||||
@@ -48,26 +48,27 @@ bool TryRecordCameraFrameStageStandaloneRenderGraphPass(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TryRecordCameraFrameMainSceneGraphPass(
|
||||
bool TryRecordCameraFramePipelineStageGraphPass(
|
||||
const CameraFrameStageGraphBuildState& stageState,
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
bool& handled) {
|
||||
CameraFrameRenderGraphBuilderContext& builder = context.builder;
|
||||
if (!SupportsCameraFramePipelineGraphRecording(stageState.stage) ||
|
||||
builder.executionState.pipeline == nullptr ||
|
||||
!builder.executionState.pipeline->SupportsMainSceneRenderGraph()) {
|
||||
!builder.executionState.pipeline->SupportsStageRenderGraph(
|
||||
stageState.stage)) {
|
||||
handled = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
handled = true;
|
||||
if (!RecordCameraFrameMainSceneGraphPass(
|
||||
if (!RecordCameraFramePipelineStageGraphPass(
|
||||
context,
|
||||
stageState,
|
||||
*builder.executionState.pipeline)) {
|
||||
Debug::Logger::Get().Error(
|
||||
Debug::LogCategory::Rendering,
|
||||
"CameraRenderer::Render failed: RenderPipeline::RecordMainSceneRenderGraph returned false");
|
||||
"CameraRenderer::Render failed: RenderPipeline::RecordStageRenderGraph returned false");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ bool TryRecordCameraFrameStageStandaloneRenderGraphPass(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
bool& handled);
|
||||
|
||||
bool TryRecordCameraFrameMainSceneGraphPass(
|
||||
bool TryRecordCameraFramePipelineStageGraphPass(
|
||||
const CameraFrameStageGraphBuildState& stageState,
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
bool& handled);
|
||||
|
||||
@@ -554,22 +554,23 @@ RenderPassContext BuildCameraFrameStageFallbackPassContext(
|
||||
};
|
||||
}
|
||||
|
||||
RenderPipelineMainSceneRenderGraphContext BuildCameraFrameMainSceneStageRenderGraphContext(
|
||||
RenderPipelineStageRenderGraphContext BuildCameraFramePipelineStageRenderGraphContext(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
const CameraFrameStageGraphBuildState& stageState) {
|
||||
return BuildRenderPipelineMainSceneRenderGraphContext(
|
||||
return BuildRenderPipelineStageRenderGraphContext(
|
||||
BuildCameraFrameStageGraphRecordingContext(
|
||||
context,
|
||||
stageState,
|
||||
context.sceneData));
|
||||
context.sceneData),
|
||||
stageState.stage);
|
||||
}
|
||||
|
||||
bool RecordCameraFrameMainSceneGraphPass(
|
||||
bool RecordCameraFramePipelineStageGraphPass(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
const CameraFrameStageGraphBuildState& stageState,
|
||||
RenderPipelineRenderer& pipeline) {
|
||||
return pipeline.RecordMainSceneRenderGraph(
|
||||
BuildCameraFrameMainSceneStageRenderGraphContext(
|
||||
return pipeline.RecordStageRenderGraph(
|
||||
BuildCameraFramePipelineStageRenderGraphContext(
|
||||
context,
|
||||
stageState));
|
||||
}
|
||||
|
||||
@@ -146,11 +146,11 @@ RenderPassContext BuildCameraFrameStageFallbackPassContext(
|
||||
const RenderContext& renderContext,
|
||||
const RenderSceneData& sceneData);
|
||||
|
||||
RenderPipelineMainSceneRenderGraphContext BuildCameraFrameMainSceneStageRenderGraphContext(
|
||||
RenderPipelineStageRenderGraphContext BuildCameraFramePipelineStageRenderGraphContext(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
const CameraFrameStageGraphBuildState& stageState);
|
||||
|
||||
bool RecordCameraFrameMainSceneGraphPass(
|
||||
bool RecordCameraFramePipelineStageGraphPass(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
const CameraFrameStageGraphBuildState& stageState,
|
||||
RenderPipelineRenderer& pipeline);
|
||||
|
||||
@@ -20,7 +20,7 @@ using CameraFrameStageRecordHandler = bool (*)(
|
||||
constexpr std::array<CameraFrameStageRecordHandler, 3u> kCameraFrameStageRecordHandlers = {
|
||||
&TryRecordCameraFrameStageSequence,
|
||||
&TryRecordCameraFrameStageStandaloneRenderGraphPass,
|
||||
&TryRecordCameraFrameMainSceneGraphPass
|
||||
&TryRecordCameraFramePipelineStageGraphPass
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user