
Dolphin Emulator and OpenGL drivers - Hall of Fame/Shame - delroth
https://dolphin-emu.org/blog/2013/09/26/dolphin-emulator-and-opengl-drivers-hall-fameshame/
======
kalleboo
> One person, working mostly alone, produced better quality drivers than a
> whole team working at Qualcomm

Does anyone have any insight into how this ends up happening? Are Qualcomm
just understaffing that team, hiring incompetent people, deprioritizing it
(let the intern do it)?

~~~
smtddr
Part of the answer is in the next sentence:

 _> And because nobody seems to care about these issues_

The word "quality" is very subjective in this case. Perhaps the driver already
did everything Qualcomm needed it to do. Maybe the code isn't perfect, but if
it's working and money is being made... "if it ain't broke, don't fix it". I'm
sure a non-trival amount of people on HN have worked in less-than-good
codebases, but finite resources & politics kinda prevents you from cleaning it
all up with weeks of re-factoring and testing. I know I've seen this.

~~~
megrimlock
One reason I've seen these projects (take an existing system and make it work
well) fail to gain traction is an unstated lack of faith in the people pushing
for refactoring. In my experience this often comes from others having been
burned by their prior proposed projects, where they've wasted 6 months doing
self-indulgent refactoring that went nowhere or _introduced_ bugs or made it
hard for the rest of the team to contribute because of a bunch of new
abstractions "to make the system flexible and generalized". The same people
who care about code quality enough to argue for a cleanup project sometimes go
overboard and burn their credibility. Unfortunately the right mix of judgment
is hard to evaluate in any sense that isn't super-context-dependent.

------
orionblastar
If I was GabeN and wanted to sell the SteamMachines and distribute SteamOS I'd
offer to help these companies debug their OpenGL drivers so that Linux/SteamOS
driver support is top notch by the time SteamOS and SteamMachines launch in
2014.

By helping out the FOSS community to have better OpenGL driver support it will
get Valve Software a lot of goodwill. Projects like Dolphin will benefit from
it, and of course those Steam Linux games will as well.

I really want to see the Linux Gaming Platform take off, many game developers
avoid Linux ports because of buggy OpenGL drivers and bad support of it. I
think Microsoft did this with DirectX standards because I remember early on
DirectX drivers were buggy and game companies wanted to stay with DOS based
games and not port to Windows, because DOS had better video support drivers.
Once Microsoft worked with video card OEMs to improve their drivers and
DirectX support, the video game companies ported their games to Windows 32 bit
format (Windows 9X and then later NT/2000/XP) because of DirectX based
libraries and better drivers and fewer bugs. It will take a company like Valve
to coordinate the OpenGL stability between OEMs to get it stable enough to
port games to Linux.

~~~
thelukester
I've been gaming in Linux with both native and Wine/CrossOver games(free year
thanks to Bush) for over 8 years now. Drivers are the biggest issue. There are
2 main issues here. First is quality. The video card manufactures need to
dedicate additional resources to bring the drivers up to the quality of
Windows.

The second issue is with the driver subsystem. The kernel developers need
either a) stop breaking the existing driver interface ever other release or b)
create new modern interface that's stable like MS did with Vista.

Imagine if every windows update, you had to worry about you games not working
because MS might break the drivers. This is how Linux is now. This situation
is especially bad for users with old and very new cards. For example, my X1900
can't run the catalyst drivers with any modern kernel, making it useless in
Linux as my spare gaming rig. Of course it works perfectly in Win7, running
about 2-5x faster than the worthless, buggy, open source drivers.

Fixing the video driver subsystem is exactly the kind dedication that would
prove to me that Value is serious about making Linux a competitive gaming
platform and likely convince me to purchase a SteamMachine.

~~~
Jonimus
The kernel developers will never stop breaking internal interfaces. Them being
able to break internally is how they are able to move so fast and improve as
fast as the kernel does. Programs written against Linux's external interfaces
many moons ago will continue to work indefinitely, the issue is Video drivers
need to work internally with the kernel are arguably even violate the GPL.

