Scirra cog

About Us

We're a London based startup that develops Construct 2, software that lets you make your own computer games!

Archives

Browse all our blog posts

Latest Blog Entries

We love brains!

Join us! Joiiinnn ussss! Mooooree brains!

Graphics card drivers: a lesson in software engineering

by Ashley | 23rd, January 2012

Construct 2 uses a hardware-accelerated Layout View while editing your project. This helps guarantee a snappy, responsive UI even when editing very large projects. However, this has also exposed us to one of the most awful areas of software engineering I have ever seen: graphics card driver bugs. Graphics card drivers are wrong on every level, right the way from "Do they work?" (often not) to "Can I get a fixed one?" (either no, or with difficulty). Why is this such a tough area?

In software engineering, there's a really good, sensible rule: slow and correct is better than fast and broken. In other words, a really fast program which doesn't work is obviously not as good as a slow program which works. Construct Classic, the predecessor to Construct 2, was a victim of over-optimization: it was incredibly fast, but also had some really awkward bugs that were difficult to fix because of the really cool, clever optimizations we did. A few games didn't work because of these bugs. We certainly learnt our lesson: it would be better if our engine was a little slower and all the games worked. This is the approach we took for Construct 2: it's still designed to be as fast as possible - it's just reliability is the top priority and will take precedent over performance if need be. It's no coincidence Construct 2 is far, far more stable than Classic.

If you didn't know, the driver is a bit of software which talks to your graphics card. It's a key point for both performance and reliability of graphics in general on your computer.

For years graphics card makers like ATI and nVidia have lived in a cut-throat world of competing over performance. If one graphics card scores 5% on a performance benchmark than another of the same cost, chances are everyone marches off and buys the faster one. I guess the engineers behind the drivers know the rule that slow and reliable is better than fast and broken. However, with extreme pressure over long periods of time, I suppose management or marketing got their way: cut that reliability check there to save a bit of performance... remove that null check... assume this combination of calls never happens... bingo, another few percent on the benchmark.

Here is a list of some real issues we've had reported by our users. They have all been fixed by the user updating their graphics card driver:

  • Crashes every time on startup
  • Objects appear as empty rectangles
  • Crash closing down
  • Glitches and other deformed graphics

These have occurred across all major graphics card vendors. Nobody does well here. We even used to have a hardware-accelerated image editor, but there were such serious reliability issues we reverted to a software-rendered one instead. As you can see, these issues range all the way from minor issues to making Construct 2 totally useless. Again, slow and working is better than fast and broken! Still, pretty much every time we just get the user to update their driver and everything is sorted: it works fine, and the editor is really fast as well.

It's not always that straightforward though. Sometimes old hardware is no longer supported with new drivers. So they have ditched you with broken drivers and no solution. If this happens to you, don't buy from them again.

Then, sometimes the graphics card maker updates their drivers, but nobody is allowed to install them. It really is that insane. I've seen lots of cases where for example nVidia release a new driver with lots of bug fixes, but they are not allowed to install it on any ACME laptops. Instead, if you have an ACME laptop, you have to go to ACME to get the new driver from nVidia. However, ACME may be lazy, or not care at all about the problem, and not update the drivers on their site. So despite nVidia fixing the problem, ACME users are stuck with broken drivers. This happens a lot too. If this happens to you, don't buy from that manufacturer again; you should buy from a manufacturer who cares about supporting their products.

If you're lucky enough to have a manufacturer who does have a modicum of concern about drivers, you may still be sent through the most twisted, contorted upgrade processes you've ever seen. Once I ended up browsing an FTP directory of files named setup00010.exe through setup53065.exe. Thanks to Google, I actually managed to find the one that matched my hardware and software configuration. It would be nice if they had tried to be a little more helpful though.

