AnsweredAssumed Answered

AMD fusion openGL advanced shaders

Question asked by coderalex on Sep 16, 2012
Latest reply on Sep 20, 2012 by coderalex


I'm working on some openGL code and I had intended on using tessellation and geometry shaders in my program.

However when I first did performance tests for the laptop I'm using now I got some disturbing/strange results...

With basic vertex and fragment shaders the code runs incredibly smoothly, outperforming the old desktop I used before by multiple times, probably the benefit of a much higher data bandwidth, but when I add either a geometry shader or tessellation shaders, even when they're just pass-through shaders that shouldn't have any significant effect, the performance takes a MASSIVE hit. And I really mean massive.

I tested with two different programs and got these results:

increase in frame time from about 4 ms to around 55 ms

increase in frame time from about 9 ms to around 250-300 ms


Normally there's a small cost to adding additional shaders but this is just absurd.

Here's some details:

My GPU (well really APU) is an AMD Radeon HD 7660G, pretty new and part of the a-series (says A10) I believe

It has support for openGL 4.2 (which is more than enough for tessellation and geometry shaders)

In the programs my context version is 4.2.11476 Compatibility Profile Context

The programs still do what there's supposed to but with just horrible performance (a software render-er might go faster o_O)

I've tried new drivers but it didn't make any difference.


Is it possible that the hardware doesn't have normal support for geometry or tessellation shaders and the driver is just emulating it?

Could they actually do that to have openGL 4.2 support? Geometry shaders are pretty old and this is a very new graphics card (although on a laptop) but still... I really have no idea (I hope it's just a bug or something).

Could anyone please shed some insight into this mystery?

Has anyone here tried running geometry or tessellation shaders on this or a similar APU?

Many thanks in advance.