Commit Graph

12201 Commits

Author SHA1 Message Date
aaa9255c8e Lower rather than raise priorities. 2022-09-16 18:04:23 -07:00
7d3b8ea81e Parallelize ingame messages. 2022-09-16 01:34:21 -07:00
4b5a9fe0f4 Remove persistence loading error from SkillSet.
This is needed (for now) in order to parallelize ingame_chat, because
one of the handled messages updates this value on the server.  It turns
out that the value is not actually used on the server, only the client,
so this was mostly a matter of threading this back to the correct place.
Additionally, we took the opportunity to modify the UI to not log you
into the game until your character was confirmed to be loaded, which
was a todo item that lets us simplify some error handling logic and
remove stuff from global state.
2022-09-16 01:20:35 -07:00
8dfe53e788 Oops 2022-09-14 01:44:38 -07:00
ecb68acb77 WIP changes 2022-09-14 01:00:01 -07:00
f12812c7ee Tracy thread names. 2022-09-13 15:02:35 -07:00
60060a9913 [WIP] improving thread pool usage and bot client. 2022-09-12 20:26:22 -07:00
3b424e9049 Significantly optimizing terrain::Sys::run. 2022-09-11 10:16:31 -07:00
59d8266f2a Run terrain chunk removal far from players in parallel. 2022-09-10 13:23:40 -07:00
7fe721247c Allow mods/admins to log in when server is full.
As a side effect, this moves the initial game server sync message into
the login code, since that's the first place we can check for admin
permissions and we want to avoid sending large messages to users who are
not authenticated (especially if the player cap has been reached;
previously, the player cap check limited the damage that could be done
by unauthenticated players).

Some fallout from this is that we don't synchronize the Player component
anymore, which had some minor effects on voxygen.  This update also
breaks Torvus, since Client::new now expects the username and password
to be provided from the getgo--an accompanying MR will be submitted to
fix it.
2022-09-09 15:13:53 -07:00
c78f496fca Reduce overhead of messaging systems. 2022-09-09 14:48:54 -07:00
39225cdbd5 Trying to reduce locking during allocation again... 2022-09-09 02:41:23 -07:00
cec414cd25 High priority rayon threads (if they're pinned). 2022-09-08 17:44:30 -07:00
ac5ae40baf Maybe fix out of VRAM issues for some people. 2022-09-08 10:16:03 -07:00
8fe1be2f59 Stop spawning tasks on the global rayon pool.
Also adds some missing parallelism to entity sync.
2022-09-08 01:46:11 -07:00
585ec62306 Remove semaphore for now, and try pinning rayon threads to cores. 2022-09-07 15:50:00 -07:00
b489d1ac84 Increase the size of the rayon pool and try to make slowjobs a little
friendlier.
2022-09-07 01:34:27 -07:00
f17910ed2a Preliminary adding back support for sunlight. 2022-09-01 07:50:47 -07:00
1dbf72cb3f Try using MAP_WRITE buffers to skip double buffer creation... but at
what cost?
2022-08-31 01:39:27 -07:00
ead5f65e05 Bump gpu_alloc, help fix memory leak. 2022-08-30 21:56:18 -07:00
642a8df2db Fix Dx11/12 on Windows 2022-08-30 21:29:57 -07:00
83ca01e42d Asynchronously wait if jobs are using too many buffers at once, and drop
tasks from a frame all in one job to maximize the likelihood that it
actually runs.
2022-08-30 12:19:29 -07:00
7b1c62acf7 Revert fake "memory leak" fix. 2022-08-29 13:57:29 -07:00
1dc6757668 Fix double unmaps. 2022-08-28 19:14:01 -07:00
d2cc58b5a0 Reduced impact of existing memory leak. 2022-08-28 18:14:54 -07:00
6cbf6a7237 Attempt to avoid calling the driver's allocator within critical sections
(unless it's going to be immediately memory mapped).
2022-08-28 17:34:02 -07:00
9453a1e463 In wgpu, take slightly more conservative locks.
I don't think this should actually affect anything in Veloren but it's
probably required for correctness in general.
2022-08-26 17:16:28 -07:00
13bbc06f9b Fix namespace issue. 2022-08-26 00:33:34 -07:00
83d6243205 Make sure to always give the client and server at least two workers, for
queueing theory reasons.
2022-08-26 00:32:25 -07:00
a8871b03f8 Fix figures and sprite bounds. 2022-08-25 23:45:55 -07:00
ae77c1814c Improve figure meshing. 2022-08-25 23:25:21 -07:00
053941e16a Fix sprite-only changes. 2022-08-24 23:12:44 -07:00
0f01b78e4b Threads pinned to cores, initial groundwork for async slowjobs. 2022-08-24 21:43:14 -07:00
0dd52f9f11 Fixing screenshots. 2022-08-23 08:00:40 -07:00
5a5f2b391f Changes to wgpu to hopefully improve scalability? 2022-08-23 00:54:08 -07:00
9863670169 Stdlib RwLock in wgpu, update rust-toolchain to some extent. 2022-08-18 18:49:44 -07:00
6adfa6680f All unmaps on the main thread, sprites consolidated into a buffer. 2022-08-16 21:32:03 -07:00
2301b7f47a Remove even more wgpu commands from the main thread. 2022-08-16 02:09:27 -07:00
d38ce95b22 Reduce alignment requirements. 2022-08-15 19:50:44 -07:00
54847c726b Remove more main thread bottlenecks. 2022-08-15 19:01:43 -07:00
39db97ed03 Fixing some messed up rons. 2022-08-13 23:50:13 -07:00
706084dd15 Improving meshing performance. 2022-08-13 23:48:50 -07:00
9bb3681f55 Better SmallCache 2022-08-06 18:19:43 +01:00
bdb71a15df Improved cave performance, fixed FastNoise2d 2022-08-06 18:02:57 +01:00
86f628037f Made caves generate 425x faster 2022-08-06 14:46:33 +01:00
ec6b343dc8 Move even more stuff to background threads. 2022-08-05 03:30:52 -07:00
c577c21156 Perform nearly all chunk allocations in the same thread that the chunk
is generated in.
2022-08-04 19:00:42 -07:00
04bb1e32d9 WIP: Glow lighting performance improvements.
Messes up water somewhat and is incomplete for glow lighting, but should
be a fair amount faster in general.  Also reduces stuttering during
chunk generation by moving atlas creation and "clearing" off the main
thread (in fact, we don't even clear it except for the very first
allocated terrain atlas).
2022-08-02 18:01:17 -07:00
f174472f55 Fix tracy network message plotting. 2022-07-31 16:18:46 +02:00
5afb17eb07 Reduce jitter, this was too ambitious. 2022-07-31 02:23:01 -07:00