I'm a little bit at the end of my rope when it comes to performance problems in my game Airscape.
Here's where I'm at currently:
- On any machine without a decent dedicated GPU, when the game isn't at a tiny resolution, the game runs like trash (This is unclear, but I'll get to it in a moment.)
- The performance problems are definitely caused by a GPU fillrate bottleneck. If the window size is small enough, it runs perfectly, even on integrated graphics setups.
- The FPS doesn't actually drop too low (at least in Chrome.) On my integrated graphics tests, the game drops to about 30fps at 1080p resolution. This FPS should be perfectly playable.
- In Chrome (and subsequently NW.js, my export platform for Steam etc), the game is unplayable at any FPS below 60 when fillrate bottlenecked. This is due to severe jank and input latency.
- Ah, I mentioned jank! Well, I don't actually think this is directly related to this famous issue, as this seems to be strictly fillrate related, includes input latency, and only effects sub 60fps framerates.
- I've found that Internet Explorer (?!?!?!?!) handles this issue better than Chrome. This is pretty shocking.
- Even more shockingly, in my limited testing, disabling webGL only had a relatively small performance impact. I have no idea if this is even related. I might do more testing with this but it's a bit finnicky as there's no way to enable/disable webGL at runtime.
Anyway, nobody wants to hear me whine about the issues I'm having! I'm looking for solutions, and that's where I need your help!
So, first of all, I've submitted a Chromium bug report. It would be fantastic if you could take a few seconds and star this issue so that Chrome will at least have a look at it. I've talked with Ashley about this being a C2 issue but he's assured me that C2 doesn't handle stuff like vsync and input latency.
If you'd like to be a bit more helpful, I'd encourage you to try the stripped-down demo for yourself (especially if you have a weaker machine) and post your thoughts and results here and/or on the Chrome issue. Be sure to mess around with the resolution in esc>options>settings>video.
Also, it's totally possible that I've made some sort of mistake, or that there's something I can do to negate this issue. (I should clarify that I'm not asking how to reduce fillrate by reducing shader use etc, but to get a better performance with a given fillrate.) Anyway, if that's the case, or if you have anything at all you think might be valuable in my case, please do let me know.
Thanks for your time, I really appreciate it.