Silent Gear

Silent Gear

19M Downloads

Extreme FPS drop when item is broken

AlexHailstone opened this issue ยท 5 comments

commented

Versions

  • Silent Gear: 1.16.5-2.6.30
  • Silent's Gems:N/A
  • Silent Lib: 1.16.3-4.9.6
  • Forge: x.x.x
  • Modpack: All The Mods 6
  • Optifine Installed: No

Expected Behavior

FPS to not drop when the item breaks.

Actual Behavior

Crafting a silent gems wooden axe, and when it completely broke my fps went from averaging 45-55fps to 2 fps

Links/Images

image
image

  • (Link)

Steps to Reproduce the Problem

  1. Craft a wooden axe, and convert it into Silent gems.
  2. Use it until the durability reaching 0 and shows the broken animation.
  3. FPS drops to 2-3 FPS until I switch to any other item slot.
commented

I've noticed the same thing whenever my stone pickaxe breaks. I'm early in the game so I can't tell if the same thing happens with pickaxes made of other materials.

  • Silent Gear: 1.16.5-2.6.31
  • Silent's Gems: N/A
  • Silent Lib: 1.16.5-4.10.0
  • Forge: 36.2.6
  • Modpack: All The Mods 6 v1.8.5
  • Optifine Installed: Yes, with Complementary shaders
commented

I'm not seeing any issues at all when I test this in dev. Probably a mod compatibility issue.

commented

i get this issue too when using ATM6 1.7.6 for 1.16.5

commented

Running into the same issue in the same modpack/setup, as well as general FPS drops when using silent gear tools. Ran a few profiles, and it seems like it's a mod compatibility issue with Astral Sorcery's ASM hook that modifies enchant levels?

Here's a link to a profile where I was sitting at 3-4 FPS, holding a broken shovel for a minute. Normally get ~90 FPS.
Connected to a multiplayer server so this is only a client profile.

https://spark.lucko.me/n1J3fl13bW

commented

@Tylian That's interesting. An Astral Sorcery class is calling the item's setDamage method over and over again. That unfortunately causes the item to repeatedly recalculate its stats, which is very expensive. That definitely looks like the cause of the slowdown.

A possible fix would be to check if the item is already broken in my GearHelper.setDamage method here.