Skip to content

Commit 143d438

Browse files
Fixed SSGI texture allocation with RG disabled (#2768)
1 parent 29a3d43 commit 143d438

File tree

2 files changed

+16
-22
lines changed

2 files changed

+16
-22
lines changed

com.unity.render-pipelines.high-definition/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1515
- Fixed volume component tooltips using the same parameter name.
1616
- Fixed issue with saving some quality settings in volume overrides (case 1293747)
1717
- Fixed NullReferenceException in HDRenderPipeline.UpgradeResourcesIfNeeded (case 1292524)
18+
- Fixed SSGI texture allocation when not using the RenderGraph.
1819

1920
### Changed
2021
- Removed the material pass probe volumes evaluation mode.

com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -772,20 +772,19 @@ void InitializeRenderTextures()
772772
{
773773
m_RaytracingGBufferManager.CreateBuffers();
774774
m_RayCountManager.InitializeNonRenderGraphResources();
775-
776-
if (m_Asset.currentPlatformRenderPipelineSettings.supportSSGI)
777-
{
778-
m_IndirectDiffuseBuffer0 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer0");
779-
m_IndirectDiffuseBuffer1 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer1");
780-
m_IndirectDiffuseBuffer2 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer2");
781-
m_IndirectDiffuseBuffer3 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer3");
782-
m_IndirectDiffuseHitPointBuffer = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseHitBuffer");
783-
}
784-
785775
m_RayTracingLightCluster.InitializeNonRenderGraphResources();
786776

787777
m_FlagMaskTextureRT = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R8_SNorm, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, name: "FlagMaskTexture");
788778
}
779+
780+
if (m_Asset.currentPlatformRenderPipelineSettings.supportSSGI)
781+
{
782+
m_IndirectDiffuseBuffer0 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer0");
783+
m_IndirectDiffuseBuffer1 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer1");
784+
m_IndirectDiffuseBuffer2 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer2");
785+
m_IndirectDiffuseBuffer3 = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseBuffer3");
786+
m_IndirectDiffuseHitPointBuffer = RTHandles.Alloc(Vector2.one, TextureXR.slices, colorFormat: GraphicsFormat.R16G16_SFloat, dimension: TextureXR.dimension, enableRandomWrite: true, useDynamicScale: true, useMipMap: false, autoGenerateMips: false, name: "IndirectDiffuseHitBuffer");
787+
}
789788
}
790789

791790
void GetOrCreateDebugTextures()
@@ -850,24 +849,18 @@ void DestroyRenderTextures()
850849
{
851850
m_RaytracingGBufferManager.DestroyBuffers();
852851
m_RayCountManager.CleanupNonRenderGraphResources();
853-
854-
if (m_IndirectDiffuseBuffer0 != null)
855-
RTHandles.Release(m_IndirectDiffuseBuffer0);
856-
if (m_IndirectDiffuseBuffer1 != null)
857-
RTHandles.Release(m_IndirectDiffuseBuffer1);
858-
if (m_IndirectDiffuseBuffer2 != null)
859-
RTHandles.Release(m_IndirectDiffuseBuffer2);
860-
if (m_IndirectDiffuseBuffer3 != null)
861-
RTHandles.Release(m_IndirectDiffuseBuffer3);
862-
if (m_IndirectDiffuseHitPointBuffer != null)
863-
RTHandles.Release(m_IndirectDiffuseHitPointBuffer);
864-
865852
m_RayTracingLightCluster.CleanupNonRenderGraphResources();
866853

867854
RTHandles.Release(m_FlagMaskTextureRT);
868855

869856
RaytracingManagerCleanupNonRenderGraphResources();
870857
}
858+
859+
RTHandles.Release(m_IndirectDiffuseBuffer0);
860+
RTHandles.Release(m_IndirectDiffuseBuffer1);
861+
RTHandles.Release(m_IndirectDiffuseBuffer2);
862+
RTHandles.Release(m_IndirectDiffuseBuffer3);
863+
RTHandles.Release(m_IndirectDiffuseHitPointBuffer);
871864
}
872865

873866
void SetRenderingFeatures()

0 commit comments

Comments
 (0)