------
randallu
Qualcomm being at the bottom is counter to my experience in writing GL ES 2.0
apps on Android (since the Motorola Droid!). Adreno generally performs very
well, and doesn't have weird performance characteristics like Mali and SGX. I
also like Tegra because it has solid predictable performance. A big part of
why Qualcomm have been cleaning house in the Android world is because they
have a more solid BSP, so compared to the other ARM guys they have a pretty
good software group.

I don't use most of the extensions that the Dolphin guys are using, though,
and I wouldn't expect anything but the most basic ES 3.0 stuff to work. But
maybe spending so many years on mobile has taught me to have low expectations!
:).

~~~
masklinn
> But maybe spending so many years on mobile has taught me to have low
> expectations! :).

This, and the post is not solely about performances. In fact, it's only a
minor component, most of the notes and complaints are about outright bugs and
broken implementations.

And of course, you "wouldn't expect anything but the most basic ES 3.0 stuff
to work" while the Dolphin guys are porting down from desktop-class graphics
backends.

------
Pxtl
This fits with what I've seen in other OSS projects - nVidia provides the most
complete and robust implementation of OpenGL, Intel does pretty good but it's
too slow and restricted to be useful anyways, and ATI/AMD basically needs you
to code specifically against their device.

------
AlexMax
Isn't there something approaching the Acid2/3 test for graphics drivers? It
seems like the popularity of the Acid tests was beneficial for the browser
ecosystem...it was an easy and standard thing to point to.

~~~
slacka
The Khronos group has OpenGL and OpenGL ES conformance tests. Unfortunately,
they are not public and you have to be a member to access them.[1] The only
public OpenGl test that I know of is the piglit suite.[2]

[1]
[http://www.opengl.org/discussion_boards/showthread.php/16354...](http://www.opengl.org/discussion_boards/showthread.php/163549-Conformance-
Test)

[2]
[http://people.freedesktop.org/~nh/piglit/](http://people.freedesktop.org/~nh/piglit/)

------
ZoFreX
How do you release a driver that messes up glClear? How could you possibly not
notice that?

~~~
randallu
Mali has a different architecture than desktop GPUs, so glClear generally
isn't implemented as a clear op (or drawing two triangles that cover the
viewport, etc). It clears out all of the commands that were previously
scheduled for that target.

But yeah, the Mali driver has various performance quirks and oddities (there
used to be a lot of weird stuff around how you updated index buffers too).

------
malkia
Wondering how google's angle (GLES through D3D) fares in this respect?
[https://code.google.com/p/angleproject/](https://code.google.com/p/angleproject/)

~~~
slacka
Firefox allows you to use switch your WebGL Renderer from default ANGLE to
native OpenGL drivers with the webgl.prefer-native-gl about:config parameter.

You can then run the WebGl Conformance Tests[1]. I found that my integrated
Intel did better in ANGLE and Nvidia card did better with native drivers. Epic
Citadel WebGL also slightly faster with native Nvidia.

[1] [https://www.khronos.org/registry/webgl/sdk/tests/webgl-
confo...](https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-
tests.html)

------
guard-of-terra
I wonder why this happens. I mean, making chip is thousand times harder than
writing driver. Why screw that last stage up?

------
sinkasapa
I was really hoping that this was about an actual dolphin emulator.

~~~
mparlane
Just like the Dolphin Browser let's you browse through different types of
Dolphins ;)

------
smithzvk
This really puts a damper on my excitement for the Nexus 5 (or whatever it
will be called). I hear that it will be running an Adreno GPU. On the other
hand, I guess it is going to be rough no matter what option you pick in the
mobile world.

~~~
antimagic
Tegras are actually pretty good - their fillrate isn't as high as some of the
competition, but their overall global performance is impressive.

(just to be clear, I'm just saying that the mobile space doesn't have to be
horrible, so the adreno doesn't really have that as an excuse).

------
anonymous
There should probably be a wiki somewhere, where bugs like those are
documented, so various developers don't have to rediscover them all the time.

------
hawkw
I assumed this was about whole brain simulation / emulation. Needless to say,
I was disappointed.

