5185 Commits

Author SHA1 Message Date
Moritz Zwerger
0db46ff41f
ambient occlusion: real greyscale 2025-02-07 23:43:36 +01:00
Moritz Zwerger
6a9cc77879
ambient occlusion
west + east
2025-02-07 23:33:28 +01:00
Moritz Zwerger
b6d14b3a9b
wip ambient occlusion
already working for top/bottom faces
2025-02-07 23:11:16 +01:00
Moritz Zwerger
f22935b5f1
arm render: enable face culling
Looks pretty shitty otherwise
2025-02-07 22:14:47 +01:00
Moritz Zwerger
095b537578
chunk renderer: pack uv
Cleans up uv with its own inlined datatype.

UV took 2*32bits but that was just overkill. Now it takes 2*12 bits and fits into one 32 bit float and leaves an additional
8 bits left, 2 of them will be used for ambient occlusion in the future.
2025-02-07 15:38:49 +01:00
Moritz Zwerger
68728bb1d8
baked face: don't allocate Int object when not tinted
Reduces some allocation during chunk meshing
2025-02-07 13:34:40 +01:00
Moritz Zwerger
89c164b360
block flags
This caches some properties that might be "complex" to calculate and are needed all over. Costs some memory, but we got enough, right?
2025-02-07 13:30:27 +01:00
Moritz Zwerger
63ff882512
reduce meshes per frame, reduce some latency 2025-02-06 22:11:59 +01:00
Moritz Zwerger
f1596c53ff
block entity receiving: don't process empty nbt 2025-02-06 22:11:43 +01:00
Moritz Zwerger
2e202bd6fc
benchmark section occlusion 2025-02-06 21:54:12 +01:00
Moritz Zwerger
b2963ca1bd
occlusion: cache short array
Reduces memory allocations a lot and slightly the performance
2025-02-06 21:47:52 +01:00
Moritz Zwerger
c6892e4bd3
chunk section: only keep track if section has fluids and not how many, improvements
A lot faster now and the count is not really needed, it will change rarely.
2025-02-06 21:37:15 +01:00
Moritz Zwerger
d2d83d85dc
MobSpawnerBlockEntity::isPlayerInRange: don't wait forever
This workarounds a deadlock.
2025-02-06 21:06:29 +01:00
Moritz Zwerger
be5dffcc0a
some more freeze dump improvements 2025-02-06 18:57:26 +01:00
Moritz Zwerger
e077192eb2
freeze dump: print lock details
This way it is clear who is holding the lock and probably causing the thread lock by not unlocking/releasing it again
2025-02-06 18:43:29 +01:00
Moritz Zwerger
c1bcfbe982
fix kutil version
my bad, called the local build version 1.27.0
2025-02-06 13:49:54 +01:00
Moritz Zwerger
c2b7890b2f
optimize entity attribute calculation
Armor stands (living entities) need that to weather it is possible to target them. Reduces memory usage (enum map, only on demand, skip empty map).
2025-02-06 13:44:35 +01:00
Moritz Zwerger
9555ff19ea
render prepare: run Renderer::postPrepareDraw as soon as async is possible
Now it is not waiting for the previous stage (async prepare) anymore and can start with tasks asap. This reduces the frame time, because it does not need to waiting blocked most times.
2025-02-06 12:51:24 +01:00
Moritz Zwerger
13037f4e0a
renderer manager: enqueue async preparing directly after sync preparing and wait after all were enqueued.
Async renderers can now already complete their preparing when others are still preparing in their sync phase. This should reduce the frame time a bit. It can even be enhanced with some feedback/task scheduler (track what time it takes avg and queue that one first next frame or so).
2025-02-06 10:00:29 +01:00
Moritz Zwerger
88df92ce84
chunk renderer: work on meshing queue async
Then it does not block the render preparing pipeline anymore. Same for sky renderer.
2025-02-06 09:58:03 +01:00
Moritz Zwerger
995e4be2eb
fix building with java 11
Those functions are not available there and should be imported.
2025-02-06 09:56:35 +01:00
Moritz Zwerger
52c3f7372e
local chunk manager: only update when position changed 2025-02-05 14:36:38 +01:00
Moritz Zwerger
ba8353d1f0
fragmented array list: fix bad return 2025-02-04 22:06:04 +01:00
Moritz Zwerger
20f4733771
benchmark solid section mesher 2025-02-04 21:56:48 +01:00
Moritz Zwerger
c21e1cb852
WeightedBlockRender: unpack if total weight < 20
This makes it a bit faster to lookup the model. It can even be more enhanced by unpacking the whole section once (every model) and then running culling and stuff afterwards. In the future...
2025-02-04 21:47:49 +01:00
Moritz Zwerger
a6cf950e29
FragmentedArrayFloatList: optimize
Just for adding 7 floats, that method is used during chunk meshing. The case that the first incomplete list has more than 7 floats available is probably in 99% of cases the case and not trying to push the buffer every time improves performance (it is way faster, meshing a random chunk is now twice as fast)
2025-02-04 20:24:27 +01:00
Moritz Zwerger
c11d64f2d7
meshes/float lists: make size a power of 2
This way it is way more likely to be page aligned and memory access should be faster
2025-02-04 20:21:20 +01:00
Moritz Zwerger
7229f9c06e
render stats: reduce avg
Otherwise fps are building up when joining?
2025-02-03 22:21:27 +01:00
Moritz Zwerger
8dca129517
bump dependencies 2025-02-03 22:20:33 +01:00
Moritz Zwerger
b2480980e9
port to kutil 1.27
This update has some qol updates and a lot of juicy performance updates. Locking now uses javas integrated ReentrantLock which is 10 times faster than the synchronized lock (benchmarked it). Due to minosofts async nature, a lot of locking is needed (especially for time critical parts like in rendering). Locking is already reduced to a minimum, but it should still give a small performance boost.

