GTcreyon / SM63Redux

Code base for Super Mario 63 Redux
https://sm63redux.com
Mozilla Public License 2.0
193 stars 25 forks source link

Fix missing particles on android #270

Closed GTcreyon closed 2 months ago

GTcreyon commented 10 months ago

Description of changes

Fix particles not rendering on android due to GPU particles not being supported. Implements a compatibility class to help convert GPU particles to CPU particles at runtime - might need some work.

Issue(s)

Closes #269

GTcreyon commented 9 months ago

Should be all fixed now.

GTcreyon commented 8 months ago

@Koopa1018 Could this get re-reviewed?

Koopa1018 commented 8 months ago

D'oh, slipped my mind for a while! Looks like I got the entire build toolchain working before I forgot. Keystore usernames are still kicking my butt, but I've managed to build and test.

Turns out, this bug does not occur for me, at least not in debug builds. Particles show properly whether I'm on master or the fix branch.

Can you confirm whether debug vs. release has any effect for you? Because I might not actually be able to test this if not!

GTcreyon commented 7 months ago

Turns out, this bug does not occur for me, at least not in debug builds. Particles show properly whether I'm on master or the fix branch.

To be clear... you are testing on Android, right? It's an Android-specific bug. It also might be specific to my phone hardware.

I will make sure to test with debug on master.

Koopa1018 commented 7 months ago

Yeah, testing on a real Android phone (Motorola Moto G Play, not sure of the more specific details). Runs crazy slow (I blame debug builds), but it shows particles fine.

GTcreyon commented 2 months ago

Hm. I think I might just close this for now. I'm not very fond of the solution I came up with. It's hacky and weird, and hacky-weird stuff tends to cause unexpected compatibility issues, which is exactly what this PR was trying to avoid.

Besides, the benefit from using GPU particles seems negligible. Moreover, platforms that can handle GPU particles probably don't actually need them, so using this hacky solution at the risk of breaking functionality just so the rich get richer seems unreasonable.

Godot has also progressed in this time. The issue may have resolved itself, or affected devices may no longer be supported at all. The issue no longer occurs on my device, for one.

Closing for now. If anyone can replicate this issue, let me know.