refactor(rendering): route builtin forward through SRP host
This commit is contained in:
@@ -4900,9 +4900,9 @@ TEST(
|
||||
|
||||
TEST(
|
||||
RenderPipelineFactory_Test,
|
||||
ExplicitPipelineBackendAssetCreatesSceneDrawBackend) {
|
||||
ExplicitSceneDrawBackendAssetCreatesSceneDrawBackend) {
|
||||
std::shared_ptr<const RenderPipelineAsset> backendAsset =
|
||||
std::make_shared<Pipelines::BuiltinForwardPipelineAsset>();
|
||||
Internal::CreateDefaultSceneDrawBackendAsset();
|
||||
ASSERT_NE(backendAsset, nullptr);
|
||||
|
||||
std::shared_ptr<const RenderPipelineAsset> resolvedAsset = nullptr;
|
||||
@@ -4914,8 +4914,12 @@ TEST(
|
||||
ASSERT_NE(sceneDrawBackend, nullptr);
|
||||
EXPECT_EQ(resolvedAsset, backendAsset);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(sceneDrawBackend.get()),
|
||||
dynamic_cast<RenderPipeline*>(sceneDrawBackend.get()),
|
||||
nullptr);
|
||||
SceneRenderFeatureHost* const featureHost =
|
||||
sceneDrawBackend->GetSceneFeatureHost();
|
||||
ASSERT_NE(featureHost, nullptr);
|
||||
EXPECT_EQ(featureHost->GetFeaturePassCount(), 2u);
|
||||
}
|
||||
|
||||
TEST(
|
||||
@@ -5187,20 +5191,17 @@ TEST(
|
||||
ASSERT_NE(featureHost, nullptr);
|
||||
EXPECT_EQ(featureHost->GetFeaturePassCount(), 2u);
|
||||
|
||||
auto* pipeline =
|
||||
dynamic_cast<RenderPipeline*>(sceneDrawBackend.get());
|
||||
ASSERT_NE(pipeline, nullptr);
|
||||
EXPECT_EQ(
|
||||
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::DepthOnly),
|
||||
dynamic_cast<RenderPipeline*>(sceneDrawBackend.get()),
|
||||
nullptr);
|
||||
EXPECT_EQ(
|
||||
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::ShadowCaster),
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(sceneDrawBackend.get()),
|
||||
nullptr);
|
||||
}
|
||||
|
||||
TEST(
|
||||
DefaultPipelineBackendAsset_Test,
|
||||
CreatesFallbackPipelineWithSameDefaultNativeFeatureHost) {
|
||||
CreatesBuiltinForwardHostWithDefaultNativeSceneBackend) {
|
||||
const std::shared_ptr<const RenderPipelineAsset> backendAsset =
|
||||
Internal::CreateDefaultPipelineBackendAsset();
|
||||
ASSERT_NE(backendAsset, nullptr);
|
||||
@@ -5208,18 +5209,25 @@ TEST(
|
||||
std::unique_ptr<RenderPipeline> pipeline = backendAsset->CreatePipeline();
|
||||
ASSERT_NE(pipeline, nullptr);
|
||||
|
||||
auto* host =
|
||||
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(pipeline.get());
|
||||
ASSERT_NE(host, nullptr);
|
||||
EXPECT_NE(host->GetStageRecorder(), nullptr);
|
||||
|
||||
auto* sceneDrawBackend =
|
||||
dynamic_cast<SceneDrawBackend*>(pipeline.get());
|
||||
dynamic_cast<SceneDrawBackend*>(host->GetPipelineBackend());
|
||||
ASSERT_NE(sceneDrawBackend, nullptr);
|
||||
SceneRenderFeatureHost* const featureHost =
|
||||
sceneDrawBackend->GetSceneFeatureHost();
|
||||
ASSERT_NE(featureHost, nullptr);
|
||||
EXPECT_EQ(featureHost->GetFeaturePassCount(), 2u);
|
||||
|
||||
EXPECT_NE(
|
||||
EXPECT_TRUE(host->SupportsStageRenderGraph(CameraFrameStage::MainScene));
|
||||
EXPECT_TRUE(host->SupportsStageRenderGraph(CameraFrameStage::DepthOnly));
|
||||
EXPECT_EQ(
|
||||
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::DepthOnly),
|
||||
nullptr);
|
||||
EXPECT_NE(
|
||||
EXPECT_EQ(
|
||||
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::ShadowCaster),
|
||||
nullptr);
|
||||
}
|
||||
@@ -5640,7 +5648,7 @@ TEST(CameraRenderer_Test, DefaultPipelineAssetUsesManagedSelectionWhenPresent) {
|
||||
|
||||
TEST(
|
||||
CameraRenderer_Test,
|
||||
DefaultPipelineAssetUsesBuiltinPipelineWhenManagedSelectionIsAbsent) {
|
||||
DefaultPipelineAssetUsesBuiltinForwardHostWhenManagedSelectionIsAbsent) {
|
||||
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
|
||||
|
||||
CameraRenderer renderer;
|
||||
@@ -5652,13 +5660,12 @@ TEST(
|
||||
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
|
||||
renderer.GetPipelineAsset()),
|
||||
nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
|
||||
renderer.GetPipeline()),
|
||||
nullptr);
|
||||
EXPECT_EQ(
|
||||
auto* host =
|
||||
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
|
||||
renderer.GetPipeline()),
|
||||
renderer.GetPipeline());
|
||||
ASSERT_NE(host, nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<SceneDrawBackend*>(host->GetPipelineBackend()),
|
||||
nullptr);
|
||||
}
|
||||
|
||||
@@ -5675,13 +5682,12 @@ TEST(CameraRenderer_Test, DefaultPipelineAssetRefreshesWhenManagedSelectionChang
|
||||
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
|
||||
renderer.GetPipelineAsset()),
|
||||
nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
|
||||
renderer.GetPipeline()),
|
||||
nullptr);
|
||||
EXPECT_EQ(
|
||||
auto* initialHost =
|
||||
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
|
||||
renderer.GetPipeline()),
|
||||
renderer.GetPipeline());
|
||||
ASSERT_NE(initialHost, nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<SceneDrawBackend*>(initialHost->GetPipelineBackend()),
|
||||
nullptr);
|
||||
|
||||
const Pipelines::ManagedRenderPipelineAssetDescriptor descriptor = {
|
||||
@@ -5716,13 +5722,12 @@ TEST(CameraRenderer_Test, DefaultPipelineAssetRefreshesWhenManagedSelectionChang
|
||||
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
|
||||
renderer.GetPipelineAsset()),
|
||||
nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
|
||||
renderer.GetPipeline()),
|
||||
nullptr);
|
||||
EXPECT_EQ(
|
||||
auto* restoredHost =
|
||||
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
|
||||
renderer.GetPipeline()),
|
||||
renderer.GetPipeline());
|
||||
ASSERT_NE(restoredHost, nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<SceneDrawBackend*>(restoredHost->GetPipelineBackend()),
|
||||
nullptr);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user