[1.16.5] Processing Block Layers Materials then rendering them with Optifine Render Regions and Flywheel On takes a long time
Kaleidio opened this issue ยท 7 comments
Describe the Bug
Processing block layers as reported by spark is taking over 20% of the framerate. this usually results in fps going from 700/200 in my pack down to 400/100. On lower end machines such as an intel uhd 625 this means the difference between 60 fps and 20.
Reproduction Steps
- Install a lot of mods that provide multiple layer block models in-world (supplementaries and when dungeons arise seems to be a good one)
- Run a world and look in the direction of as many layered blocks as possible. then turn away.
- Watch the framerate drop in ways that vanilla layered blocks don't.
...
Expected Result
The processing should not be taking this long on layered blocks. It seems flywheel has trouble instancing layers.
Screenshots and Videos
No response
Crash Report or Log
No response
Operating System
Windows 10 21H2
What is your GPU?
Most noticeable on Intel UHD 625
Mod Version
0.2.5
Minecraft Version
1.16.5
Forge Version
36.2.22
Other Mods
Kaleidio's Battle Pack dev build. Using quite a few mods. Bug works with any modlist containing lots of layered blocks that can be generated on world start.
Optifine, Flywheel, Supplementaries, When Dungeons Arise, Async Entity Culling
Additional Context
I am also dealing with seeing if other mods might be colliding with block layers and will update this issue as necessary. Here's an image of the spark profile
note: if flywheel backend is turned off, the issue basically disappears and I can have framerates climb as high as 900/300
the behaviour seems to be it's trying to instance render layered blocks that are also tile entities, tile entities of which entityculling mod is also trying to cull because the player is not facing them. even still, when pointed towards with flywheel off, I get 500/200 fps..not 400/100.
Flywheel hooks into the renderBlockLayer
function to do it's own rendering. It doesn't "instance render layered blocks". Looking at the spark profile (could you share a link to it btw?) Flywheel takes no time at all, consuming 1.79% of CPU time, while renderBlockLayer
takes 21.82%. Not really sure what the issue is here.
the issue that renderBlockLayer goes down from 21% all the way down to 10% when flywheel's backend is turned off, speeding up framerate. I cannot provide spark profile of that specific moment as I lost it during a slew of testing but i can easily reproduce it tomorrow
Sure I'll take a look. If it's not much trouble, having a profile with flywheel on and one with flywheel off would be great for comparison.