Skip to content

Compatibility warning with AsyncParticles: negative particle color value #19

Description

@Truhf0414

Hey! Big thanks for making Particle Tweaks — I really love how it makes particles feel, it's basically a permanent install for me at this point. Just wanted to drop a small compatibility note, nothing serious at all.

Environment

  • Minecraft: 1.21.11
  • Mod loader: Fabric
  • Particle Tweaks: 3.0.1-mc1.21.11
  • AsyncParticles: installed

What's happening

With Particle Tweaks + AsyncParticles both enabled, AsyncParticles occasionally prints a "Negative color value" warning in the log. The game runs totally fine — no crash, particles look normal in-game, nothing visually off — it's really just a little bit of log noise. Posting more as an FYI than as a bug report.

Stuff I tried

  • Particle Tweaks enabled → warning shows up every now and then.

  • Particle Tweaks removed → warning is gone.

  • Set every option in particletweaks.json5 to false → warning still shows up. So it doesn't seem tied to any specific toggle — maybe something in an always-loaded scale/movement mixin? Not sure.

A wild guess (probably wrong, feel free to ignore)

I noticed AsyncParticles seems to do a pretty strict check on color channels during render-state extraction, and the value it complains about is super tiny (like -0.014) — so I was kind of wondering if maybe somewhere along the way a particle ends up with a hair-below-zero color value that then gets caught on the AsyncParticles side. If that ever turns out to be the case, I imagine something like clamping RGB/alpha to 0.0..1.0 right before render might be enough? But honestly I have no idea if that's actually what's going on — just throwing the thought out there in case it's useful.

Log

[AsyncParticleRenderer-1/WARN]: Negative color value -0.014193296 detected. This may cause unexpected behavior. You can ignore it if nothing is broken.
java.lang.IllegalStateException:
    at knot//fabric.fun.qu_an.minecraft.asyncparticles.client.core.VertexHelper.getColor(VertexHelper.java:66)
    at knot//net.minecraft.class_9848.localvar$zfe000$asyncparticles$modifyColor(class_9848.java:513)
    at knot//net.minecraft.class_9848.method_61326(class_9848.java)
    at knot//net.minecraft.class_9848.method_61318(class_9848.java:245)
    at knot//net.minecraft.class_3940.method_60375(class_3940.java:76)
    at knot//net.minecraft.class_3940.method_60373(class_3940.java:72)
    at knot//net.minecraft.class_3940.method_3074(class_3940.java:62)
    at knot//net.minecraft.class_11940.mixinextras$bridge$method_3074$6(class_11940.java)
    at knot//net.minecraft.class_11940.wrapOperation$zzb000$asyncparticles$wrapExtract(class_11940.java:1529)
    at knot//net.minecraft.class_11940.method_74276(class_11940.java:25)
    at knot//net.minecraft.class_702.mixinextras$bridge$method_74276$37(class_702.java)
    at knot//net.minecraft.class_702.mdada029$asyncparticles$lambda$onExtractRenderState$0$0(class_702.java:1533)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1403)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

Again, really not a big deal — everything works, just a bit of log chatter. Thanks again for all the work on Particle Tweaks! 🙏

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions