PandaMods-Dev / Pandas-Extra-Details

A mod that adds extra Details to Minecraft for both Forge and Fabric
https://modrinth.com/mod/pandas-extra-details
GNU General Public License v3.0
2 stars 0 forks source link

[Fabric - 1.20.1] Huge FPS drop in weird places #11

Open moninformateur opened 1 year ago

moninformateur commented 1 year ago

Hello! I'm building a modpack and was diagnosing for very weird FPS drops only in certain places. I have found the culprit to be Panda's extra details. I am not a modder and therefore have no idea why it does this, but I was able to reproduce it without fail so you can pinpoint why it does that.

Mod list needed to reproduce the bug

How to reproduce the bug Create a world with the following seed 633757983608502913.

You will spawn on an island. If you look at the birch forest, FPSes are high. image

If you look toward the ctov Pillager lighthouse, FPS immediatly go down by 70-90%. image

Close the game and disable Panda's Extra Details. Relaunch the game. FPS go back to what would be expected. image

ThePandaOliver commented 1 year ago

Thanks for the detailed explanation, i will try it out and fix it for the next update.

SettingDust commented 10 months ago

Running a spark profile is helpful

unoMato commented 9 months ago

Hello!

I have similar issue when playing with Starlabs Incendium mod.

To reproduce go in nether -> find and look/go inside structure [incendium:sanctum] https://stardustlabs.miraheze.org/wiki/Sanctum

With Pandas Extra Detail mod with extra detail

After disabling Pandas Extra Detail wo extra detail

