Flywheel (Legacy)

Flywheel (Legacy)

40M Downloads

[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

commented

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

  1. Install a lot of mods that provide multiple layer block models in-world (supplementaries and when dungeons arise seems to be a good one)
  2. Run a world and look in the direction of as many layered blocks as possible. then turn away.
  3. 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

image

commented

note: if flywheel backend is turned off, the issue basically disappears and I can have framerates climb as high as 900/300

commented

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.

commented

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.

commented

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

commented

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.

commented

alright. I'll make sure to have them done tomorrow

commented

seems a mod I had removed also simultaneously fixed the issue which I did not entirely keep track of. Closing this issue unless it shows up again.