refactor(srp): add managed lifecycle cleanup seams

Invoke managed pipeline disposal and asset runtime cleanup from the native bridge lifecycle. Add Universal renderer and feature cleanup hooks plus regression probes to verify runtime cache teardown semantics.
This commit is contained in:
2026-04-20 01:14:37 +08:00
parent beaf5809d5
commit 58dde75d3d
10 changed files with 900 additions and 0 deletions

View File

@@ -38,6 +38,35 @@ namespace XCEngine.Rendering.Universal
return GetPipelineRendererAssetKey();
}
internal void ReleaseRuntimeResourcesInstance()
{
if (m_rendererInstance != null)
{
m_rendererInstance.ReleaseRuntimeResourcesInstance();
m_rendererInstance = null;
m_rendererFeatures = null;
ReleaseRuntimeResources();
return;
}
if (m_rendererFeatures != null)
{
for (int i = 0; i < m_rendererFeatures.Length; ++i)
{
ScriptableRendererFeature rendererFeature =
m_rendererFeatures[i];
if (rendererFeature != null)
{
rendererFeature.ReleaseRuntimeResourcesInstance();
}
}
m_rendererFeatures = null;
}
ReleaseRuntimeResources();
}
internal void ConfigureCameraRenderRequestInstance(
CameraRenderRequestContext context)
{
@@ -80,6 +109,10 @@ namespace XCEngine.Rendering.Universal
return Array.Empty<ScriptableRendererFeature>();
}
protected virtual void ReleaseRuntimeResources()
{
}
protected bool HasDirectionalShadow(
CameraRenderRequestContext context)
{