Bobby

Bobby

4M Downloads

1.1.0 not compatible with starlight

xpopy opened this issue Β· 23 comments

commented

When using starlight none of the chunks loaded by bobby are lit at all

commented

Apparently, when using Iris + Sildurs lite shaders this problem goes away...

before
after


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.

commented

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.

commented

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

commented

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?

commented

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

commented

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?

commented

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

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.

commented

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

Still 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.

commented

Wondering if Bobby is still active......

commented

Any progress on this front?

commented

Bump bc I would like this feature to be fixed

commented

I can bump that, i would really like to see this fixed, as it's a really cool mod overall.

commented

Any progress yet?

commented

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

commented

@Johni0702 Mega bump, this should be fixed by now, or at the very least not left unanswered.

commented

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.)

commented

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.

commented

I encounter this with Starlight RC2 and bobby 1.1.4 as well, but chunks are reliably not lit outside the view distance.

commented

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

commented

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.

commented

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.
2021-03-22_18 39 09
2021-03-22_18 48 37

commented

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.

commented

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.