Align managed SRP camera request planning

This commit is contained in:
2026-04-26 17:49:51 +08:00
parent a89b5c9aec
commit 703eaa3b8e
2 changed files with 21 additions and 24 deletions

View File

@@ -2104,13 +2104,21 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
size_t renderedRequestCount,
const Rendering::DirectionalShadowPlanningSettings&
directionalShadowSettings) const {
const auto applyDefaultDirectionalShadowPolicy =
[&request,
renderedBaseCameraCount,
renderedRequestCount](
const Rendering::DirectionalShadowPlanningSettings& settings) {
request.directionalShadow = {};
Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
request,
renderedBaseCameraCount,
renderedRequestCount,
settings);
};
if (!EnsureManagedAsset()) {
request.directionalShadow = {};
Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
request,
renderedBaseCameraCount,
renderedRequestCount,
directionalShadowSettings);
applyDefaultDirectionalShadowPolicy(directionalShadowSettings);
return;
}
@@ -2118,12 +2126,7 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
MonoMethod* const method =
ResolveConfigureCameraRenderRequestMethod(assetObject);
if (assetObject == nullptr || method == nullptr) {
request.directionalShadow = {};
Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
request,
renderedBaseCameraCount,
renderedRequestCount,
directionalShadowSettings);
applyDefaultDirectionalShadowPolicy(directionalShadowSettings);
return;
}
@@ -2134,6 +2137,8 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
requestContextState.renderedRequestCount = renderedRequestCount;
requestContextState.directionalShadowPlanningSettings =
directionalShadowSettings;
applyDefaultDirectionalShadowPolicy(
requestContextState.directionalShadowPlanningSettings);
const uint64_t requestContextHandle =
RegisterManagedCameraRenderRequestContextState(
requestContextState);
@@ -2143,12 +2148,6 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
if (requestContextObject == nullptr) {
UnregisterManagedCameraRenderRequestContextState(
requestContextHandle);
request.directionalShadow = {};
Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
request,
renderedBaseCameraCount,
renderedRequestCount,
directionalShadowSettings);
return;
}
@@ -2159,12 +2158,8 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
args,
nullptr);
request.directionalShadow = {};
if (requestContextState.suppressDirectionalShadow) {
} else {
Rendering::ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
request,
renderedBaseCameraCount,
renderedRequestCount,
if (!requestContextState.suppressDirectionalShadow) {
applyDefaultDirectionalShadowPolicy(
requestContextState.directionalShadowPlanningSettings);
}
UnregisterManagedCameraRenderRequestContextState(