Joshua Yanovski
ecb68acb77
WIP changes
2022-09-14 01:00:01 -07:00
Joshua Yanovski
f12812c7ee
Tracy thread names.
2022-09-13 15:02:35 -07:00
Joshua Yanovski
60060a9913
[WIP] improving thread pool usage and bot client.
2022-09-12 20:26:22 -07:00
Joshua Yanovski
3b424e9049
Significantly optimizing terrain::Sys::run.
2022-09-11 10:16:31 -07:00
Joshua Yanovski
59d8266f2a
Run terrain chunk removal far from players in parallel.
2022-09-10 13:23:40 -07:00
Joshua Yanovski
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
Joshua Yanovski
c78f496fca
Reduce overhead of messaging systems.
2022-09-09 14:48:54 -07:00
Joshua Yanovski
39225cdbd5
Trying to reduce locking during allocation again...
2022-09-09 02:41:23 -07:00
Joshua Yanovski
cec414cd25
High priority rayon threads (if they're pinned).
2022-09-08 17:44:30 -07:00
Joshua Yanovski
ac5ae40baf
Maybe fix out of VRAM issues for some people.
2022-09-08 10:16:03 -07:00
Joshua Yanovski
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
Joshua Yanovski
585ec62306
Remove semaphore for now, and try pinning rayon threads to cores.
2022-09-07 15:50:00 -07:00
Joshua Yanovski
b489d1ac84
Increase the size of the rayon pool and try to make slowjobs a little
...
friendlier.
2022-09-07 01:34:27 -07:00
Joshua Yanovski
f17910ed2a
Preliminary adding back support for sunlight.
2022-09-01 07:50:47 -07:00
Joshua Yanovski
1dbf72cb3f
Try using MAP_WRITE buffers to skip double buffer creation... but at
...
what cost?
2022-08-31 01:39:27 -07:00
Joshua Yanovski
ead5f65e05
Bump gpu_alloc, help fix memory leak.
2022-08-30 21:56:18 -07:00
Joshua Yanovski
642a8df2db
Fix Dx11/12 on Windows
2022-08-30 21:29:57 -07:00
Joshua Yanovski
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
Joshua Yanovski
7b1c62acf7
Revert fake "memory leak" fix.
2022-08-29 13:57:29 -07:00
Joshua Yanovski
1dc6757668
Fix double unmaps.
2022-08-28 19:14:01 -07:00
Joshua Yanovski
d2cc58b5a0
Reduced impact of existing memory leak.
2022-08-28 18:14:54 -07:00
Joshua Yanovski
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
Joshua Yanovski
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
Joshua Yanovski
13bbc06f9b
Fix namespace issue.
2022-08-26 00:33:34 -07:00
Joshua Yanovski
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
Joshua Yanovski
a8871b03f8
Fix figures and sprite bounds.
2022-08-25 23:45:55 -07:00
Joshua Yanovski
ae77c1814c
Improve figure meshing.
2022-08-25 23:25:21 -07:00
Joshua Yanovski
053941e16a
Fix sprite-only changes.
2022-08-24 23:12:44 -07:00
Joshua Yanovski
0f01b78e4b
Threads pinned to cores, initial groundwork for async slowjobs.
2022-08-24 21:43:14 -07:00
Joshua Yanovski
0dd52f9f11
Fixing screenshots.
2022-08-23 08:00:40 -07:00
Joshua Yanovski
5a5f2b391f
Changes to wgpu to hopefully improve scalability?
2022-08-23 00:54:08 -07:00
Joshua Yanovski
9863670169
Stdlib RwLock in wgpu, update rust-toolchain to some extent.
2022-08-18 18:49:44 -07:00
Joshua Yanovski
6adfa6680f
All unmaps on the main thread, sprites consolidated into a buffer.
2022-08-16 21:32:03 -07:00
Joshua Yanovski
2301b7f47a
Remove even more wgpu commands from the main thread.
2022-08-16 02:09:27 -07:00
Joshua Yanovski
d38ce95b22
Reduce alignment requirements.
2022-08-15 19:50:44 -07:00
Joshua Yanovski
54847c726b
Remove more main thread bottlenecks.
2022-08-15 19:01:43 -07:00
Joshua Yanovski
39db97ed03
Fixing some messed up rons.
2022-08-13 23:50:13 -07:00
Joshua Yanovski
706084dd15
Improving meshing performance.
2022-08-13 23:48:50 -07:00
Joshua Barretto
9bb3681f55
Better SmallCache
2022-08-06 18:19:43 +01:00
Joshua Barretto
bdb71a15df
Improved cave performance, fixed FastNoise2d
2022-08-06 18:02:57 +01:00
Joshua Barretto
86f628037f
Made caves generate 425x faster
2022-08-06 14:46:33 +01:00
Joshua Yanovski
ec6b343dc8
Move even more stuff to background threads.
2022-08-05 03:30:52 -07:00
Joshua Yanovski
c577c21156
Perform nearly all chunk allocations in the same thread that the chunk
...
is generated in.
2022-08-04 19:00:42 -07:00
Joshua Yanovski
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
IsseW
f174472f55
Fix tracy network message plotting.
2022-07-31 16:18:46 +02:00
Joshua Yanovski
5afb17eb07
Reduce jitter, this was too ambitious.
2022-07-31 02:23:01 -07:00
Joshua Yanovski
2a61c7790b
Substantial improvements to meshing time.
...
This mostly come out of optimizing BlocksOfInterest to (empirically)
minimize redundant computations, use a more efficient RNG, use a faster
verion of iter_changed, and optimize water block handling (theoretically
the iter_changed difference might mean we missed some water blocks, but
in practice it's unlikely to matter for fast-moving rivers).
Also did some microoptimizations of meshing etc. that seem to result in
pretty good improvements in practice, and also added another set of
optimizations to improve tree performance (special casing "easy" segment
approaches, which got a few percent, and inlining block_from_structure
for tree leaves and branches, which got us considerably more; I think
the total improvement is around 5%).
2022-07-31 01:28:37 -07:00
Joshua Yanovski
901aa8e1b4
Another 5% boost to tree chunk performance
...
(and over 25% improvement to giant tree throughput--they are under 1
ms/chunk now!)
2022-07-28 12:12:15 -07:00
Joshua Yanovski
233e12d279
Boost tree performance by ~70%.
...
Turns out inlining matters!
2022-07-27 21:47:47 -07:00
Joshua Yanovski
9ebf07c6e1
Merge remote-tracking branch 'origin/master' into sharp/zoomy-worldgen
2022-07-27 15:30:37 -07:00