Calculating the Potentiality of Your GeForce2
tnaw_xtennis
The 3D rendering capacity of the fastest GeForce2 graphic processor has reached a value as
high as 1000 mega pixels per second, however this fill rate is never seen
actualised due to the
acute memory bandwidth or CPU limitation encountered. By applying calculations concerning
memory-bandwidth and fill-rate, this page will show how fast a GeForce2 will be under the
condition without memory bandwidth or CPU limitation. The other intention of this page is to
enumerate the memory-bandwidth and fill-rate calculating formulas for those interested in doing
some calculations.
The 3D game chosen for GeForce2 series cards evaluating is Quake3. The calculating results
in Table 1 shows that (1) at 1600 x 1200 x 32bit, the 3D performance of GeForce2 Ultra is
limited by video memory bandwidth and only 44% fill-rate of its video processor brings into play.
Without the memory bandwidth limitation, a GeForce2 Ultra will have a 130 fps performance.
(2) At 640 x 480 x 32bit, the 3D performance of GeForce2 Ultra is limited by CPU and only
51% 3D_rendering_memory_bandwidth of the video card brings into play. Without the CPU
limitation, a GeForce2 Ultra will have a 374 fps performance.
The formulas applied for the calculating are listed below. Certain to read Appendix A and Appendix
B for 3D_rendering_memory_bandwidth formula deducing and detail sample calculating list. The
interpretation of glossary in the formulas can be found in Ref.1 and
a document of NVIDIA.
3D_rendering_memory_bandwidth = Frame_buffer_bandwidth + Texture_memory_bandwidth + Z_buffer_bandwidth
= resolution * frame_rate * C
C = depth_complexity * ( Color_depth * A + B )
Video_refresh_memory_bandwidth = Resolution * ColorDepth * Screen_refresh_rate
Fill_rate = resolution * frame_rate * depth_complexity
Tabel 1. Testing and Calculating Quake3 Performances of GeForce 2 Series
GeForce2 GTS | GeForce2 Pro | GeForce2 Ultra | |
1600x1200 | |||
Quake 3 Frame_rate (fps) * | 39 | 47 | 57 |
Video Card Memory Bandwidth (GB/s) | 5.312 | 6.400 | 7.360 |
Video Processor Fill Rate (Mega Pixels/s) | 800 | 800 | 1000 |
Video_refresh_memory_bandwidth (GB/s) | 0.576 | 0.576 | 0.576 |
3D_rendering_memory_bandwidth of GeForce2 (GB/s) |
4.736 | 5.824 | 6.784 |
C | 63.2 | 64.5 | 62.0 |
Fill_rate corresponding to the Quake 3 Frame_rate (MB/s) | 300 | 361 | 438 |
Fill Rate of GeForce2 that brings into play (%) | 38% | 45% | 44% |
theory un-memory_bandwidth-limited Quake 3 Frame_rate (fps) |
104 | 104 | 130 |
theory memory_bandwidth needed (GB/s) | 13.196 | 13.196 | 16.351 |
640x480 | GeForce2 GTS | GeForce2 Pro | GeForce2 Ultra |
Quake 3 Frame_rate (fps) * | 190 | 190 | 190 |
Video Card Memory Bandwidth (GB/s) | 5.312 | 6.400 | 7.360 |
Video Processor Fill Rate (Mega Pixels/s) | 800 | 800 | 1000 |
Video_refresh_memory_bandwidth (GB/s) | 0.092 | 0.092 | 0.092 |
3D_rendering_memory_bandwidth of GeForce2 (GB/s) |
5.220 | 6.308 | 7.268 |
3D_rendering_memory_bandwidth corresponding to the Quake 3 Frame_rate (GB/s) | 3.689 | 3.689 | 3.689 |
3D_rendering_memory_bandwidth of GeForce2 that brings into play (%) |
71% | 58% | 51% |
theory un-CPU-limited Quake 3 Frame_rate (fps) | 269 | 325 | 374 |
===============================================================================
Appendix A - Formula of 3D_rendering_memory_bandwidth calculating
Frame_buffer_bandwidth = resolution * frame_rate * depth_complexity * frame Buffer color Depth * z-buffer_pass_rate
Texture_memory_bandwidth = resolution * frame_rate * depth_complexity * texel Color Depth * texels fetched from memory for each pixel drawn
Z_buffer_bandwidth = resolution * frame_rate * depth_complexity * z-buffer operations per pixel * z_buffer_size
3D_rendering_memory_bandwidth = Frame_buffer_bandwidth + Texture_memory_bandwidth + Z_buffer_bandwidth
= resolution * frame_rate * depth_complexity * [ Color Depth * ( z-buffer_pass_rate
+ texels fetched from memory for each pixel drawn ) + z-buffer operations per pixel * z_buffer_size
]
= resolution * frame_rate * depth_complexity * ( Color Depth * A + B )
= resolution * frame_rate * C
Appendix B - Detail calculating list for GeForce2 GTS
GeForce2 GTS
1600x1200
Quake 3 Frame_rate (fps) = 39
Video_refresh_memory_bandwidth (1600x1200) = Resolution * ColorDepth *
Screen_refresh_rate
= 1600 x 1200 x (32/8) x 75 = 0.576 GB/s
3D_rendering_memory_bandwidth of GeForce2 = Total_memory_bandwidth - Video_refresh_memory_bandwidth
= 5.312 - 0.576 = 4.736 GB/s
C = 3D_rendering_memory_bandwidth / (resolution * frame_rate) = 4.736 x 10 9 /
(1600 x 1200 x 39) = 63.2
Fill_rate corresponding to the Quake 3 Frame_rate = resolution * frame_rate * depth_complexity
= 1600 x 1200 x 39 x 4 = 300 Mega Pixels/s
Fill Rate of GeForce2 that brings into play = 300 / 800 = 38%
theory un-memory_bandwidth-limited Quake 3 Frame_rate (fps) = Fill_rate / (resolution * depth_complexity)
=800 x 10 6 / (1600 x 1200 x 4) = 104
theory memory_bandwidth needed = 3D_rendering_memory_bandwidth + Video_refresh_memory_bandwidth
= resolution * frame_rate * C + Video_refresh_memory_bandwidth
= 1600 x 1200 x 104 x 63.2 + Video_refresh_memory_bandwidth = 12.620 + 0.576 =
13.196 GB/s
640x480
Quake 3 Frame_rate (fps) = 190
Video_refresh_memory_bandwidth (640x480) = Resolution * ColorDepth *
Screen_refresh_rate
= 640 x 480 x (32/8) x 75 = 0.092 GB/s
3D_rendering_memory_bandwidth of GeForce2 = Total_memory_bandwidth - Video_refresh_memory_bandwidth
= 5.312 - 0.092 = 5.22 GB/s
3D_rendering_memory_bandwidth corresponding to the Quake 3 Frame_rate = resolution * frame_rate * C
= 640 x 480 x 190 x 63.2 = 3.689 GB/s
3D_rendering_memory_bandwidth of GeForce2 that brings into play = 3.689 / 5.220 = 71%
theory un-CPU-limited Quake 3 Frame_rate (fps) = 3D_rendering_memory_bandwidth /
(resolution * C)
= 5.22 x 10 9 / (640 x 480 x 63.2) = 269
Links of Turning your
GeForce/GeForce2 into a Quadro/Quadro2
Pentium 4 1.5GHz or Athlon Thunderbird 1.2GHz (DDR)