List of mods I had also enabled - [1.20.1-fabric]-Epic-Knights-8.2 - appleskin-fabric-mc1.20.1-2.5.1 - archers-1.0.6+1.20.1 - architectury-9.1.12-fabric - ArmorStatues-v8.0.3-1.20.1-Fabric - athena-fabric-1.20.1-3.1.1 - autotag-2.0.2+1.20 - azurelibarmor-fabric-1.20.1-2.0.0 - backslot-1.2.15 - beautify-1.0.0+fabric-1.20 - beavermod-1.1.0 - Better-Combat-Bewitchment-Compat - bettercombat-fabric-1.8.3+1.20.1 - BetterF3-7.0.2-Fabric-1.20.1 - bewitchment-1.20-6 - Bountiful-6.0.3+1.20.1-fabric - c2me-fabric-mc1.20.1-0.2.0+alpha.11.0 - caffeinated-1.0.3 - CakeDelight-fabric-1.20.1-v3.0.1 - caracal-1.20-2.3.3 - cardinal-components-api-5.2.2 - chefs-delight-1.0.3-fabric-1.20.1 - chipped-fabric-1.20.1-3.0.1 - cloth-config-11.1.106-fabric - clutter-1.20-0.4.3 - combatroll-fabric-1.3.0+1.20.1 - completeconfig-2.5.0 - conjuring-1.0.28+1.20 - Couplings-1.9.4+1.20 - crawl-0.12.0 - create_jetpack-fabric-4.0.0 - createaddition-fabric+1.20.1-0.9.0 - create-sodium-fix-0.5.1-d-build.5+mc1.20.1 - create-structures-0.1.1-1.20.1-FABRIC - createutilities-0.1.3b+1.20.1 - Croptopia-1.20.1-FABRIC-2.3.2 - ctov-3.3.6 - ctov-beautify-compat-2.0 - ctov-chefs-delight-compat-2.0 - ctov-create-structures-1.0 - ctov-croptopia-compat-2.0 - ctov-farmers-delight-compat-2.1 - ctov-gazebo-compat-1.0 - ctov-paladins-n-priests-compat-1.0 - ctov-wizards-compat-2.0a - custom-portals-3.2.2-1.20.1 - doapi-1.2.8-fabric - dungeons-and-taverns-3.0.3 - dynamiclights-v1.7-mc1.17x-1.20x-mod - emi_enchanting-0.1.0+1.20.1 - emi_loot-0.6.5+1.20.1 - emi-1.0.24+1.20.1+fabric - emiffect-fabric-1.1.1+mc1.20.1 - emitrades-fabric-1.2.0+mc1.20.1 - entityculling-fabric-1.6.2-mc1.20.1 - expandeddelight-0.3.0.2 - extra-mod-integrations-0.4.1+1.20.1 - fabric-api-0.90.7+1.20.1 - fabric-language-kotlin-1.10.15+kotlin.1.9.21 - fabric-seasons-2.3+1.20 - fabric-seasons-croptopia-2.2.2-compat-1.0 - fabric-seasons-delight-1.3.9-compat-1.0 - fabric-seasons-extras-1.2-BETA+1.20 - fabric-seasons-terralith-2.3.7-compat-1.0 - fallingtrees-0.8-beta-fabric-mc1.20.1 - farmers-delight-fabric-mc1.20.1-1.4.2 - ForgeConfigAPIPort-v8.0.0-1.20.1-Fabric - forgottengraves-1.20.1-3.2.5 - frightsdelight-1.20.1-1.0.1 - gazebo-1.1.1+1.20.1 - geckolib-fabric-1.20.1-4.2.4 - handcrafted-fabric-1.20.1-3.0.5 - immersive_armors-1.6.1+1.20.1-fabric - immersive_melodies-0.1.0+1.20.1-fabric - ImmersiveThunder-1.20.1+1.2.2 - Incendium_1.20.2_v5.3.3 - indium-1.0.27+mc1.20.1 - iris-mc1.20.1-1.6.10 - Jade-1.20-fabric-11.6.2 - JadeAddons-1.20.1-fabric-5.2.3 - Jewelry-1.2.2+1.20.1 - JustMoreCakes-fabric-1.20.1-1.13.1 - Kambrik-6.1.1+1.20.1-fabric - letsdo-bakery-fabric-1.1.3b - letsdo-candlelight-fabric-1.2.7 - letsdo-meadow-fabric-1.3.3 - letsdo-vinery-fabric-1.4.6 - lithium-fabric-mc1.20.1-0.11.2 - midnightlib-fabric-1.4.1.1 - modmenu-7.2.2 - moonlight-1.20-2.8.66-fabric - moreculling-1.20.1-0.19.0 - multibeds-fabric-1.20.1-1.2 - naturalist-fabric-4.0.3-1.20.1 - Nature_Arise-fabric-1.20.1-0.5.0 - naturespirit-1.2.0-1.20.1 - Nullscape_1.20.2_v1.2.3 - opac-fabric-create-support-1.3.0 - open-parties-and-claims-fabric-1.20.1-0.20.0 - overweightfarming-1.20.1-2.0.3-fabric - owo-lib-0.11.2+1.20 - paladins-1.0.4+1.20.1 - Patchouli-1.20.1-83-FABRIC - Pehkui-3.7.11+1.14.4-1.20.2 - platforms-fabric-1.20.1-1.1 - player-animation-lib-fabric-1.0.2-rc1+1.20 - projectile_damage-fabric-3.2.2+1.20.1 - psychedelicraft-1.6.7+1.20 - puffish_skills-0.10.0-1.20-fabric - PuzzlesLib-v8.1.9-1.20.1-Fabric - recipe-book-delight-0.2.0-1.20 - reeses_sodium_options-1.6.5+mc1.20.1-build.95 - remove-terralith-intro-message-1.0 - resourcefulconfig-fabric-1.20.1-2.1.0 - resourcefullib-fabric-1.20.1-2.1.16 - runes-fabric-0.9.10+1.20.1 - shetiphiancore-fabric-1.20.1-1.2 - simplehats-fabric-1.20.1-0.2.0 - simplyskills-1.0.0+1.20.1 - simplyswords-fabric-1.51.5-1.20.1 - sliceanddice-fabric-3.0.0 - sodium-extra-0.5.1+mc1.20.1-build.112 - sodium-fabric-mc1.20.1-0.5.3 - soundphysics-fabric-1.20.1-1.2.1 - spell_engine-0.12.4+1.20.1 - spell_power-fabric-0.9.19+1.20.1 - Steam_Rails-1.5.1+fabric-mc1.20.1 - Structory_1.20.2_v1.3.3 - Structory_Towers_1.20.2_v1.0.5 - structure_pool_api-1.0+1.20.1 - supplementaries-1.20-2.6.30-fabric - tectonic-mod-mc1.19.3+-v2.1.1 - TerraBlender-fabric-1.20.1-3.0.0.169 - terraqueous-fabric-1.20.1-1.2 - The_Graveyard_2.9.1_(FABRIC)_1.20+ - tidal-towns-1.2 - time-and-wind-ct-1.4.7+1.20 - travelers-backpack-1.20.1-9.1.8 - TreeChop-1.20.1-fabric-0.18.3 - tree-hollows-fabric-3.1.0 - trinkets-3.7.1 - twigs-3.1.0-fabric - vanilla-refresh-1.4.19a - voicechat-fabric-1.20.1-2.4.28 - way2wayfabric-0.0.5 - wildlife-1.20.1-2.2 - wizards-1.0.4+1.20.1 - wraith-waystones-3.3.1+mc1.20.1 - Xaeros_Minimap_23.8.4_Fabric_1.20 - XaerosWorldMap_1.36.0_Fabric_1.20 - xercamusic-fabric-1.20.1-1.0.0 - xercapaint-fabric-1.20.1-1.0.0 - yosbr-0.1.2 - YungsApi-1.20-Fabric-4.0.2 - YungsBetterDesertTemples-1.20-Fabric-3.0.3 - YungsBetterDungeons-1.20-Fabric-4.0.3 - YungsBetterEndIsland-1.20-Fabric-2.0.4 - YungsBetterJungleTemples-1.20-Fabric-2.0.4 - YungsBetterMineshafts-1.20-Fabric-4.0.4 - YungsBetterNetherFortresses-1.20-Fabric-2.0.5 - YungsBetterOceanMonuments-1.20-Fabric-3.0.4 - YungsBetterStrongholds-1.20-Fabric-4.0.3 - YungsBetterWitchHuts-1.20-Fabric-3.0.3 - YungsBridges-1.20-Fabric-4.0.3 - YungsExtras-1.20-Fabric-4.0.3
ThePandaOliver commented 9 months ago

