refactor(srp): move shadow caster stage selection into managed urp

- add standalone pass asset factories for camera frame stages\n- let managed pipeline assets declare stage pass asset keys\n- make universal renderer data explicitly own the builtin shadow caster stage
This commit is contained in:
2026-04-21 02:38:56 +08:00
parent bfc4b90ce6
commit e2b2df4c8f
16 changed files with 544 additions and 14 deletions

View File

@@ -31,7 +31,8 @@ bool TryRecordCameraFrameStageStandaloneRenderGraphPass(
RenderPass* const standaloneStagePass =
ResolveCameraFrameStandaloneStagePass(
stageState.stage,
builder.executionState);
builder.executionState,
context.plan.request.rendererIndex);
if (standaloneStagePass == nullptr ||
!standaloneStagePass->SupportsRenderGraph()) {
handled = false;

View File

@@ -217,9 +217,12 @@ RenderSceneData BuildCameraFrameStandaloneStageSceneData(
RenderPass* ResolveCameraFrameStandaloneStagePass(
CameraFrameStage stage,
CameraFrameExecutionState& executionState) {
CameraFrameExecutionState& executionState,
int32_t rendererIndex) {
return executionState.pipeline != nullptr
? executionState.pipeline->GetCameraFrameStandalonePass(stage)
? executionState.pipeline->GetCameraFrameStandalonePass(
stage,
rendererIndex)
: nullptr;
}
@@ -256,7 +259,8 @@ bool ExecuteCameraFrameRecordedStagePass(
RenderPass* const standaloneStagePass =
ResolveCameraFrameStandaloneStagePass(
stage,
executionState);
executionState,
context.plan.request.rendererIndex);
return ExecuteCameraFrameStandaloneStagePass(
standaloneStagePass,
context.plan.request.context,

View File

@@ -47,7 +47,8 @@ RenderSceneData BuildCameraFrameStandaloneStageSceneData(
RenderPass* ResolveCameraFrameStandaloneStagePass(
CameraFrameStage stage,
CameraFrameExecutionState& executionState);
CameraFrameExecutionState& executionState,
int32_t rendererIndex);
bool InitializeCameraFrameStandaloneStagePass(
RenderPass* pass,