Commit Graph

70 Commits

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