From fe97429df892b2c004064a24a060a96d547378c6 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 18 Feb 2023 22:23:59 +0100 Subject: [PATCH] Minor fix --- Source/Shaders/GI/DDGI.shader | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Shaders/GI/DDGI.shader b/Source/Shaders/GI/DDGI.shader index 1c7b577b2..e90155960 100644 --- a/Source/Shaders/GI/DDGI.shader +++ b/Source/Shaders/GI/DDGI.shader @@ -160,9 +160,9 @@ void CS_Classify(uint3 DispatchThreadId : SV_DispatchThreadID) uint sdfCascade = GetGlobalSDFCascade(GlobalSDF, probePosition); float4 CachedProbeOffsets[64]; // TODO: test performance diff when using shared memory and larger thread group (is it worth it?) - for(uint x = 0; x < 4; x++) - for(uint y = 0; y < 4; y++) - for(uint z = 0; z < 4; z++) + for (uint x = 0; x < 4; x++) + for (uint y = 0; y < 4; y++) + for (uint z = 0; z < 4; z++) { float3 offset = Remap(float3(x, y, z), 0, 3, -0.5f, 0.5f) * relocateLimit; float offsetSdf = SampleGlobalSDFCascade(GlobalSDF, GlobalSDFTex, probeBasePosition + offset, sdfCascade); @@ -273,7 +273,7 @@ void CS_TraceRays(uint3 DispatchThreadId : SV_DispatchThreadID) float4 probeData = LoadDDGIProbeData(DDGI, ProbesData, CascadeIndex, probeIndex); uint probeState = DecodeDDGIProbeState(probeData); uint probeRaysCount = GetProbeRaysCount(DDGI, probeState); - if (probeState == DDGI_PROBE_STATE_INACTIVE || probeRaysCount < rayIndex) + if (probeState == DDGI_PROBE_STATE_INACTIVE || rayIndex >= probeRaysCount) return; // Skip disabled probes or if current thread's ray is unused float3 probePosition = DecodeDDGIProbePosition(DDGI, probeData, CascadeIndex, probeIndex, probeCoords); float3 probeRayDirection = GetProbeRayDirection(DDGI, rayIndex);