Chisels & Bits - For Fabric

Chisels & Bits - For Fabric

2M Downloads

Chunk Update Lag, With Version 12.14

Skid-Inc opened this issue ยท 30 comments

commented

A recent update to the All The Mods pack, updated to 12.14, minecraft version 1.10.4, caused the 3 chunks that contained my Chisels and Bits roof on my house, to hang for a few seconds, when doors where opened, and chunk updates, caused by a block being added or removed took a numbers seconds to render the change. The issue didn't cause any exceptions ether on the server or the client, and was fixed by forced the pack to used version 12.12. I do not have optifine installed.

Please see the following video at timestamp 00:12:00 to see the issue in question, after I noticed that only the chunks which had my roof in had the problem, I revered to 12.12 and that fixed the issue.
https://www.twitch.tv/videos/154104683

commented

I'm not sure how I can test this without the world, and glancing though the list of changes there was nothing that seemed like it would cause issues.

There were some changes to UV calculations for Cache things... some support enhancements for blocks, getLightValue, shadows for full blocks, a fix for fancy leaves... a blacklist for ticking blocks, a few crash fixes... and some start up changes.

It boggles me that something in there is freezing you game like that.

commented

The location indicated is the top of a hill, there is a village near the hill, but nothing that resembles what was in the video. It also seems to be a different biome, "Extreme Hills"
test

commented

Arr shit sorry, made a couple of fuck ups;-
1, I missed a negative, I was pulling the X Z from the video, it's x:-200, z:250.
2, While trying to download version 12.14 to revert the server back to the version in question, I went to the download page for it, then copied the link from the green download button rather then the grey one, in otherwords I put version 13.10 in that link. I checked this because at 200, 250 is not what is in your screen shot which made me thing the world hasn't loaded properly.

I've created a copy of my server with the correct versions, whitelist and oped "AlgorithmX2" which I assume is your minecraft name as well. Hopefully it'll save you some time. This is not my live world so feel free to break it.

Edit: Just realised I never stated, version of AllTheMods is 3.00b.

commented

So, I noticed a crazy amount of lag for me as well in Age of Engineering (1.10.2, C&B 12.14) every time a block update appears like placing or breaking a block. I did some research and testing. I did chisel some EnvironmentalTech Alabaster before without any problems, but as soon as I chiseled Hardened Clay (Red + Orange + Yellow) I got a crazy amount of block update lag). I tore the blocks down and the lag was gone, so it is definitely those blocks. Then I replaced those blocks with Flat Colored Blocks of the same colors and even added Lava bits and while there was a tiny bit of that block update lag happening again (with double the amount of blocks in that room) it was way better and bearly noticable. Do you have any idea why Hardened Clay Blocks would behave so terribly?

commented

@Skid-Inc I actually tried the coordinates from the video as well, which is only a short jog from there... 400 blocks, its probably in that screen shot somewhere considering how huge it is. I don't know why, but it looks like the world is not loading, or missing data. I'm not sure. I also noted that the C&B copy that was in the folder was for 1.11, That didn't bother me since I was able to drop in another copy without any issue.

I'm not sure what to do here, I was honestly hoping to pull the world into my dev environment to test with, but that requires removing 99% of the mods and just trying to reproduce with the bare minimum, but this world requires not enough ids, as well as whatever the roof was made of, I can't really figure out either right now since the world data appears to either be corrupt or missing.

@davqvist I created this setup, with the hardened clay you were talking about. I'm not seeing any issues in this setup, especially since its causing ridiculous chunk updates with that glowstone moving back and forth every 2 or so ticks. Do you have any other information to provide?
image

commented

https://www.twitch.tv/videos/155631940 starting from 1:50:45 trying to debug it for the next 15 mins or so. Today I removed the Hardened Clay and replaced with Flat Colored Blocks off camera for a big improvement. Like you can see the FPS goes down by about 30 on block updates and as it averages out over several ticks in the F3 screen the actual FPS exactly on the block updates is way lower. First I started with blocks having the lava bits in them and later I tried (as we suspected the lava bits being the problem) removing them for not really a much better effect. The only difference I can see is that I used blocks with different bits combined compared to your setup. If you want I could maybe search for a backup having those blocks or try to somehow recreate the world and offer it to you.