(more ports in there)
2025-02-03 22:12:37 +01:00
Moritz Zwerger
6659a0fef9
exclude dnsjava service
This is pretty bad, but it breaks minosoft for java18+ atm.

https://github.com/Bixilon/Minosoft/issues/33
2024-12-22 17:31:00 +01:00
Moritz Zwerger
6f9c83d3e5
bump gradle: 8.11.1 2024-12-16 14:00:07 +01:00
Moritz Zwerger
dcaa5eea4d
bump dependencies 2024-12-16 13:59:33 +01:00
Moritz Zwerger
3a608abe2d
bump kutil: 1.26.4 2024-10-29 23:53:15 +01:00
Moritz Zwerger
45a184a1b5
downgrade lwjgl/glfw 2024-10-29 23:36:49 +01:00
Moritz Zwerger
de1d3541a6
rendering: properly close window
This still makes the window freeze on wayland, not sure if I should blame the glfw update to kde.
2024-10-29 23:33:04 +01:00
Moritz Zwerger
8cfa0eb0f1
fix connecting to hostname in play instead of pinged address
This breaks SRV resolving
2024-10-29 23:27:52 +01:00
Moritz Zwerger
ad72c013df
fix plank tests 2024-10-29 23:12:07 +01:00
Moritz Zwerger
5011828949
prepare for kutil 1.26.3 2024-10-29 22:04:12 +01:00
Moritz Zwerger
3c93f7cc45
update: wrap release notes in scroll panel, show if update unavailable for downloading
Fixes GH-31
2024-10-29 22:02:38 +01:00
Moritz Zwerger
c9795c4451
bump dependencies 2024-10-29 21:39:26 +01:00
Moritz Zwerger
88f090464a
bump gradle 2024-10-29 21:34:36 +01:00
Moritz Zwerger
270617d084
readme: education branch 2024-08-11 12:36:43 +02:00
Moritz Zwerger
c473b43154
DummyVendor::toString 2024-08-10 16:00:08 +02:00
Moritz Zwerger
3b391b14a8
local connection: add player to tab list 2024-08-09 22:23:20 +02:00
Moritz Zwerger
eb9c261d15
option to disable profile saving 2024-08-09 22:23:17 +02:00
Moritz Zwerger
2fec0f1df7
add dirt, planks 2024-08-09 12:33:09 +02:00
Moritz Zwerger
716cdf6cf2
properties loader: just append version name
This makes it easily possible to change the edition name (like education)
2024-08-09 12:11:41 +02:00
Moritz Zwerger
2f338f8241
local connection: send game joined message 2024-08-09 12:08:09 +02:00
Moritz Zwerger
dddd0ebde4
legacy chat component reading: remove quotes around text + test 2024-08-06 23:05:33 +02:00