1.1.0 not compatible with starlight
xpopy opened this issue Β· 23 comments
When using starlight none of the chunks loaded by bobby are lit at all
Apparently, when using Iris + Sildurs lite shaders this problem goes away...
Good news for w/out shaders:
According to this issue on the Starlight repo: #38
The lighting data is stored in the chunks, meaning that you could use said information in your passes.
Obviously, a specific compatibility stub would be needed, but it could be done, it also seems like @Spottedleaf 's made a public function just for compatibility here.
When / if a compatibility update is released, can we get a 1.16.5 build? Some of us don't want to move to 1.17 just yet but the unlighted chunks are quite annoying.
The unlit chunks can get annoying, if there is a way to fix this than that will be very useful as I can actually use this mod
Well if the problem is caused by bobby bypassing light engine then I suppose adding an option of not doing that may fix this? πOr do this automatically if Starlight is present as well?
I tried to fix this by also intercepting queries to Starlight's light engine but that apparently was not sufficient to fix it, at which point I gave up hoping for an easy fix and decided I'll return to it once starlight gets sufficiently stable for me to use it myself.
starlight just got it's official release:
https://modrinth.com/mod/starlight
it should be stable now
C2ME got a feature kinda similar to Bobby's - "no-tick view distance" - "allowing render distance to be higher than 32" and it works fine with Starlight. Perhaps some code inspiration?
I tried to fix this by also intercepting queries to Starlight's light engine but that apparently was not sufficient to fix it, at which point I gave up hoping for an easy fix and decided I'll return to it once starlight gets sufficiently stable for me to use it myself.
starlight just got it's official release:
https://modrinth.com/mod/starlightit should be stable now
Still doesn't work properly, I have all recent/dev releases and on none of them does this issue disappear.
C2ME got a feature kinda similar to Bobby's - "no-tick view distance" - "allowing render distance to be higher than 32" and it works fine with Starlight. Perhaps some code inspiration?
Doesn't work for me.
I tried to fix this by also intercepting queries to Starlight's light engine but that apparently was not sufficient to fix it, at which point I gave up hoping for an easy fix and decided I'll return to it once starlight gets sufficiently stable for me to use it myself.
starlight just got it's official release:
https://modrinth.com/mod/starlight
it should be stable nowStill doesn't work properly, I have all recent/dev releases and on none of them does this issue disappear.
of course the issue doesn't disappear, because johni didn't fix it yet. look at the message that i replied to. he said, that he would try again fixing it once starlight is stable and safe to use. so now that it has a stable release, i wanted to inform him about that.
I can bump that, i would really like to see this fixed, as it's a really cool mod overall.
I can bump that, i would really like to see this fixed, as it's a really cool mod overall.
yeah and especially given that starlight is REALLY helpful with frame drops when using bobby
@Johni0702 Mega bump, this should be fixed by now, or at the very least not left unanswered.
Please stop bumping issues. Everyone's aware of it; bobby isn't flooded with open issues. All that does is send a useless notification to everyone who is subscribed to the issue. Instead, just give the original post a thumbs up. That way one can see that there's demand without indirectly pinging everyone. Only reply if you've got valuable info to add, e.g. if you've found a reliable way to work around the issue or you are working on a fix / have fixed the issue.
As for progress, given I haven't replied, no, there hasn't been any. My last reply on the starlight side still applies:
Yes, but it's not particularly high priority for me [...] because [...] Bobby as of version 1.1.0 (which is why starlight was compatible with earlier versions) completely bypasses the lighting engine for all fake chunks. So whether you use vanilla or starlight will make absolutely no difference [as far as performance is concerned] for the fake chunks [...].
Now, starlight will still ofc have an effect on the real chunks sent by the server (and on the server-side for singleplayer), so compatibility is still desirable but, as mentioned in the comment linked above, I tried and couldn't get it to work within reasonable time, so it is what it is until starlight leaves beta and I [find the time to] try again.
(Or someone else does. Both, starlight and bobby, are free software after all, anyone who's interested can fix this issue.)
Good news is: Phosphor for 1.17 is officially released, which doesn't de-light fake chunks, and...uh... Guess it provides a temporary "fix" for those who don't mind replacing starlight. Sorry to annoy all of you, just want to notify people who yet don't know.
I encounter this with Starlight RC2 and bobby 1.1.4 as well, but chunks are reliably not lit outside the view distance.
The weird thing about this issue is that Optifabric + Optifine + Starlight doesn't have this issue. In the videos below you can visualise the difference by looking at the water
Video of bobby and starlight:
https://gfycat.com/glossyneglectedfulmar
Video of Optifine and Starlight:
https://gfycat.com/boilingsneakyinganue
That's not weird, that's just cause Optifine does something completely different from this mod.
In particular, Optifine just lets the chunk geometry hang around even after the chunk itself is already unloaded, longer than they normally would (and does so in a questionable way implementation-wise, it just removes the unloading, that's all it does), whereas this mod actively loads chunks from the cache, so you don't need to run around to load everything every time you reconnect, teleport or change render distance or other options.
And loading lots of chunks (at 96 render distance, that's 37k chunks, for comparison on a server with a view distance of 8 you've only got 289 chunks loaded, so bobby needs to load 129 times as many) into Minecraft's lighting engine is slow (and in a way where it gets much slower if loading were to be spread out over some time, so that doesn't help; and same applies to unloading as well). To get around that, bobby skips the lighting engine completely (see #18 (comment)) which allows it to load that many chunks without freezing the game for 5 seconds as it used to before version 1.1.0.
I can add to this. Chunks that have been frequently loaded are lit meaning that some chunks on the outer edge of your render distance aren't lit. This isn't much of an issue as when you get within the server's render distance to them, the light properly. It might just be annoying for people you like taking screenshots.
I don't think it has anything to do with frequently visited chunks. It makes sense that anything outside the view distance to have this problem because Starlight uses a different format for the skylight data. However, it shouldn't be too difficult to detect when Starlight is loaded and then use its interfaces instead.
Starlight uses a different format for the skylight data. However, it shouldn't be too difficult to detect when Starlight is loaded and then use its interfaces instead.
Bobby no longer interfaces with the lighting engine at all for fake chunks since 1.1.0, instead it intercepts any query for light data if it is for a fake chunk and returns its saved data instead.
The immediate incompatibility seems to stem from the fact that Starlight also intercepts any query for light data (and redirects it to its light engine) but for all chunks and higher up in the chain than Bobby, so it never gets to the point where Bobby would supply the data for the fake chunks.
I tried to fix this by also intercepting queries to Starlight's light engine but that apparently was not sufficient to fix it, at which point I gave up hoping for an easy fix and decided I'll return to it once starlight gets sufficiently stable for me to use it myself.