Direct3D 10: Geometry Shader Tests
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 dot, forming a 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 processing for three levels of geometric complexity:
Performance ratios are approximately similar with different geometry complexity. Performance demonstrated corresponds to the number of points, FPS is halved each step. It's not a hard task for modern graphics cards. Performance in this test is not limited by streaming processors that apparently. The task is also limited by memory bandwidth and fill rate.
We are surprised to see HD 3650 outperform HD 3870, as there are no apparent reasons for it, they even operate at similar frequencies. Besides, the RV730-based card is not much faster than HD 3650, even taking into account that AMD promised higher geometry shader efficiency in the RV7xx architecture. So, RADEON HD 4670 outperforms cards from its own camp, but NVIDIA solutions demonstrate higher results. Strange as it may seem, GeForce 9500 GT turns out faster than GeForce 8600 GTS for the first time. Perhaps the situation will change, when some work is moved to a geometry shader.
But no, the difference between these tests is not very big, we don't see significant changes. Both graphics cards from NVIDIA demonstrate a tad lower results with various GS load values, which are responsible for moving some of the load to the geometry shader. On the contrary, AMD cards improve their results a little. And now HD 4670 performs on a par with GeForce 8600 GTS, being slightly slower than GeForce 9500 GT. But it copes well with the other RADEONs. Let's see what will change in the next test, which generates a heavier load on geometry shaders.
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. This time RADEON 4670 is not much faster than previous solutions, all cards from AMD are still outperformed by NVIDIA products.
In our previous articles we determined that the test was limited by something else than memory bandwidth, fill rate, or computing power. Situation in this test is even more perplexed, mutual positions of NVIDIA cards have changed -- the 8600 GTS is faster than the 9500 GT now. However, HD 4670 demonstrates good results. It seems to be affected by its improved texturing performance. Results must change on the next diagram for the test that actively uses geometry shaders. It will be also interesting to compare test results obtained in Balanced and Heavy modes.
At last we can see that RV7xx executes geometry shaders better. Engineers finally solved the problem of previous architectures, and the new solution outperforms GeForce 9500 GT and GeForce 8600 GTS. All GeForces are weak here, except for the latest GeForce GTX 200.
What concerns the comparison of results obtained in different modes, everything is as usual. The graphics cards from AMD improve their results, as they switch from instancing to a geometry shader. And NVIDIA cards get slower. If we compare results obtained in different modes (upon condition of identical rendered images), we can acknowledge that NVIDIA cards are still ahead, if not much.
Write a comment below. No registration needed!