SpringMark (OpenGL)第一部分
SpringMark是一个比较小型的OpenGL测试程序,它使用一大堆坐标(vertices顶点)来建立不同的区域,在这个过程中数个区域会读进显卡的显存里。我们从100万个顶点(32MB的数据)开始,逐渐提高到2000万个顶点(720MB的数据)。当达到1000万个顶点时只有1G内存的系统已经达到容量极限,多出来数据的数据将要使用硬盘来贮存,而显存多多的Wildcat(野猫) VP 990则获益不浅。
当多边形数据到达720 MB时,Windows任务管理器显示使用了1.7G的内存,其中包括了700MB的页面内存(虚拟内存)。在第一次测试使用官方的FireGL驱动7.88版时, 所有的FireGL成绩都非常糟,仅在200万个顶点时就不行了,连拥有256MB显存的FireGL X1也是这样,要知道256MB的显存在这是不可能装满的。
推究其原因,这是驱动的一个BUG。显卡使用的是较慢的系统内存而不是高速的显存。我们故意把BIOS里面的AGP aperture size限制在4MB,但我们发现显卡仍旧使用那仅4MB的内存来贮存数据(物以稀为贵?),问题很明显了。
帧速/s / 顶点/s
100万(36MB)
200万(72MB)
300万 (108MB)
3Dlabs Wildcat VP990 Pro
50/50
25/50
16.6/50
3Dlabs Wildcat VP870
45/45
20/40
11.7/35
ATI FireGL X2***
87/87
43.5/87
29/87
ATI FireGL X1 256MB***
74/74
37/74
25/74
ATI FireGL X1***
71/71
35/71
20.4/61
ATI FireGL T2***
45/45
22/45
15.1/45
ATI FireGL Z1***
71/71
35/71
20.4/61.2
ATI FireGL 8800
31/31
6.6/13.3
4.4/13.3
ATI Radeon 9700 Pro
51/51
21/43
6.5/17.8
PNY Quadro FX 3000
55.5/55.5
27/55.5
18.8/54
PNY Quadro FX 2000
55.5/55.5
26/53
16.2/48.4
PNY Quadro FX 1000
40/40
20/40
13.7/40
PNY Quadro FX 500
25/25
12/25
8.33/25
PNY Quadro4 980XGL
37.5/37.5
17.5/35
11.7/35
PNY Quadro4 750XGL
32/32
16/32
10/30
Gainward GeForce 4 TI 4600
20/20
10/20
6.5/19.7
400万 (144MB)
500万 (180MB)
1000万(360MB)
2000万(720MB)
12.2/50
10/50
4.9/49.2
1.92/38.6
8/32
6.3/31
3/30
1.4/28
21.7/87
17.54/87
6.25/62.5
1.3/26
18.8/74
14.9/74
5.85/58.5
1.4/27.7
14/56
10.8/54
3.9/39
1.1/20.1
11.4/45
9.1/45
3.6/26
1.1/21.6
14.1/56.3
10.8/54.3
3.9/38.4
1.1/22
3.3/13.3
2.66/13.3
1.33/13.3
0.66/13
3.9/15.5
2.9/14.5
Crash
Crash
13.3/53.3
10/50
2.5/25
1.1/22
11.6/46
9/45
2.3/23
1/21.3
10/40
8.1/40
2.2/22
1/21.4
6.25/25
5/25
2.09/20.9
1/20.1
8.85/35
7/35
2.15/21.5
1/21
7.1/28
5.6/28
2/20
0.97/19.4
4.9/19.6
3.9/19.6
1.96/19.6
1/19.57
=最差
=最好
*** 关于ATI Z/T/X系列显卡的说明:
这里的结果由使用的驱动版本决定。7.88版的驱动在200万个顶点时则明显下降,而BETA 7.91版虽然不是官方正式发布的版本,但却解决了这个问题。因为SpringMark只是一个测试程序而不是应用软件,所以我们在这里使用BETA驱动,但也仅仅在这个项目中使用。
两个驱动的成绩对比:
帧速/s / 顶点/s
100万(36MB)
200万(72MB)
300万 (108MB)
400万 (144MB)
500万 (180MB)
1000万 (360MB)
2000万 (720MB)
ATI FireGL T2 7.88
45/45
7.8/15.6
5.1/15.4
3.8/15.4
3/15.4
1.53/15.3
0.76/15.2
ATI FireGL T2 7.91
45/45
22/45
15.1/45
11.4/45
9.1/45
3.6/26
1.1/21.6