Tag archives: gpu

Hacked Up: The Vertex Streaming Hack

Update: There is an issue with the Nvidia drivers that kept buffer storage from being utilized properly on Windows: they do not report the driver version. Since the Linux version of the driver reports its version correctly, the Dolphin devs assumed that the nvidia drivers would report it and used a version check to make sure ARB_buffer_storage was only utilized on drivers that actually support it. Because of this issue, even the latest drivers that support the function failed the version check and Dolphin didn't use buffer_storage on Windows. And thanks to an unrelated bug discovered later, the lack of buffer_storage wasn't detected in the initial testing. As of 4.0-722 the version check was removed and buffer storage is confirmed to be working correctly.

Unfortunately, that version check was there for a reason. Some driver versions tell Dolphin that they support buffer_storage, but actually don't. Any user caught in that situation will encounter a blackscreen. If you do, update your drivers.



One of the constant struggles in modern emulation is the battle between performance and accuracy. Throughout Dolphin's history, developers have added various tricks to get more performance out of computers - one of them being the Vertex Streaming Hack, formerly known as Hacked Buffer Upload. It drastically improves OpenGL performance on Nvidia GPUs. However, as of 4.0-615, the Vertex Streaming Hack has been removed from Dolphin.

Continue reading

You can continue the discussion in the forum thread of this article.

Dolphin Emulator and OpenGL drivers - Hall of Fame/Shame

In light of the recent announcements by NVIDIA and AMD in support of Linux for their graphics drivers, we would like to share with the world some of the experience we had developing our open source project, Dolphin, a GameCube and Wii emulator for Windows, Linux, Mac and recently Android.

At the beginning of this year, after the successful release of Dolphin 3.5, Markus Wick (degasus) and Ryan Houdek (Sonicadvance1) started working on a rewrite of Dolphin's OpenGL backend in order to be compliant to the OpenGL ES 3.0 standard. While this rewrite was needed for other reasons (it provides the foundations for very cool optimizations), compatibility with mobile devices and the future Android port of the emulator (now in beta) was one of the key goals. This rewrite was merged into the main Dolphin codebase a few months back and started to be used by tens of thousands of Dolphin users, either on OS X and Linux where it is the only viable graphics backend, or on Windows where it is available alongside our D3D11 graphics backend.

Sadly, using recent, advanced OpenGL features also meant we got to discover how bad some graphics drivers actually are at doing their job. It turns out very few applications use some parts of the OpenGL standard we need to rely on to accurately emulate a GameCube GPU. More than that, on Android, OpenGL ES 3.0 support is extremely recent and only a couple applications on the Play Store use ES 3.0 features.

Here is basically our hall of shame of graphics drivers, sorted by the number of issues we found, how hard it is to report issues to the company and how many bugs were actually fixed.

Continue reading

You can continue the discussion in the forum thread of this article.