refactor(srp): remove fullscreen stage support heuristic
This commit is contained in:
@@ -47,8 +47,7 @@ std::vector<CameraFramePlan> RenderPipelineHost::BuildFramePlans(
|
||||
return m_framePlanBuilder != nullptr
|
||||
? m_framePlanBuilder->BuildPlans(
|
||||
requests,
|
||||
GetPipelineAsset(),
|
||||
GetPipeline())
|
||||
GetPipelineAsset())
|
||||
: std::vector<CameraFramePlan>();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#include "Rendering/Planning/CameraFramePlanBuilder.h"
|
||||
|
||||
#include "Rendering/RenderPipeline.h"
|
||||
#include "Rendering/RenderPipelineAsset.h"
|
||||
|
||||
namespace XCEngine {
|
||||
@@ -15,41 +14,18 @@ bool UsesExplicitFullscreenSource(
|
||||
HasValidColorTarget(request.sourceSurface);
|
||||
}
|
||||
|
||||
RenderPipelineStageSupportContext BuildStageSupportContext(
|
||||
const CameraFramePlan& plan,
|
||||
CameraFrameStage stage) {
|
||||
return RenderPipelineStageSupportContext{
|
||||
stage,
|
||||
plan.request.rendererIndex };
|
||||
}
|
||||
|
||||
void ConfigureFullscreenStagesFromPipeline(
|
||||
CameraFramePlan& plan,
|
||||
const RenderPipeline* pipeline) {
|
||||
void ConfigureLegacyFullscreenStageRequests(
|
||||
CameraFramePlan& plan) {
|
||||
const bool postProcessExplicitlyConfigured =
|
||||
plan.HasExplicitFullscreenStageConfiguration(
|
||||
CameraFrameStage::PostProcess);
|
||||
const bool finalOutputExplicitlyConfigured =
|
||||
plan.HasExplicitFullscreenStageConfiguration(
|
||||
CameraFrameStage::FinalOutput);
|
||||
const bool supportsPostProcess =
|
||||
pipeline != nullptr &&
|
||||
pipeline->SupportsStageRenderGraph(
|
||||
BuildStageSupportContext(
|
||||
plan,
|
||||
CameraFrameStage::PostProcess));
|
||||
const bool supportsFinalOutput =
|
||||
pipeline != nullptr &&
|
||||
pipeline->SupportsStageRenderGraph(
|
||||
BuildStageSupportContext(
|
||||
plan,
|
||||
CameraFrameStage::FinalOutput));
|
||||
const bool hasPostProcess =
|
||||
plan.postProcess.IsRequested() ||
|
||||
supportsPostProcess;
|
||||
plan.postProcess.IsRequested();
|
||||
const bool hasFinalOutput =
|
||||
plan.finalOutput.IsRequested() ||
|
||||
supportsFinalOutput;
|
||||
plan.finalOutput.IsRequested();
|
||||
|
||||
if (!postProcessExplicitlyConfigured &&
|
||||
hasPostProcess &&
|
||||
@@ -87,10 +63,9 @@ void ConfigureFullscreenStagesFromPipeline(
|
||||
|
||||
std::vector<CameraFramePlan> CameraFramePlanBuilder::BuildPlans(
|
||||
const std::vector<CameraRenderRequest>& requests,
|
||||
const RenderPipelineAsset* pipelineAsset,
|
||||
const RenderPipeline* pipeline) {
|
||||
const RenderPipelineAsset* pipelineAsset) {
|
||||
std::vector<CameraFramePlan> plans = CreatePlansFromRequests(requests);
|
||||
ConfigurePlans(plans, pipelineAsset, pipeline);
|
||||
ConfigurePlans(plans, pipelineAsset);
|
||||
return plans;
|
||||
}
|
||||
|
||||
@@ -107,8 +82,7 @@ std::vector<CameraFramePlan> CameraFramePlanBuilder::CreatePlansFromRequests(
|
||||
|
||||
void CameraFramePlanBuilder::ConfigurePlans(
|
||||
std::vector<CameraFramePlan>& plans,
|
||||
const RenderPipelineAsset* pipelineAsset,
|
||||
const RenderPipeline* pipeline) const {
|
||||
const RenderPipelineAsset* pipelineAsset) const {
|
||||
for (CameraFramePlan& plan : plans) {
|
||||
if (pipelineAsset != nullptr) {
|
||||
pipelineAsset->ConfigureCameraFramePlan(plan);
|
||||
@@ -116,9 +90,7 @@ void CameraFramePlanBuilder::ConfigurePlans(
|
||||
ApplyDefaultRenderPipelineAssetCameraFramePlanPolicy(plan);
|
||||
}
|
||||
|
||||
ConfigureFullscreenStagesFromPipeline(
|
||||
plan,
|
||||
pipeline);
|
||||
ConfigureLegacyFullscreenStageRequests(plan);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace XCEngine {
|
||||
namespace Rendering {
|
||||
|
||||
class RenderPipelineAsset;
|
||||
class RenderPipeline;
|
||||
|
||||
class CameraFramePlanBuilder {
|
||||
public:
|
||||
@@ -19,16 +18,14 @@ public:
|
||||
|
||||
std::vector<CameraFramePlan> BuildPlans(
|
||||
const std::vector<CameraRenderRequest>& requests,
|
||||
const RenderPipelineAsset* pipelineAsset,
|
||||
const RenderPipeline* pipeline);
|
||||
const RenderPipelineAsset* pipelineAsset);
|
||||
|
||||
private:
|
||||
std::vector<CameraFramePlan> CreatePlansFromRequests(
|
||||
const std::vector<CameraRenderRequest>& requests) const;
|
||||
void ConfigurePlans(
|
||||
std::vector<CameraFramePlan>& plans,
|
||||
const RenderPipelineAsset* pipelineAsset,
|
||||
const RenderPipeline* pipeline) const;
|
||||
const RenderPipelineAsset* pipelineAsset) const;
|
||||
};
|
||||
|
||||
} // namespace Rendering
|
||||
|
||||
Reference in New Issue
Block a user