Commit Graph

70 Commits

Author SHA1 Message Date
Wojtek Figat
4fd6343fb9 Fix missing memory barrier on particle indirect args building to ensure buffer copies are done afetr whole buffer update ends 2025-08-10 16:04:24 +02:00
Wojtek Figat
ff3d785483 Optimize GPU particles simulation, sorting and drawing with better resource transition barriers 2025-08-09 23:59:52 +02:00
Wojtek Figat
3907bc4957 Optimize sorted particle indices format to 16-bit for small emitters 2025-08-08 18:46:10 +02:00
Wojtek Figat
854f3acd4c Optimize GPU particles Bitonic sort to use separate buffers for indices and keys to avoid additional buffer copy 2025-08-08 18:24:44 +02:00
Wojtek Figat
519a9c0a14 Add direct dispatch for Bitonic Sort when using small input buffer 2025-08-08 17:03:39 +02:00
Wojtek Figat
0ea555b041 Optimize GPU Particles simulation to perform memory buffer copies/updates before dispatch 2025-08-08 16:25:09 +02:00
Wojtek Figat
90d1e63b58 Add minor optimizations to particles drawing 2025-08-08 13:11:05 +02:00
Wojtek Figat
9fabc1028a Optimize GPU particles indirect args building with a single batched upload of default data 2025-08-07 23:51:02 +02:00
Wojtek Figat
2a9260ddd5 Optimize emitters to cull shadow passes sorting and drawing 2025-08-07 23:49:21 +02:00
Wojtek Figat
3d84380175 Optimize particles sorting by splitting key generation and sorting to reduce CS switches 2025-08-07 19:09:58 +02:00
Wojtek Figat
545df6ce35 Add profiler event to GPU particles indirect args setup 2025-08-07 18:57:39 +02:00
Wojtek Figat
d4355e31d8 Optimize GPU particles drawing with batched indirect args setup before sorting 2025-08-07 18:41:58 +02:00
Wojtek Figat
3ffb067e55 Optimize Particles drawing to use a whole RenderContextBatch 2025-08-07 09:27:28 +02:00
Wojtek Figat
cf9c203855 Various optimizations 2025-08-06 18:48:18 +02:00
Wojtek Figat
a5838f739d Optimize GPU particles indirect args building code 2025-08-05 23:01:07 +02:00
Wojtek Figat
b1710c4d01 Add async particles drawing (GPU emitters are sync) 2025-08-05 22:53:09 +02:00
Wojtek Figat
761ea094d6 Optimize render module indices data 4 times 2025-08-05 11:50:26 +02:00
Wojtek Figat
8e043e533e Optimize SpriteRenderer to lazy-init 2025-08-05 11:02:03 +02:00
Wojtek Figat
1a88fefd76 Optimize CPU particles drawing to support async 2025-08-05 09:03:47 +02:00
Wojtek Figat
abe496fe12 Fix crash on particles sorting memory access 2025-08-04 10:31:52 +02:00
Wojtek Figat
349547f66c Merge remote-tracking branch 'origin/master' into 1.11
# Conflicts:
#	Source/Engine/Particles/Particles.cpp
2025-07-14 18:35:53 +02:00
Wojtek Figat
3e82e550f3 Add option for debug shapes drawing for particle emitters
#3267
2025-07-11 23:00:41 +02:00
Wojtek Figat
c639a3103c Add memory profiling events to the main areas of the engine 2025-05-22 04:47:01 +02:00
Wojtek Figat
9c3fd052cd Remove copyright year from source files and update to 2025 2025-04-07 19:22:21 +02:00
Wojtek Figat
2ab9adab24 Merge remote-tracking branch 'origin/master' into 1.10 2025-02-24 23:27:56 +01:00
Wojtek Figat
937d369856 Fix crash in particles system when assets gets loading/unloaded while async jobs are active 2025-02-18 23:27:49 +01:00
Wojtek Figat
a6fb651ff4 Merge remote-tracking branch 'origin/master' into 1.10
# Conflicts:
#	Source/Engine/Graphics/Materials/MaterialShader.h
2025-02-18 09:19:59 +01:00
Wojtek Figat
015c4ab475 Fix memory leak in particle buffers recycling
#3152
2025-02-17 23:25:40 +01:00
Wojtek Figat
b71f803554 Fix regression in particles 2025-01-11 22:45:04 +01:00
Wojtek Figat
edaed7bda1 Add missing layout for ribbon vertex buffer 2025-01-07 16:12:11 +01:00
Wojtek Figat
b3f37ca041 Refactor Vertex Shader input vertex layout to use GPUVertexLayout defined on Vertex Buffer rather than Vertex Shader
#3044 #2667
2024-12-15 22:10:45 +01:00
Wojtek Figat
a18565fd61 Merge remote-tracking branch 'origin/master' into 1.9 2024-08-23 00:05:00 +02:00
Wojtek Figat
ef540bc498 Fix crash when drawing particle effect where one of the emitter assets is not yet loaded 2024-08-22 23:35:53 +02:00
Wojtek Figat
23f60da40d Fix various code issues found using PVS-Studio 2024-08-22 20:24:52 +02:00
Wojtek Figat
74dfa30556 Fix crash when drawing particle effect where one of the emitter assets is not yet loaded 2024-07-12 17:14:51 +02:00
Wojtek Figat
78f3248ac9 Refactor SortOrder to use int8 instead of int16 due to performance reasons (more efficent sort keys packing in rendering) 2024-06-29 13:54:02 +02:00
Wojtek Figat
1e86eff2d3 Improve GPU constant buffers structures definitions to properly align on new Clang 2024-06-02 09:52:10 +02:00
Wojtek Figat
206ff89587 Add constant buffers alignment for data structures (16-byte boundaries) 2024-05-23 13:58:46 +02:00
Wojtek Figat
2edb9cc4d8 Fix compilation warnings when using 64-bit coords 2024-05-08 23:24:23 +02:00
Wojtek Figat
859c420d76 Update year in copyright note 2024-02-26 19:00:48 +01:00
Wojtek Figat
468c93949e Fix crash when creating empty particle emitter 2023-10-28 14:01:44 +02:00
Chandler Cox
78aae0da5a Better handling stopping/resetting non-looping effect. 2023-10-21 17:22:02 -05:00
Chandler Cox
7d9991999d Better fix. 2023-10-21 14:08:23 -05:00
Chandler Cox
ad15c5b2fc Fix particles effect not being able to just call play if islooped is false. 2023-10-21 13:36:39 -05:00
36b1dc1452 Fix particle effects not working properly at high framerate 2023-10-03 17:38:21 +03:00
Wojtek Figat
8cd8ae93c3 Add ObjectRadius to DrawCall to properly cull local lights and env probes in Forward Shading 2023-09-20 15:01:02 +02:00
Wojtek Figat
c878c613c7 Update consoles building 2023-02-05 23:48:11 +01:00
Wojtek Figat
aa8d6f7c79 Fix ribbon particles triangle indices ordering to prevent artifacts 2023-02-03 13:30:48 +01:00
Wojtek Figat
adfe3ad165 Add SortOrder to drawable object types for transparency sorting override 2023-01-26 18:37:40 +01:00
Wojtek Figat
f127bbebe1 Refactor enum flags with __underlying_type and new EnumHasAnyFlags/EnumHasAllFlags
Fixes #832
Closes #886
2023-01-15 12:44:39 +01:00