Rendering: formalize render-pass graph contract

This commit is contained in:
2026-04-15 07:39:28 +08:00
parent c58c28529f
commit 0c9a67aaca
11 changed files with 23 additions and 27 deletions

View File

@@ -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(

View File

@@ -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

View File

@@ -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,
{

View File

@@ -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,
{

View File

@@ -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,
{

View File

@@ -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,
{

View File

@@ -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,

View File

@@ -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

View File

@@ -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,
{