RightMark3D 2.0 includes two geometry shader tests. The first one is called Galaxy, it's similar to point sprites from previous Direct3D versions. It animates a system of particles using a GPU, a geometry shader creates four vertices from each particle. Similar algorithms should be used in future DirectX 10 games.
A change of balance in geometry tests does not affect rendering results, the image is always identical, only scene processing methods differ. GS load value determines what shader will be busy - vertex or geometry. The amount of work is always the same.
Let's analyze the first modification of Galaxy with vertex computing for three levels of geometric complexity:
The correlation of results with different complexity levels of the scene is almost the same, only absolute values are different. Performance demonstrated corresponds to the number of points, FPS is halved each step. We can see the apparent effect of memory bandwidth on results. The RADEON HD 2900 XT is 1.5 times as fast as the HD 3850 and the HD 3870. In its turn, the HD 2600 XT is almost twice as slow.
Only the top card from AMD can compete with the GeForce 8800 GT and GTS in this test. Both cards with the RV670 are outperformed here by NVIDIA cards. However, this is not a hard task for modern graphics cards, it's mostly limited by memory bandwidth than by GPU. Perhaps the situation will change, when some work is moved to a geometry shader.
No, there are actually no changes at all. All graphics cards demonstrate the same results (adjusted for the measurement error), when GS load is changed, that is when some work is transferred to a geometry shader. The GeForce 8800 GT is still a tad faster than the HD 2900 XT. And the latter card is faster than the new Mid-End HD 3850 and HD 3870 owing to its higher memory bandwidth. Let's see what happens in the next test...
Hyperlight is the second geometry test that uses several techniques: instancing, stream output, buffer load. It employs dynamic generation of geometry by rendering into two buffers, as well as a new Direct3D 10 feature - stream output. The first shader generates ray directions, their speed and growth vectors. These data are stored in a buffer, which is used by the second shader for rendering. Each ray point is used to generate 14 vertices in a circle, up to a million output points.
The new type of shader programs is used to generate rays. If "GS load" is set to "Heavy" - it's also used for rendering. That is in Balanced mode, geometry shaders are used only to generate and grow rays. Output is up to instancing. The geometry shader also outputs data in the Heavy mode. Let's analyze the easy mode first:
Relative results in various modes correspond to the load. Performance scales well in all cases. It's close to theoretical parameters, according to which, each next level of Polygon count must be twice as slow. Results of NVIDIA cards are again over two times as high as results of the best solutions from AMD with any geometry complexity.
The new cards from AMD perform much better in this test. The RADEON HD 2900 XT is just 1.5 times as fast as the HD 2600 XT. But both new graphics cards demonstrate higher results versus the previous top solution. The HD 3850 is just a little faster than the HD 2900 XT, but the HD 3870 is stronger than the HD 2900 XT by 20-25%! It cannot be explained with the difference in frequencies. It should be the effect of optimizations in drivers or in hardware (it's less probable, but still possible.) Results may change in the next test with more active usage of geometry shaders. It will be also interesting to compare results obtained in Balanced and Heavy modes.
This time the ratio of performance results in various modes has changed much. R6xx GPUs are evidently faster in such tasks than NVIDIA GPUs. The RADEON HD 2900 XT is 1.5-2 times as fast as the GeForce 8800, and the HD 2600 XT performs on a par with the GeForce 8800 GTS! We confirm our older conclusion that AMD solutions profit from complexity of a geometry shader compared to NVIDIA graphics cards.
AMD cards are again affected by optimizations for different loads on R600 and RV670 or different memory bandwidth values. The HD 2900 XT is faster than the HD 3800 by 30-40%. On the other hand, the R600 may be optimized better for heavy geometry tasks, while the RV670 is better at vertex shader tasks. This will explain results of this test and the previous one.
What concerns a comparison of results in various modes, both GeForce 8800 GT cards in Balanced mode perform better than the RADEON HD 2900 XT, HD 3850 and HD 3870 in Heavy mode. You should keep in mind that the image does not differ in these modes. AMD cards prefer the second mode (a geometry shader is used instead of instancing), while NVIDIA cards - the first mode. But if we compare cards in their favorable modes, the GeForce 8800 GT still outperforms both new Mid-End cards from AMD.
Here goes our main conclusion on geometry shaders: various tests of geometry shaders demonstrate different results. The new cards based on the RV670 demonstrate good results here, even though they are still outperformed by their competitors. On the whole, they fare on a par with the RADEON HD 2900 XT. They even shoot forward, as geometry complexity grows.