commented

@davqvist I think in your setup it might have to do with the poly count of those blocks, though based on your F1 settings it looks like C&B should be using its async rendered, I'm sort of confused as to what is going on there.

Did you confirm if your issue was also caused by a change from 12.12 to 12.14?

commented

Hmm that's a head scratcher, the instance I copied I've tested to work, so I don't know why the world wouldn't load, windows doesn't like the world folder name maybe? I'll tell you what I'll do, I'll take the roof apart in version 12.12 and then rebuild it using version 12.14 and see if I'm still having the issue. As for the blocks being used, Basalt from Environmental Tech and Jacaranda Wood Planks from Biomes O' Plenty.

Update: OK as I was replacing the parts in 12.14 the chunk update lag was increasing as I placed more and more of the parts in that chunk. If it's anything I'm inclined to believe it's an issue with the Basalt, the roof is mostly basalt just one bit wide at a diagonal, with the wood to fill in the gaps that make sense, given the amount of lag I had after placing just the edge pieces that have the wood as well.

commented

No. I don't know for sure if this is caused by the update. I beta tested my pack from January to March and haven't played since. Didn't have any problems back then.

commented

I can zip my server instance folder up for you if that would help, although I expect the issue is client side rather then server side but at least that should let you duplicate it. I've updated the server configuration files to disable whitelist and set the port back to default. Building is at x:209, z:257.

http://www.skid-inc.net/stuff/AllTheModsBk.zip It's just shy of a GB in size.

Failing that I can just white list you on my server and leave it running for you if that's easier.

commented

I get more and more reports about people getting block update lag with C&B. Someone had Flat Colored Black and Grey Blocks mixed and it different shapes and forms and it caused crazy block update lag.

Let me know if you need something and I see if I can help you.

commented

If anyone can produce a world that demonstrates the issue with just C&B or C&B and FCB That would be very helpful, once I have a working example in the dev environment I'll be able to track down the issue.

Unfortunately @Skid-Inc 's world did not load even with all the mods / config, and it was probably too complicated to get into my dev environment anyway. Not sure what went wrong with this,

And my attempts to reproduce the issue as demonstrated above seem to not show any issues from what I can tell. Based the one video and descriptions, I've assumed that the issue should be much more pronounced.

commented

I've been having a similar issue to @davqvist and have reproduced it in a just-C&B-and-FCB world:

2017-07-08_22 17 31

Note that the block I'm placing and breaking is not actually chiseled, but a bunch in the surrounding area are. (I specifically made a mesh-of-stupid in order to bump up the poly count, but I was having the same stutter-on-block-update issue using sane-looking (albeit still pretty detailed) blocks in a random-agglomeration-of-mods pack).

Stuff you'll definitely want to know:
Minecraft 1.11.2
Forge 13.20.1.2393
C&B 13.11
FCB 1.11-5.2

Here's the world zip:
LetsLag.zip

commented

I didn't change the config at all from the default, though if you like, I can still upload it for you.

What I'm seeing, specifically, is when I break/place a block, there's a little stutter (a fraction of a second). They correspond to the red spikes in the alt-F3 graph. To make it more noticeable, try doing little circles with your mouse (keeping the crosshair on the same face of a block, just keep the camera angle changing constantly/smoothly) while placing/breaking blocks. It makes the stutter I'm seeing much more noticeable.