With WebGL appearing on the web now, the poor engineering of "fast and broken" in graphics card drivers has actually become quite a serious problem, exacerbated by vendor apathy. Some kinds of crashes can take down the entire system on Windows XP (although Vista and 7 can recover from this type of problem). However, thanks to diligent work by browser makers, only stable drivers are supported for WebGL. This means malicious websites can't exploit buggy drivers - but on the other hand, if you have buggy drivers, you get no WebGL support. It's not the end of the world though, since for Construct 2 games you'll just fall back to the slower 2D canvas. However, it's somewhat embarrassing for the graphics card maker if in such a huge effort to make their graphics card as fast as possible the browser maker blocks their driver and then the user gets poorer performance. Oops! It turned out that fast and broken is actually slow and broken, and slow but works is actually faster and works!

It should never have ended up like this, but it's time things changed. Graphics card makers should make reliability a priority. If you are a customer looking for a new computer or graphics card, ask about or research the reliability. Nobody sells graphics cards based on reliability yet, but it's an incredibly important point, so seek out the most reliable models and vote with your wallet.

And, of course, if you're having trouble with Construct 2, please try updating your driver :)

Now follow us and share this

Tags:

Comments

3
TELLES0808 22.0k rep

Always with Your good points and lessons, thx Ashley!

Monday, January 23, 2012 at 11:15:06 PM
3
tavitooo 5,063 rep

Very interesting to the general culture and lessons, thanks Ashley!!. you are the master :)

Monday, January 23, 2012 at 11:22:30 PM
4
DoubleElite 3,880 rep

I always look forward to your blog posts, they never fail to interest and amaze me. Great job!

Monday, January 23, 2012 at 11:28:34 PM
2
gammabeam 13.3k rep

Wow! Awesome post!
Very informative!

I am currently facing a very stupid problem where my new GPU freezes the entire computer ONLY ON Unreal Engine games. I play for 2-3 hours on heavy games like BF3 or Skyrim, but 40 seconds on a UE3 game (Rock of Ages, Dungeon Defenders...) and FREEZE. :P

Monday, January 23, 2012 at 11:34:00 PM
5
Ashley 190.4k rep

@gammabeam if UE3 is much more intense on the graphics card, it might be overheating! I guess it's a different issue, but running a desk fan in to your PC with the side off might help (this has actually worked for me in the past)

Monday, January 23, 2012 at 11:36:57 PM
1
gammabeam 13.3k rep

@Ashley
It looks more like a driver conflict... I'm finding the courage to go through my folder and prepare a backup to format the whole thing!

Tuesday, January 24, 2012 at 1:42:28 AM
2
chrisbrobs 7,881 rep

Excellent Blog....I always assumed that my card would not support WebGL, so I never bothered checking...Until today!
Just got the latest drivers and it does !!!!
(Inno 3d 6200 nvidia AGP) Keep up the good work.

Tuesday, January 24, 2012 at 2:02:51 AM
3
icemelt7 2,546 rep

I really like Construct 2's team ... There are an energetic bunch of people ... unlike huge corporations out there who never bother to write on their blogs even though they make consumer software ... I am talking about ACME, creators of PictureShop.

Tuesday, January 24, 2012 at 6:13:16 AM
1
Velojet 20.7k rep

@Ashley: I go along 100% with your very sound observations! Yes, give me slower and reliable every time. It's a great pity that engineering decisions are too often driven by the marketing department - but as you say, we can beat them at their own game by voting with our wallet for reliability.

Tuesday, January 24, 2012 at 7:17:05 AM
0
Bigheti 15.7k rep

Thanks for excellent explanation Ashley!
Like most people who buy a PC / Notebook is a novice with no knowledge of hardware ... the only option left to us developers is communication: to be proliferated by every media known to raise awareness and "END" millionaires with profits of companies without ethics and commitment to customers, makes us "swallow" hardware and bad software.
Fortunately we have a team that provides the C2 Scirra with excellent support. You are a score of 10!

Friday, February 03, 2012 at 10:23:58 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.