fabulously-optimized icon indicating copy to clipboard operation
fabulously-optimized copied to clipboard

ParticleCore

Open ghost opened this issue 1 year ago • 4 comments

CurseForge link

https://www.curseforge.com/minecraft/mc-mods/particle-core

CurseForge Mod Distribution

Allowed

Modrinth link

https://modrinth.com/mod/particle-core

Source/other link

https://github.com/fzzyhmstrs/pc

Mod file size

91KB (Currently has a dependency though, read below)

License

MIT licenced

What it does

Optimizes particles by culling them and caches expensive lightmap lookups used by particles.

Why should it be in the modpack

I currently have all the essential mods (sodium, nvidium, immediatelyfast, lithium) But when I do a /sparkc sampler, I'm surprised to see that on the render thread, the top usage is renderWorld() -> renderParticles() -> buildGeometry().

So I'm wondering if there are any performance mods which notice and address this issue, lo and behold, I find ParticleCore, which has particle culling and optimizations to vertex transformations and lightmap polling (two big parts of buildGeometry())

I test the mod and with fps on unlimited it goes from 807fps to 992fps which is +22% in a town build that uses a couple dozen campfires to make smoke from chimneys (Take this with a grain of salt though, the PC sample size is 1, my PC)

Why shouldn't it be in the modpack

It depends on the authors config library, fzzy_config which is 1.2MB, this could easily be shaded into the jar and have the unused code excluded by the author if they agree.

Additional details

No response

ghost avatar Aug 24 '24 14:08 ghost

I did a few quick tests and found that I got a 10 FPS increase with this mod in the Hermitcraft Season 9 world and a 18 FPS increase in one brand new survival world. Overall, while there are improvements, I'm not sure how much of a noticeable difference it would make when you're not waiting for the FPS to stabilize. My hardware is a Intel i5-10210U CPU that uses Intel UHD Graphics.

10 FPS improvement in these areas: 1 2

18 FPS improvement in this area: 3

cochcoder avatar Sep 07 '24 22:09 cochcoder

I did a few quick tests and found that I got a 10 FPS increase with this mod in the Hermitcraft Season 9 world and a 18 FPS increase in one brand new survival world. Overall, while there are improvements, I'm not sure how much of a noticeable difference it would make when you're not waiting for the FPS to stabilize. My hardware is a Intel i5-10210U CPU that uses Intel UHD Graphics.

10 FPS improvement in these areas:

18 FPS improvement in this area:

These are pretty good gains, especially for such low-power hardware, but they will be even more noticeable if you try in a particle-dense area, try placing many campfires or visiting a build that uses campfires for chimneys of buildings.

ghost avatar Sep 10 '24 09:09 ghost

I did some more testing and the results seem to be all over the place. I did two tests in super flat world with only campfires and I get negligible results with the normal and 96 FOV. While in a super flat world full of torches. I get a negligible difference with the normal FOV, but a ~13 FPS increase with a 96 FOV! (Which would explain why I didn't see a difference in the Nether's basalt biome)

This mod does seem like a good addition, with the knowledge that it won't increase FPS by a noticeable amount in all situations with particles. My only concern is with the separate config mod needed being so big and how it might affect memory. But besides that, I currently see no real issue with this mod.

cochcoder avatar Sep 10 '24 21:09 cochcoder

I wanted to share my benchmark results even though they weren't the most intense test.

Test Methodology I ran these tests using MSI Afterburner. I made a minecart track that would loop around once over the particle section of this world. https://www.curseforge.com/minecraft/worlds/karaokes-ultimate-resource-pack-tester-map I used particle core's default settings and disabled the fzzy config mod for the test without particle core.

Average of 4 tests:

With Particle Core Without Particle Core
Average FPS: 199.1 Average FPS: 181.9
Minimum FPS: 124.0 Minimum FPS: 115.7
Maximum FPS: 313.9 Maximum FPS: 269.8
1% low FPS: 52.2 1% low FPS: 47.5
0.1% low FPS: 48.9 0.1% low FPS: 43.3

Analysis Average FPS: P9.5% improvement with Particle Core (199.1 vs 181.9). Minimum FPS: 7.2% higher with Particle Core (124.0 vs 115.7). Maximum FPS: 16.3% increase with Particle Core (313.9 vs 269.8). 1% low FPS: 9.9% improvement with Particle Core (52.2 vs 47.5). 0.1% low FPS: 12.9% better with Particle Core (48.9 vs 43.3).

Personal Notes I agree with SergioK29 that it shouldn't be in the modpack because it depends on the fzzy config library, which is 1.2MB. I had a smoother experience with this mod enabled.

System Specs i7-12700k, RTX 3060, 32GB 3600MHz.

Raw Data collected from MSI Afterburner. Particle Core Benchmarks.txt

BeastSlayer666 avatar Mar 01 '25 07:03 BeastSlayer666