From 959371a9951f62169a5b3dbfcb7e3b83da4904e3 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 6 Aug 2025 23:39:46 +0200 Subject: [PATCH] Fix particles regression on DirectX --- Content/Shaders/BitonicSort.flax | 4 ++-- Content/Shaders/GPUParticlesSorting.flax | 4 ++-- Source/Engine/Renderer/RenderList.cpp | 2 ++ Source/Shaders/BitonicSort.shader | 1 - 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Content/Shaders/BitonicSort.flax b/Content/Shaders/BitonicSort.flax index 1c01ad7bc..ee7db3c74 100644 --- a/Content/Shaders/BitonicSort.flax +++ b/Content/Shaders/BitonicSort.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a7cb98a1cbfe00c7d8d9dabe713f213537eaf13d4061243c32ca29ba06f3403 -size 6546 +oid sha256:924884da1dfef7a802b7190fd148eebbeece50d6fa4d69295c38238dd96331e6 +size 6538 diff --git a/Content/Shaders/GPUParticlesSorting.flax b/Content/Shaders/GPUParticlesSorting.flax index a9806913e..2045fd649 100644 --- a/Content/Shaders/GPUParticlesSorting.flax +++ b/Content/Shaders/GPUParticlesSorting.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:70db76daf1adae225c5354926b84ab738b0dfba4a66233e291223e81685900c8 -size 2629 +oid sha256:a16a973f4be075f8531a1b1551e33423b014da1e8b348f2672464ee21692e57a +size 2556 diff --git a/Source/Engine/Renderer/RenderList.cpp b/Source/Engine/Renderer/RenderList.cpp index fa0eb8d61..99bb1f0d8 100644 --- a/Source/Engine/Renderer/RenderList.cpp +++ b/Source/Engine/Renderer/RenderList.cpp @@ -264,6 +264,8 @@ void RenderList::AddDelayedDraw(DelayedDraw&& func) void RenderList::DrainDelayedDraws(RenderContext& renderContext) { + if (_delayedDraws.IsEmpty()) + return; PROFILE_GPU_CPU_NAMED("DelayedDraws"); for (DelayedDraw& e : _delayedDraws) e(renderContext); diff --git a/Source/Shaders/BitonicSort.shader b/Source/Shaders/BitonicSort.shader index a2f7d215b..c4a275862 100644 --- a/Source/Shaders/BitonicSort.shader +++ b/Source/Shaders/BitonicSort.shader @@ -68,7 +68,6 @@ void CS_IndirectArgs(uint groupIndex : SV_GroupIndex) uint offset = 12 * prevDispatches; // Generate outer sort dispatch arguments - UNROLL for (uint j = k / 2; j > 1024; j /= 2) { // All of the groups of size 2j that are full