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.


Total_memory_bandwidth = 3D_rendering_memory_bandwidth + Video_refresh_memory_bandwidth

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
* "demo001.dm3" test, "Normal" settings, color depth = 32bit, Screen_refresh_rate = 75Hz, V-Sync disabled,
      Pentium 4 1.5GHz, Windows 98 SE
** depth_complexity = 4
*** C = (63.2 + 64.5 + 62.0) / 3 = 63.2


===============================================================================

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)