From 3c5d2f8b4716f63af8eed681f5ffe3209306aaca Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 3 Jun 2024 22:29:00 +0200 Subject: [PATCH] Skip ddgi probes data preload to reduce memory wait time --- Source/Shaders/GI/DDGI.hlsl | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/Source/Shaders/GI/DDGI.hlsl b/Source/Shaders/GI/DDGI.hlsl index 10ea761e4..6694f1195 100644 --- a/Source/Shaders/GI/DDGI.hlsl +++ b/Source/Shaders/GI/DDGI.hlsl @@ -154,17 +154,6 @@ float3 SampleDDGIIrradiance(DDGIData data, Texture2D probesData, T return data.FallbackIrradiance; uint3 baseProbeCoords = clamp(uint3((worldPosition - probesOrigin + probesExtent) / probesSpacing), uint3(0, 0, 0), data.ProbesCounts - uint3(1, 1, 1)); - // Load probes state for this cascade - float4 probesDatas[8]; - UNROLL - for (uint i = 0; i < 8; i++) - { - uint3 probeCoordsOffset = uint3(i, i >> 1, i >> 2) & 1; - uint3 probeCoords = clamp(baseProbeCoords + probeCoordsOffset, uint3(0, 0, 0), data.ProbesCounts - uint3(1, 1, 1)); - uint probeIndex = GetDDGIScrollingProbeIndex(data, cascadeIndex, probeCoords); - probesDatas[i] = LoadDDGIProbeData(data, probesData, cascadeIndex, probeIndex); - } - // Bias the world-space position to reduce artifacts float3 viewDir = normalize(data.ViewPos - worldPosition); float3 surfaceBias = (worldNormal * 0.2f + viewDir * 0.8f) * (0.75f * probesSpacing * bias); @@ -183,7 +172,7 @@ float3 SampleDDGIIrradiance(DDGIData data, Texture2D probesData, T uint probeIndex = GetDDGIScrollingProbeIndex(data, cascadeIndex, probeCoords); // Load probe position and state - float4 probeData = probesDatas[i]; + float4 probeData = LoadDDGIProbeData(data, probesData, cascadeIndex, probeIndex); uint probeState = DecodeDDGIProbeState(probeData); if (probeState == DDGI_PROBE_STATE_INACTIVE) continue;