sablewaves-2.12.3.jar
Curse Maven Snippet
What's new
2.12.3
Performance fix, and it's a big one if you play near a coast.
Somebody reported the mod costing them about half their framerate near the ocean, and their friend dropping to zero and the game locking up entirely. Same bug, different computers.
To draw the sea the mod has to measure every column of water you can see — where the surface is, how deep it goes, and in shallow water a search outwards to find where the shore is. That last part is the expensive one and it only runs near land, which is why this hit when you approached the ocean rather than out in the middle of it.
Each measurement was kept for two seconds. Sounds sensible. Isn't, because every column in view gets measured on the same frame when you arrive, so two seconds later they all go stale on the same frame too. One frame in every forty was re-measuring the entire visible ocean at once — up to a million block lookups in a single frame. On a quick machine that's a stutter you'd read as "this mod costs me 50 fps". On a slower one that frame takes long enough to look like a freeze, and since it comes round every two seconds it never gets clear.
Two fixes. Columns now go stale on their own staggered schedules instead of all together, and there's a limit on how many can be re-measured in one frame — anything over the limit just keeps last frame's answer. Terrain doesn't move, so you can't see the difference.
Auto quality was also set to allow 9ms a frame before stepping in, which is over half a frame at 60fps. A mod halving your framerate was technically inside its budget. It's 5ms now, and since the old number is sitting in everybody's config file already, this version resets that one setting on first launch. Everything else you've changed stays exactly as you set it.
There's one other thing I fixed on suspicion rather than proof. Everything Minecraft draws goes through a single shared geometry buffer, and if the mod ever threw an exception halfway through filling it, it walked off still holding it — and then the next thing to draw anything would fail too. That would explain a rendering error appearing several frames away from whatever actually caused it. It always hands the buffer back now, even when something's gone wrong.
If it's still rough, there's a Surface Cost Logging toggle under Visuals. One line a second with the real millisecond cost, how many columns are being re-measured and what quality step it's dropped to.
This mod has no additional files

