Rendering: formalize render-pass graph contract
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#include "Rendering/Execution/Internal/CameraFrameRenderGraphSurfaceUtils.h"
|
||||
#include "Rendering/Graph/RenderGraph.h"
|
||||
#include <XCEngine/Rendering/Graph/RenderGraphRecordingContext.h>
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
@@ -48,10 +48,10 @@ std::unique_ptr<ScopedInitializedPassSequence>* ResolveStageSequenceState(
|
||||
bool RecordSequencePass(
|
||||
RenderPass& pass,
|
||||
const RenderPassRenderGraphContext& context,
|
||||
const Internal::RenderPassGraphIO& io) {
|
||||
const RenderPassGraphIO& io) {
|
||||
return pass.SupportsRenderGraph()
|
||||
? pass.RecordRenderGraph(context)
|
||||
: Internal::RecordRasterRenderPass(pass, context, io);
|
||||
: RecordRasterRenderPass(pass, context, io);
|
||||
}
|
||||
|
||||
bool RecordRegularPassSequenceStage(
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <XCEngine/Rendering/RenderPass.h>
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
namespace Internal {
|
||||
|
||||
struct RenderPassGraphIO {
|
||||
bool readSourceColor = false;
|
||||
bool writeColor = false;
|
||||
bool writeDepth = false;
|
||||
};
|
||||
|
||||
using RenderPassGraphExecutePassCallback =
|
||||
std::function<bool(const RenderPassContext&)>;
|
||||
|
||||
bool RecordCallbackRasterRenderPass(
|
||||
const RenderPassRenderGraphContext& context,
|
||||
const RenderPassGraphIO& io,
|
||||
RenderPassGraphExecutePassCallback executePassCallback,
|
||||
std::vector<RenderGraphTextureHandle> additionalReadTextures = {});
|
||||
|
||||
bool RecordRasterRenderPass(
|
||||
RenderPass& pass,
|
||||
const RenderPassRenderGraphContext& context,
|
||||
const RenderPassGraphIO& io);
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Rendering
|
||||
} // namespace XCEngine
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "Core/Asset/ResourceManager.h"
|
||||
#include "Debug/Logger.h"
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
#include "Rendering/Internal/RenderSurfacePipelineUtils.h"
|
||||
#include "Rendering/Internal/ShaderVariantUtils.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
@@ -131,7 +131,7 @@ bool BuiltinColorScalePostProcessPass::SupportsRenderGraph() const {
|
||||
|
||||
bool BuiltinColorScalePostProcessPass::RecordRenderGraph(
|
||||
const RenderPassRenderGraphContext& context) {
|
||||
return Internal::RecordRasterRenderPass(
|
||||
return RecordRasterRenderPass(
|
||||
*this,
|
||||
context,
|
||||
{
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
#include "Rendering/Passes/BuiltinDepthStylePassBase.h"
|
||||
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
|
||||
#include "RHI/RHICommandList.h"
|
||||
#include "Rendering/Extraction/RenderSceneExtractor.h"
|
||||
#include "Rendering/FrameData/RendererListUtils.h"
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include "Rendering/Internal/RenderSurfacePipelineUtils.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
#include "Resources/Mesh/Mesh.h"
|
||||
@@ -70,7 +71,7 @@ bool BuiltinDepthStylePassBase::SupportsRenderGraph() const {
|
||||
|
||||
bool BuiltinDepthStylePassBase::RecordRenderGraph(
|
||||
const RenderPassRenderGraphContext& context) {
|
||||
return Internal::RecordRasterRenderPass(
|
||||
return RecordRasterRenderPass(
|
||||
*this,
|
||||
context,
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "Core/Asset/ResourceManager.h"
|
||||
#include "Debug/Logger.h"
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
#include "Rendering/Internal/RenderSurfacePipelineUtils.h"
|
||||
#include "Rendering/Internal/ShaderVariantUtils.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
@@ -139,7 +139,7 @@ bool BuiltinFinalColorPass::SupportsRenderGraph() const {
|
||||
|
||||
bool BuiltinFinalColorPass::RecordRenderGraph(
|
||||
const RenderPassRenderGraphContext& context) {
|
||||
return Internal::RecordRasterRenderPass(
|
||||
return RecordRasterRenderPass(
|
||||
*this,
|
||||
context,
|
||||
{
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
#include "Core/Asset/ResourceManager.h"
|
||||
#include "RHI/RHICommandList.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
#include "Rendering/FrameData/RendererListUtils.h"
|
||||
#include "Rendering/Internal/RenderSurfacePipelineUtils.h"
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include "Rendering/Extraction/RenderSceneExtractor.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
#include "Resources/Mesh/Mesh.h"
|
||||
@@ -64,7 +64,7 @@ bool BuiltinObjectIdPass::SupportsRenderGraph() const {
|
||||
|
||||
bool BuiltinObjectIdPass::RecordRenderGraph(
|
||||
const RenderPassRenderGraphContext& context) {
|
||||
return Internal::RecordRasterRenderPass(
|
||||
return RecordRasterRenderPass(
|
||||
*this,
|
||||
context,
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "Debug/Logger.h"
|
||||
#include "Rendering/Graph/RenderGraph.h"
|
||||
#include <XCEngine/Rendering/Graph/RenderGraphRecordingContext.h>
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
|
||||
#include "Rendering/Pipelines/Internal/BuiltinForwardSceneSetup.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
@@ -189,7 +189,7 @@ bool BuiltinForwardMainSceneGraphBuilder::Record(
|
||||
phaseCommonContext,
|
||||
beginPhasePass,
|
||||
endRecordedPass);
|
||||
if (!::XCEngine::Rendering::Internal::RecordCallbackRasterRenderPass(
|
||||
if (!::XCEngine::Rendering::RecordCallbackRasterRenderPass(
|
||||
phaseContext,
|
||||
{
|
||||
false,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
|
||||
#include "Rendering/FrameData/RenderSceneData.h"
|
||||
#include "Rendering/Graph/RenderGraph.h"
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
namespace Internal {
|
||||
namespace {
|
||||
|
||||
RenderSurface BuildGraphManagedImportedSurface(
|
||||
@@ -332,6 +331,5 @@ bool RecordRasterRenderPass(
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
} // namespace Rendering
|
||||
} // namespace XCEngine
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "Rendering/SceneRenderFeaturePass.h"
|
||||
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@@ -49,7 +49,7 @@ bool SceneRenderFeaturePass::RecordRenderGraph(
|
||||
context.endPassCallback,
|
||||
context.blackboard
|
||||
};
|
||||
return Internal::RecordRasterRenderPass(
|
||||
return RecordRasterRenderPass(
|
||||
*this,
|
||||
passContext,
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user