Commit Graph

9612 Commits

Author SHA1 Message Date
Lasse Öörni
1ae6e878f7 Added an initialization-time test to TestScene script for disabling unnecessary shadowcasters. 2011-11-09 08:13:30 +00:00
Lasse Öörni
baefa6fb4e Corrected the constness of WorkQueue::IsCompleted(). 2011-11-07 23:11:28 +00:00
Lasse Öörni
8a52455faa Added shadow mask feature, which allows selective shadow casting by different lights.
Documented multithreading.
2011-11-07 20:11:20 +00:00
Lasse Öörni
787f1d5de0 Code cleanup. 2011-11-07 07:51:27 +00:00
Lasse Öörni
0da41425b5 Fixed debug mode assert.
Do not build raycast work items if no worker threads.
2011-11-04 19:55:18 +00:00
Lasse Öörni
d470af37cb Added command line option to disable worker threads. 2011-11-04 08:44:54 +00:00
Lasse Öörni
39bbcd1b81 Reverted to the previous worker thread sleeping behaviour as on other systems no performance gain was observed. 2011-11-03 23:17:01 +00:00
Lasse Öörni
f50422a04b Repositioned the sleep in the worker thread for improved performance in starting work. 2011-11-03 13:35:03 +00:00
Lasse Öörni
8a57a3ee18 Threaded ray query. 2011-11-03 08:38:23 +00:00
Lasse Öörni
950e37beb1 Refactored raycast query handling in preparation to threading it. 2011-11-03 07:55:48 +00:00
Lasse Öörni
14678bfad0 Fixed editor script. 2011-11-02 19:43:15 +00:00
Lasse Öörni
6a502fad89 Cleaned up WorkQueue code. Removed WorkerThread.cpp & .h. 2011-11-02 19:19:10 +00:00
Lasse Öörni
b204b2031d Removed directional light shadowcaster occlusion for potentially taking much CPU time for relatively little gain, and/or being inaccurate. 2011-11-02 19:07:42 +00:00
Lasse Öörni
f3b5dae787 Threaded occlusion check for the main view.
Fixed worker thread work distribution in Octree & View.
2011-11-02 18:17:51 +00:00
Lasse Öörni
db5fbec28f Get main view zones, occluders, lights and geometries using one octree query. 2011-11-02 10:16:01 +00:00
Lasse Öörni
d958692faf Further work item building optimizations. 2011-11-02 00:47:30 +00:00
Lasse Öörni
714414a755 Code cleanup and work item building optimization in Octree & View. 2011-11-02 00:04:52 +00:00
Lasse Öörni
f2b5b45f59 Added Pause() & Resume() functions to WorkQueue. 2011-11-01 22:56:57 +00:00
Lasse Öörni
0bc0b668ab For some performance gain, use only a mutex to synchronize the work queue, instead of an event. 2011-11-01 19:21:41 +00:00
Lasse Öörni
6b504a0b21 Refactored occlusion buffer allocation to be thread-safe. Thread queries for directional shadowed lights as well. 2011-11-01 18:16:15 +00:00
Lasse Öörni
4bdc1cf2c1 Create worker threads in Engine.
Refactored the WorkQueue implementation into a separate Signal class.
2011-11-01 11:37:21 +00:00
Lasse Öörni
7df7b2eaac Profiling blocks cleanup.
Threaded zone query.
Reduced the amount of temporary vectors used in View.
2011-11-01 08:48:41 +00:00
Lasse Öörni
cccb072a3d Threaded light queries. 2011-10-31 19:26:15 +00:00
Lasse Öörni
80656971de Removed SpinLock class. 2011-10-31 17:26:07 +00:00
Lasse Öörni
d29885dd9f Clamp max. amount of worker threads. 2011-10-31 16:36:09 +00:00
Lasse Öörni
9e7295d666 Threaded batch sorting. 2011-10-31 08:18:09 +00:00
Lasse Öörni
aadc22f05a Changed WorkItem to a value type to make it easier to construct work queue tasks. 2011-10-31 07:56:48 +00:00
Lasse Öörni
f843523ee8 Removed the start/stop mechanism from WorkQueue. 2011-10-31 07:22:32 +00:00
Lasse Öörni
8c11839139 Optimized octree reinsertion of AnimatedModel by recalculating the bounding box during the threaded update. 2011-10-31 00:53:46 +00:00
Lasse Öörni
f5bb9e5487 Work queue & octree reinsertion optimizations. 2011-10-30 23:57:26 +00:00
Lasse Öörni
313610c346 Fixed GCC build. Log amount of created worker threads. 2011-10-30 21:30:03 +00:00
Lasse Öörni
f9d04676f8 Queue octree updates & reinsertions in a PODVector instead of a HashSet. 2011-10-30 20:50:43 +00:00
Lasse Öörni
d976a8043b Reverted TestSceneOld.as modifications. 2011-10-30 19:24:15 +00:00
Lasse Öörni
721885ba4a Divide geometry updates explicitly into main thread, worker threads, and none. 2011-10-30 19:22:26 +00:00
Lasse Öörni
c8089b1687 Initial work queue & multithreading support. 2011-10-30 18:08:39 +00:00
Lasse Öörni
7dad787a9d Added SpinLock class. 2011-10-29 19:27:06 +00:00
Lasse Öörni
62e5541039 Removed the duplicate FrameInfo structure for shadow rendering as unnecessary. 2011-10-29 12:32:05 +00:00
Lasse Öörni
353270e6c7 UpdateDistance() / UpdateGeometry() refactoring. LOD levels are calculated in UpdateDistance(), while UpdateGeometry() is strictly used for preparing GPU resources, and is called after culling and preparing batches.
Fixed possible bug in FindZone().
2011-10-29 12:18:47 +00:00
Lasse Öörni
668da79dc4 Added SM3 requirement to instancing shaders. 2011-10-27 20:35:44 +00:00
Lasse Öörni
41f5aeae88 Reduce shader permutations by requiring diffuse map for normal & specular mapping. 2011-10-27 20:08:25 +00:00
Lasse Öörni
163688c577 Removed unnecessary GLSL shader variations. 2011-10-27 19:57:37 +00:00
Lasse Öörni
0be37e8495 Shader refactoring. Forward shader split to Ambient, BlinnPhong, Unlit & Volumetric.
Added support for multiple variation groups to ShaderCompiler & GLShaderProcessor.
2011-10-27 19:51:14 +00:00
Lasse Öörni
960b8de398 Folded GetShadowPos() back into the lighting shader code as the function contains light-specific #ifdefs. 2011-10-27 07:56:33 +00:00
Lasse Öörni
8fb7ee1a69 Fixed GLSL code. 2011-10-27 07:00:39 +00:00
Lasse Öörni
bef427937c Lighting shader code cleanup.
Automatically set black fog color for additive blending, so that shaders do not necessarily have to take it into account themselves.
2011-10-27 06:57:47 +00:00
Lasse Öörni
75d74ea3f1 Removed unnecessary #ifdef from varyings. 2011-10-26 22:24:13 +00:00
Lasse Öörni
ce811badc3 Removed unnecessary shader permutations. 2011-10-26 22:20:46 +00:00
Lasse Öörni
dd9597a5ae Removed unnecessary #ifdef. 2011-10-26 21:27:11 +00:00
Lasse Öörni
0a6538f069 Further shader cleanup. 2011-10-26 21:15:12 +00:00
Lasse Öörni
d0cdfd6f1e Shader code cleanup. 2011-10-26 20:27:39 +00:00