Also, as the issue was much more pronounced in my non-test world. (I'm not sure whether the majority of the chiseled blocks had enough faces to switch render modes, is there an easy way I can determine whether a chiseled block is being switched to the other mode?) In particular, I'd like to be able to do two tests: one with a spam of not-quite-complex-enough-for-render-mode-switch, and one with a spam of way-the-hell-too-complicated (akin to the test world I already did, but where I actually do things in a more controlled manner as opposed to my haphazard spamming of random crap.

commented

I'd imagine its using the other renderer if your not seeing 2-3 second pauses per break, your super complex blocks far out strip the way the MC by default re-generates its chunks, I suppose I miss-understood your description.

The example @Skid-Inc provided was what I was expecting from yours. Though I should ask @Skid-Inc to see if his config is the default, or if it has at all been tampered with, mod pack or otherwise.

I do notice small micropauses, as MC is regenerating the chunk with those mildly complicated blocks you have in the ground, you can remove them by telling C&B to prefer the dynamic renderer in more cases, but its not that bad. The choice is up to you on that front, I made two minor improvements based on my testing however. Neither one I would imagine would solve the issue that @Skid-Inc describes, which is soul crushing pauses when doing chunk re-builds.

commented

I've copied the chiselsandbits.cfg file to here: https://pastebin.com/j2uCGDtG I've not touched it so it should be the default one that came with v3.00 which had 12.14 (assuming updating the pack update the config files as well).
My minecraft settings are here: https://pastebin.com/jdnDHyNx
ATM also has BetterFPS installed, it's settings are here: https://pastebin.com/Jz9jTyZS
Game is launched with 12GB of memory available to it.

commented

@Skid-Inc thanks, it looks pretty standard, I didn't see anything out of place.

If you could maybe try using jvisualvm to sample it, directions here and send me the sampling results you get using the problem build and problem setup, capturing 20-30 seconds of problematic behavior would be good, it would probably point me in the right direction. I'm at a loss for anything else at the moment.

Based on the video it seems like issue might be that its not using the dynamic renderer, but in my tests its work fine, and those settings appear to be the default behavior.

commented

@Fractangle I get one lag spike when I break a block for the first time, after that the game runs buttery smooth. This is expected as C&B Detects the overly complicated models and switches its renderer internally for those blocks allowing them to be rendered outside of MC's standard chunks.

If you are not seeing this behavior, please do two things for me, provide your config, and then backup your config, and let C&B re-generate the default.

commented

Here is my example in the same spot,
image

commented

If anything it's worse, but it might be hardware differences. Whenever I place a block (even if it's just a "normal" block) there is a 4-5 second freeze before everything starts moving normally again. This does not happen if I revert to version 12.12

Here is my snapshot
https://www.dropbox.com/s/pi5tez2zk7dz4ez/XunSnapshot.nps?dl=1
and my config just in case
https://www.dropbox.com/s/uq78hqb4rr6ht6d/chiselsandbits.cfg?dl=1

commented

Yeah, its pretty specific in the report, almost the entire sampler report is inside "findQuadTexture" which is unusual, I wonder if the caching is broken for some reason.

Thanks for the report, I'll see what I can figure out based on it.

commented

Has anyone followed up with you with jvisualvm results? I'm getting a similar issue with the default configs using version 12.14 in 1.10.2. However I have not reproduced the update lag on a fresh world with just CNB installed so I believe it has to do with my build complexity or a weird mod interaction.

commented

No so far, I'd be willing to look over the jvisualvm data if anyone can provide it. Is your update lag as extreme as was demonstrated in the video? or more minor akin to micro pauses?

I'm willing to look at sampled data in any case, if someone provides it, its usually easy to deduce the cause in one way or another, though sometimes it might just be slow vanilla code causing issues, the only way to tell is to look however.

commented

It seems to be working now! I've been playing around with it and have not noticed the lag coming back

commented

Thanks for verifying, I'll push out a official build with the changes soon,

commented

Sorry for not getting that data to you myself, I'm in the process of moving home so I couldn't find the time.

commented

No worries hopefully your issue is indeed what I fixed, it certainly is more than plausible.

I've released the new builds now, so all three MC versions, 1.10, 1.11 and 1.12 all contain the fix. If you ever do get around to confirming the fix @Skid-Inc I wouldn't mind the extra verification, if there was some other issue I would want to track it down.

For now I'll go ahead and mark the issue as resolved.

commented

Just wanted to chime in and say we were having this exact issue as well with 12.14. When we sampled it with VisualVM we noticed findQuadTexture using up a lot of the CPU as well.

It no longer happens with version 12.15, thanks!

commented

Glad to hear it.