Closed toad-dev closed 3 years ago
Made monitors blocks solid and got rid of the depth mask "blocker" layer. I'm not sure what the purpose of having this transparent front and depth blocker setup is
From memory (I could have sworn this was in a PR discussion, but it's not in search nor in my commit logs), there were some issues with the background and text z-fighting. I've no clue if this is true (definitely not for the TBO one), worth double checking this works with the VBO renderer too.
Made the TBO code path query the currently running program and resume it rather than assuming program 0 was running. I think it was a fair assumption with mostly fixed-function vanilla, but maybe this will help shader mod compatibility?
We did have this at one point, but given Optifine was broken with or without it, decided it wasn't worth it. Cannot comment on whether it'll work with on Fabric :).
I tested the depth blocker change with shaders and I think it might have made things worse in that area 🙃. Which is a shame because it seems to work great with vanilla rendering.
Made the TBO code path query the currently running program and resume it rather than assuming program 0 was running. I think it was a fair assumption with mostly fixed-function vanilla, but maybe this will help shader mod compatibility?
We did have this at one point, but given Optifine was broken with or without it, decided it wasn't worth it. Cannot comment on whether it'll work with on Fabric :).
You're right it doesn't seem to change anything, darn.
The original VBO path without my depth blocker change seemed to work fine with some shader mods IIRC from the issue thread. So I guess if I can figure out how to fix the vanilla stuff some other way I'll try reverting it and setting up this blacklist compat check. I'm not sold on the simple blacklist really as some of these shader mods are also used as optimization mods and it kinda sucks to give the person with the optimization mod a slower rendering technique on the chance they're using shaders... but also, what percentage of users are actually hanging out in worlds with lots of large monitors that are redrawn constantly, where TBOs make a difference? 🤷
Okay I reverted the depth blocker change and instead made it mask both the color and depth buffers, hoisted it up to render before the terminal, and offset the terminal to solve z-fighting while using the VBO path. This solves the bug of water and chests drawing over monitors and maintains compatibility with VBOs and Optifabric. As such I flagged optifabric as needing VBOs. Users with the default "BEST" option will have VBOs enabled automatically.
Canvas and Iris are both just still incompatible. They both don't like that we're not using vanilla defined render layers. I don't think this is worth fixing when all of this will likely have lto be changed for 1.17 anyway.
Here are some pictures of bsl and seus shader packs using optifabric. It does work, if you can call all that bloom "working" :)
Oh, that's no worse than Forge so I wouldn't worry. Good job on getting this working!
Things I changed: