We need to talk about the Jank!

  • Ashley Do you have any suggestions on how to deal with this?

    This isn't anything to do with the Construct engine, so I don't think I can offer any advice. It seems like a similar problem to dual-GPU laptops generally defaulting to the weak GPU. The graphics vendor forces the user to choose.

  • That's fine, but can we at least get some support by Scirra team, confirming similar finds and raising issues in other places, about this?

    I think it would be in the interest of Scirra that games created with your engine will run smooth for casual players, on laptops, and lower spec machines on "recommended" power saving modes etc.

    It's pretty bad marketing if a new potential C3 dev customer, opens C3 for the first time, tries some templates and notices janks and stutter previewing a simple built in template, on a laptop for example.

    That's exactly what happened to me, when I demoed C3 for peers and team, trying to convince them to invest in a few licences for work. I was demoing some small projects i made on battery, with recommended power setting, and they asked:

    -"what's all the jank about"? ,and that's why i started this thread for further investigation

    Or games exported still with C3 logo showing at start stutters for players on sites like kongregate etc.

    Plugging in power, and changing power mode are not obvious fix.

    I would probably also investigate if other engines have similar stutter, and If they are doing anything to mitigate it.

  • Well I can confirm that a laptop in battery mode runs terrible, BUT what about the fact that I (and some others?) experience jank on reasonably powerful non-laptop rigs? And in my case the jank seems to be tied to the text object beeing changed every tick. The problem goes away if I exchange it for a spritefont or only change it every 0.3 seconds.

  • Could people with the jank problem try this : vsynctester.com

    Does the janks appear here too (VSNYC on the right isn't always gray)?

  • Could people with the jank problem try this : vsynctester.com

    Does the janks appear here too (VSNYC on the right isn't always gray)?

    Mostly grey for me. Once every 15-30 seconds or so. Just slighty more fails on battery.

    Edit: well I take that back. Second run plugged in, It was failing constantly, at least the fist 30 seconds or so, then It get's better.

  • Mostly grey for me. Once every 15-30 seconds or so. Just slighty more fails on battery.

    Edit: well I take that back. Second run plugged in, It was failing constantly, at least the fist 30 seconds or so, then It get's better.

    The manual is quite interesting vsynctester.com/manual.html

    Under 4.3 : In Chrome on battery power, timer accuracy is reduced from 1ms to 4ms (which the Windows OS may then map to 2.5ms).

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • > Mostly grey for me. Once every 15-30 seconds or so. Just slighty more fails on battery.

    >

    > Edit: well I take that back. Second run plugged in, It was failing constantly, at least the fist 30 seconds or so, then It get's better.

    The manual is quite interesting vsynctester.com/manual.html

    Under 4.3 : In Chrome on battery power, timer accuracy is reduced from 1ms to 4ms (which the Windows OS may then map to 2.5ms).

    That's very interesting indeed. That might explain why I get less stutter in high-CPU heavy games on balanced mode/battery. Small simple games seem to stutter more, because the CPU winds down, reducing clock speed, and can't catch up fast enough when needed?

    Solution: Add a lot of junk events doing absolutely nothing else than increasing CPU load?... haha

  • That's fine, but can we at least get some support by Scirra team, confirming similar finds and raising issues in other places, about this?

    We can't be held responsible for the entire technology ecosystem. I discuss this in detail in my blog post Blame in technology, and the aardvark case.

    For example if nVidia's graphics driver crashes the system when playing a game, it's not our responsibility to investigate or diagnose the issue. It's nVidia's problem with nVidia's technology and the issue should be reported directly to them.

    Similarly, I'm afraid we are not responsibile for the way power management technology works in certain devices.

    Much larger companies might have the resources to investigate other company's technology for them - for example Google can afford to assign developers to investigate other company's driver bugs to help make sure the wider ecosystem is working as expected. They have mind-boggling budgets and thousands of engineers. Unfortunately we simply do not have the equivalent resources. We have three developers, and spending weeks researching other company's technologies will directly delay new features and bug fixes. Even if we still did it, there is likely nothing we could do about it anyway - we can't fix other company's technology for them. Sometimes this is just the nature of the beast, as I wrote about in that blog.

  • Solution: Add a lot of junk events doing absolutely nothing else than increasing CPU load?... haha

    Thats not such a crazy idea.

  • > Solution: Add a lot of junk events doing absolutely nothing else than increasing CPU load?... haha

    Thats not such a crazy idea.

    I actually just did a small test for that to test that theory out. Going to run it on my surface when i get back home.

    Increases repeat loop count if cpu is less than X, reduces the loop count if higher. CPU report updates only every 1 second though, so might be better to base it on dt, or a combination of the both.

  • Ok so I'm back with a test.

    I'm just looping something based on dt, to tax the cpu a bit, when dt is low, but reduce tax when dt is high. Seems to work well on Surface Pro 4, i5. I havn't figured out a formula to set the base value (5000) automatically but maybe someone else can help with that.

    Using this method i could run the test with very little to no, jank even on recommended power setting and battery.

    Here's a link to c3p file if anyone feels like investigating further.

    dropbox.com/s/imk1n0aatytqkef/janktest2.c3p

    edit: taxing the cpu on battery works well on some modes, but not on the lowest ones, might be that gpu is being throttled down as well. Adding some webgl effect to layer, seems to have a positive effect, but can't get it perfectly jank free with 60fps just yet.

    Seems like the less gpu and cpu is utilized on standard and low power modes, the worse performance i get.

    Checking, task manager performance task can give some indication on how many Ghz the processor is currently running at.

  • Power mode causing gc to jank, when it shouldn't? The plot thickens.

    I don't think that's a bug; pretty sure that's just what lower power modes are programmed to do

    When your laptop isn't plugged in, it prioritizes battery life over performance, so it's gonna have that same effect on everything your computer does unless you set your power settings differently

    It's probably just more noticeable with certain apps than others is all

  • Could people with the jank problem try this : vsynctester.com

    Does the janks appear here too (VSNYC on the right isn't always gray)?

    I'm running a rig with a GTX 1080Ti, i7-8700K and 32GB of RAM, which far, far exceeds the requirements of the standard user, and Chrome will still fall flat on that test after about 30 seconds.

    Chrome is fundamentally broken with regards to vsync, maybe one day it will be fixed, but Chromium have known about this problem for 4 years, so I'm not exactly confident it will be fixed.

  • Try exporting to NW.js v0.23.6 and see if there is still the junk.

    For me, the junk starts from v0.23.7 till the latest release. I think its a Chrome issue.

    I still use 0.23.6 for this reason...

  • No jank on any of my games, still on Construct 2 and my ( latest ( version of Chrome works perfectly on that vsync checker site.

    This is a 4 year old laptop, but used to be top of the line back then and is still pretty good

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)