Im very sorry but after during a lot of testing, then i have identified that the these performance issues are not caused by Extra Detail's, its caused by Minecraft's terrible rendering system, i will of course do all i can to improve the performance.

unoMato commented 9 months ago

Main culprit for performance loss seems to be fence gates when this mod is enabled. [incendium:sanctum] structure is full of doors, trapdoors and fence gates.

I created new cretive super flat world and started placing down fence gates and performance got really bad (less than 60fps) in about 30 gates down. If I remove mod and load same world again i get 800-1000fps and can easily add more fence gates.

Doors and trapdoors don't have that much an effect for performance but fence gates kills performance quick.

@PandaDap2006 did you make same findings in your testings?

ThePandaOliver commented 9 months ago

@unoMato The reason behind the performance issues with fence gates is because of the amount of faces there is rendered.

Minecraft has 2 types of rendering methods, Static (Blocks in the world) and Dynamic (Entities, Block Entities and particles), the reason behind this is because the Static objects dont need to get updated that often and Dynamic objects do, so to save on performance, Minecraft some times compile chunks, these compiled chunks can then be rendered all in one go over and over again without needing to update anything, once they do need to update a chunk like when a block is placed or destroyed, then they can just recompile that one chunk, you could do the same thing for dynamic objects, but these objects need to update every frame so the animation is smooth, if we were to do that then that chunk would have to recompile every frame which would decrease performance much more then what we have now, thats all i found out with my testing.

Sorry if this is hard to understand, i dumbed it down as best as i could so everyone would understand.

SettingDust commented 9 months ago

https://spark.lucko.me/jYAB3G6PFi Huge fps drop reproduce

500 fps -> 50 fps when looking fence gates in a village