Difference between revisions of "Sega Saturn/Hardware comparison"
From Sega Retro
m |
|||
Line 147: | Line 147: | ||
|- | |- | ||
! Polygons | ! Polygons | ||
− | | 800,000 polygons/s (32-pixel), <br> 500,000 polygons/s (50-pixel){{ref|16 cycles per polygon in 28.63636 MHz texture cache,{{ | + | | 800,000 polygons/s (32-pixel), <br> 500,000 polygons/s (50-pixel){{ref|16 cycles per polygon in 28.63636 MHz texture cache,{{fileref|TUTORIAL.pdf|page=15}} 1 cycle per pixel in 28.63636 MHz framebuffer|group=n}} |
| 500,000 polygons/s (32-pixel),{{ref|18 megapixels/sec for polygons that are 50-pixel or less{{fileref|SCEA BBS.pdf|page=1041}}|group=n}} <br> 360,000 polygons/s (50-pixel){{fileref|SCEA BBS.pdf|page=1041}} | | 500,000 polygons/s (32-pixel),{{ref|18 megapixels/sec for polygons that are 50-pixel or less{{fileref|SCEA BBS.pdf|page=1041}}|group=n}} <br> 360,000 polygons/s (50-pixel){{fileref|SCEA BBS.pdf|page=1041}} | ||
| 900,000 polygons/s (40-pixel), <br> 600,000 polygons/s (80-pixel){{ref|18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,{{ref|[http://level42.ca/projects/ultra64/Documentation/man/pro-man/pro12/index.html RDP Programming], ''[[wikipedia:Nintendo 64 programming characteristics|Nintendo 64 Programming Manual]]'', [[Nintendo]]}} 1 cycle per pixel, 62 cycles per 40-pixel polygon, 104 cycles per 80-pixel polygon|group=n}} | | 900,000 polygons/s (40-pixel), <br> 600,000 polygons/s (80-pixel){{ref|18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,{{ref|[http://level42.ca/projects/ultra64/Documentation/man/pro-man/pro12/index.html RDP Programming], ''[[wikipedia:Nintendo 64 programming characteristics|Nintendo 64 Programming Manual]]'', [[Nintendo]]}} 1 cycle per pixel, 62 cycles per 40-pixel polygon, 104 cycles per 80-pixel polygon|group=n}} | ||
Line 162: | Line 162: | ||
|- | |- | ||
! Fillrate <br> (polygons) | ! Fillrate <br> (polygons) | ||
− | | 28 MPixels/s (512×512), <br> 16 MPixels/s (10×10){{ref|164,576 Gouraud-shaded 10×10 polygons/sec: 57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,{{ | + | | 28 MPixels/s (512×512), <br> 16 MPixels/s (10×10){{ref|164,576 Gouraud-shaded 10×10 polygons/sec: 57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,{{fileref|TUTORIAL.pdf|page=15}} 232 cycles Gouraud shading),{{fileref|TUTORIAL.pdf|page=8}} 348 cycles per polygon (100 cycles drawing per 100-pixel polygon){{intref|Saturn VDP1 hardware notes (2003-05-17)}}|group=n}} |
| 33 MPixels/s (512×512), <br> 10 MPixels/s (10×10){{ref|[https://www.gamefaqs.com/ps/916392-playstation/faqs/4701 Sony PlayStation (SONY PS) FREQUENTLY ASKED QUESTIONS]}} | | 33 MPixels/s (512×512), <br> 10 MPixels/s (10×10){{ref|[https://www.gamefaqs.com/ps/916392-playstation/faqs/4701 Sony PlayStation (SONY PS) FREQUENTLY ASKED QUESTIONS]}} | ||
| 62 MPixels/s (512×512),{{ref|[https://level42.ca/projects/ultra64/Documentation/man/pro-man/pro25/index25.8.html Microcode: Past Microcode], ''Nintendo 64 Programming Manual'', [[Nintendo]]}} <br> 50 MPixels/s (10×10) | | 62 MPixels/s (512×512),{{ref|[https://level42.ca/projects/ultra64/Documentation/man/pro-man/pro25/index25.8.html Microcode: Past Microcode], ''Nintendo 64 Programming Manual'', [[Nintendo]]}} <br> 50 MPixels/s (10×10) | ||
Line 169: | Line 169: | ||
|- | |- | ||
! Polygons | ! Polygons | ||
− | | 200,000 polygons/s{{ref|57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,{{ | + | | 200,000 polygons/s{{ref|57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,{{fileref|TUTORIAL.pdf|page=15}} 232 cycles Gouraud shading),{{fileref|TUTORIAL.pdf|page=8}} 32 cycles drawing per 32-pixel polygon{{intref|Saturn VDP1 hardware notes (2003-05-17)}}|group=n}} |
| 200,000 polygons/s{{ref|[https://www.gamefaqs.com/ps/916392-playstation/faqs/4701 Sony PlayStation (SONY PS) FREQUENTLY ASKED QUESTIONS]}} | | 200,000 polygons/s{{ref|[https://www.gamefaqs.com/ps/916392-playstation/faqs/4701 Sony PlayStation (SONY PS) FREQUENTLY ASKED QUESTIONS]}} | ||
| 600,000 polygons/s | | 600,000 polygons/s | ||
Line 246: | Line 246: | ||
|- | |- | ||
! Performance <br> (8-bit color) | ! Performance <br> (8-bit color) | ||
− | | 500,000 sprites/sec,{{ref|57.27272 million parallel bus cycles/sec, 99 parallel cycles per 8×1 sprite{{ | + | | 500,000 sprites/sec,{{ref|57.27272 million parallel bus cycles/sec, 99 parallel cycles per 8×1 sprite{{fileref|TUTORIAL.pdf|page=8}}|group=n}} <br> 16,383 sprites/frame (VDP1) |
| 240,000 sprites/sec,{{fileref|SCEA BBS.pdf|page=672}} <br> 4000 sprites/frame{{fileref|NextGeneration US 01.pdf|page=48}}{{ref|1=[http://hitmen.c02.at/files/docs/psx/psx.pdf#page=28 PlayStation documentation (pages 28-29)]}}{{ref|[http://psx.rules.org/gpu.txt PlayStation GPU documentation]}} | | 240,000 sprites/sec,{{fileref|SCEA BBS.pdf|page=672}} <br> 4000 sprites/frame{{fileref|NextGeneration US 01.pdf|page=48}}{{ref|1=[http://hitmen.c02.at/files/docs/psx/psx.pdf#page=28 PlayStation documentation (pages 28-29)]}}{{ref|[http://psx.rules.org/gpu.txt PlayStation GPU documentation]}} | ||
| rowspan="2" | 600,000 sprites/sec,{{ref|36 cycles memory access (2x access) per sprite,{{ref|[http://level42.ca/projects/ultra64/Documentation/man/pro-man/pro12/index.html RDP Programming], ''[[wikipedia:Nintendo 64 programming characteristics|Nintendo 64 Programming Manual]]'', [[Nintendo]]}} 1 cycle per texel: 100 cycles per 8×8 texel sprite|group=n}} <br> 10,000 sprites/frame | | rowspan="2" | 600,000 sprites/sec,{{ref|36 cycles memory access (2x access) per sprite,{{ref|[http://level42.ca/projects/ultra64/Documentation/man/pro-man/pro12/index.html RDP Programming], ''[[wikipedia:Nintendo 64 programming characteristics|Nintendo 64 Programming Manual]]'', [[Nintendo]]}} 1 cycle per texel: 100 cycles per 8×8 texel sprite|group=n}} <br> 10,000 sprites/frame |
Revision as of 02:22, 8 December 2016
This short article is in need of work. You can help Sega Retro by adding to it.
Contents
Vs. Consoles
PlayStation
The Sega Saturn generally has more raw power than the rival PlayStation,[1][2][3][4] but its complex hardware was more difficult to get to grips with.[2][3][5][3][6] The Saturn has more computational power and faster pixel drawing; the PS1 can only draw pixels through its polygon engine, whereas the Saturn can draw pixels directly with its processors, giving it more programming flexibility.[7]
When both SH-2 and the SCU DSP are used in parallel, the Saturn is capable of computing fixed-point operations faster than the PS1's GTE. The GTE is faster at calculating 3D geometry than each SH-2 and SCU DSP individually, but when these processors are used as a parallel geometry engine, the Saturn calculates 3D geometry faster than the PS1.[3][6]
In terms of polygon rendering fillrate, the PS1's GPU and the Saturn's VDP1 have similar performance. The GPU has a performance advantage for large polygons and flat shading, while the VDP1 has a performance advantage for small polygons and Gouraud shading. The GPU uses multiplicative Gouraud shading,[8] which halves its fillrate,[9] whereas the VDP1 uses additive Gouraud shading,[8] which has less of an impact on fillrate.[10]
The Saturn's VDP2 has a higher rendering fillrate than the PS1's GPU. If the VDP2 is used for drawing textured infinite planes, this significantly reduces the fillrate requirements of the VDP1 to a fraction of what it would need to render textured planes, freeing up its fillrate for other 3D assets. In comparison, the PS1's GPU needs to use much of its fillrate to render textured planes, with very limited draw distance compared to the VDP2, limiting the PS1's fillrate for other 3D assets.[11] When the VDP1 and VDP2 are used in parallel, the Saturn is capable of a significantly higher fillrate than the PS1.
The VDP1 had smoother and more intense Gouraud shading than the PS1's GPU.[2] The VDP1's additive Gouraud shading displayed significantly more shades, resulting in smoother shading, and had more intense colored lighting,[8] whereas the GPU's multiplicative Gouraud shading displayed much fewer shades, resulting in color banding, but had more intense white light. Original PS1 models released from 1994 to early 1997 had much fewer shades, leading to color banding, but the hardware was later improved in PS1 models from late 1997 onwards, which improved the GPU's shading capabilities and eliminated the color banding. The new GPU's improved shading still had fewer shades than the VDP1, however, but the GPU is capable of full-screen dithering, which helps give its new shading a smoother look.
The VDP1's quad polygons are rendered with forward texture mapping (a form of perspective correction), bilinear approximation (reduces texture warping), and medium polygon accuracy (resulting in seamless polygons), while the VDP2's textured infinite planes are rendered with true perspective correction, whereas the PS1's triangle polygons are rendered with affine texture mapping (which lacks perspective correction, resulting in perspective distortion), linear approximation (resulting in texture warping), and low polygon accuracy (resulting in seams between polygons).[8][12] In terms of transparency, the PS1's GPU is more effective than the VDP1, whereas the VDP2 is more effective than the PS1's GPU. In terms of visual effects, the VDP2 is more effective at visual effects such as misting and reflective water effects.[2]
The PS1's straightforward hardware architecture, triangle polygons, and more effective development tools and C language support, made it easier for developers to program 3D graphics. When it came to 2D graphics, on the other hand, the Saturn's combination of a VDP1 sprite framebuffer and VDP2 parallax scrolling backgrounds made it both more powerful and straightforward to program 2D graphics, compared to the PS1 which draws all 2D graphics to a single framebuffer.
Nintendo 64
Vs. PC
The Saturn's VDP1 was the basis for NVIDIA's first graphics processor, the NV1, which was one of the first 3D graphics accelerators on PC, released in 1995. Like the Saturn, it uses quad polygons and supports forward texture mapping with limited perspective correction, and several Saturn ports are available for it. However, the NV1 has a lower fillrate and rendering performance. The most powerful PC graphics card of 1995 was Yamaha's Tasmania 3D, which was based on triangle polygons. It had a higher fillrate and rendering throughput than the NV1, but less than the Saturn and PlayStation.
Graphics comparison table
- See Sega Saturn technical specifications for more technical details on Saturn hardware
System | Sega Saturn (1994) | Sony PlayStation (1994) | Nintendo 64 (1996) | PC (1995) | ||
---|---|---|---|---|---|---|
Geometry processors | 2x Hitachi SH-2 (28.63636 MHz),[n 1] Sega SCU DSP (14.31818 MHz) |
Sony GTE (33.8688 MHz)[15] | SGI RSP (62.5 MHz) | Intel Pentium (133 MHz) | ||
Arithmetic operations | 85 MOPS[n 2][n 3] | 66 MOPS[18] | 100 MOPS[n 4] | 44 MOPS[n 5] | ||
Calculations | Additions | 71 million adds/sec[n 6] | 50 million adds/sec | 100 million adds/sec | 44 million adds/sec[n 7] | |
Multiplications | 71 million multiplies/sec[n 8] | 50 million multiplies/sec | 100 million multiplies/sec | 44 million multiplies/sec[n 9] | ||
16-bit divisions | 5 million divides/sec[n 10] | 4 million divides/sec[n 11] | 14 million divides/sec[n 12] | 4 million divides/sec[n 13] | ||
Geometry | Transformations | 2,400,000 vertices/sec,[n 14] 1,800,000 polygons/sec[n 15] |
1,900,000 vertices/sec,[n 16] 1,300,000 polygons/sec[n 17] |
2,500,000 vertices/sec,[n 18] 2,000,000 polygons/sec[n 19] |
1,100,000 vertices/sec,[n 20] 380,000 polygons/sec[n 21] | |
Flat lighting | 800,000 polygons/sec[n 22] | 600,000 polygons/sec[n 23] | 1,400,000 polygons/sec[n 24] | 290,000 polygons/sec[n 25] | ||
Gouraud lighting | 700,000 polygons/sec[n 26] | 360,000 polygons/sec[n 27] | 1,000,000 polygons/sec[n 28] | 200,000 polygons/sec[n 29] | ||
Rendering processors | Hitachi VDP1 (28.63636 MHz), Yamaha VDP2 (28.63636 MHz) |
Sony GPU (33.8688 MHz)[37] | SGI RDP (62.5 MHz)[38] | NVIDIA NV1 (12.5 MHz)[n 30] |
Yamaha Tasmania 3D (50 MHz)[39] | |
Bitmap framebuffer fillrate |
15-bit color/pixel | 57 MPixels/s[n 31] | 33 MPixels/s[37] | 62 MPixels/s | 12 MPixels/s | 25 MPixels/s |
8-bit color/pixel | 92 MPixels/s[n 32] | 67 MPixels/s[37] | 120 MPixels/s | |||
4-bit color/pixel | 150 MPixels/s[n 33] | |||||
Tile fillrate |
15-bit color/tile | 560 MPixels/s[n 34] | 33 MPixels/s[n 35] | 62 MPixels/s | ||
8-bit color/tile | 570 MPixels/s[n 36] | 67 MPixels/s[n 37] | 120 MPixels/s | |||
Flat shading |
Fillrate (8-bit color) |
28 MPixels/s | 66 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys) |
62 MPixels/s (512×512 polys), 50 MPixels/s (10×10 polys)[n 38] |
12 MPixels/s | 25 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys) |
Fillrate (15-bit color) |
28 MPixels/s | 33 MPixels/s (512×512 polys), 18 MPixels/s (10×10 polys)[40] | ||||
Polygons | 800,000 polygons/s (32-pixel), 500,000 polygons/s (50-pixel)[n 39] |
500,000 polygons/s (32-pixel),[n 40] 360,000 polygons/s (50-pixel)[40] |
900,000 polygons/s (40-pixel), 600,000 polygons/s (80-pixel)[n 41] |
50,000 polygons/s | 290,000 polygons/s | |
Gouraud shading |
Shades | 32,768 shades (15-bit)[42] | 32 shades (1994-1997), 256 shades (1997-2000)[n 42] |
65,536 shades (16-bit) | 16 shades (4-bit) | 16 shades (4-bit) |
Fillrate (polygons) |
28 MPixels/s (512×512), 16 MPixels/s (10×10)[n 43] |
33 MPixels/s (512×512), 10 MPixels/s (10×10)[45] |
62 MPixels/s (512×512),[46] 50 MPixels/s (10×10) |
10 MPixels/s | 25 MPixels/s (512×512), 10 MPixels/s (10×10) | |
Polygons | 200,000 polygons/s[n 44] | 200,000 polygons/s[45] | 600,000 polygons/s | 50,000 polygons/s | 200,000 polygons/s | |
Texture mapping |
Fillrate (bitmap textures) |
33 MTexels/s (504×255), 14 MTexels/s (10×10)[n 45] |
33 MTexels/s (128×64),[n 46] 10 MTexels/s (10×10)[45] |
60 MTexels/s (128×64),[n 47] 40 MTexels/s (10×10)[n 48] |
10 MTexels/s | 12 MTexels/s (64×64), 10 MTexels/s (10×10) |
Fillrate (tiled textures) |
500 MTexels/s (VDP2) (2048×2048 to 4096×4096)[50] |
33 MTexels/s (256×256) |
62 MTexels/s[38] (128×128 to 1024×256)[51] | |||
4-bit color | 300,000 polygons/s (32-texel), 200,000 polygons/s (70-texel) |
200,000 polygons/s (50-texel)[45] | 600,000 polygons/s (60-texel), 500,000 polygons/s (80-texel)[n 49] |
50,000 polygons/s | 150,000 polygons/s | |
8-bit color | 300,000 polygons/s (32-texel), 200,000 polygons/s (70-texel) |
100,000 polygons/s (50-texel)[45] | 600,000 polygons/s (60-texel), 500,000 polygons/s (80-texel) |
50,000 polygons/s | 100,000 polygons/s | |
15-bit color | 200,000 polygons/s (70-texel) | 60,000 polygons/s (50-texel)[45] | 500,000 polygons/s (80-texel) | 50,000 polygons/s | 60,000 polygons/s | |
Texture Gouraud shading |
Fillrate (textures) |
19 MTexels/s (504×255), 9 MTexels/s (10×10) |
16 MTexels/s (256×256),[n 50] 7 MTexels/s (10×10)[45] |
60 MTexels/s (128×64), 40 MTexels/s (8×8) |
7 MTexels/s | 7 MTexels/s |
Polygons | 140,000 polygons/s (15-bit color) | 140,000 polygons/s (4-bit color), 100,000 polygons/s (8-bit color)[45] |
500,000 polygons/s | 50,000 polygons/s | 100,000 polygons/s | |
Sprites | Fillrate (4/8-bit color) |
12 MTexels/s (8×8), 133 MTexels/s (504×255),[n 51] 250 MTexels/s (1024×1024)[n 52] |
15 MTexels/s (8×8),[52] 66 MTexels/s (256×256)[47] |
40 MTexels/s (8×8), 120 MTexels/s (1024×256)[38] |
10 MTexels/s | 12 MTexels/s |
Fillrate (15-bit color) |
12 MTexels/s (8×8), 47 MTexels/s (504×255),[n 53] 250 MTexels/s (1024×1024) |
10 MTexels/s (8×8),[45] 33 MTexels/s (256×256)[53] |
40 MTexels/s (8×8), 120 MTexels/s (1024×256) |
10 MTexels/s | 10 MTexels/s | |
Performance (8-bit color) |
500,000 sprites/sec,[n 54] 16,383 sprites/frame (VDP1) |
240,000 sprites/sec,[52] 4000 sprites/frame[54][55][48] |
600,000 sprites/sec,[n 55] 10,000 sprites/frame |
50,000 sprites/sec, 1000 sprites/frame |
100,000 sprites/sec, 2000 sprites/frame | |
Performance (15-bit color) |
500,000 sprites/sec, 16,383 sprites/frame (VDP1) |
160,000 sprites/sec,[45] 2600 sprites/frame | ||||
Graphical planes | 7 planes[n 56] | 1 plane | 1 plane | 1 plane | 1 plane | |
2D tilemap planes |
2D planes | 5 planes[n 57] | 1 plane | 1 plane | 1 plane | 1 plane |
Tiles | 4,000,000 tiles/sec,[n 58] 80,000 tiles/frame[n 59] |
240,000 tiles/sec, 4000 tiles/frame |
600,000 tiles/sec, 10,000 tiles/frame |
50,000 tiles/sec, 1000 tiles/frame |
100,000 tiles/sec, 2000 tiles/frame | |
3D planes |
3D planes | 3 planes[n 60] | 1 plane | 1 plane | 1 plane | 1 plane |
Equivalent textured polygons |
1,300,000 polygons/s[n 61] | 200,000 polygons/s | 600,000 polygons/s | 50,000 polygons/s | 150,000 polygons/s | |
Video RAM |
Memory | 4–8 MB[n 62] | 3 MB[n 63] | 4–8 MB[n 64] | 2–4 MB[n 65] | 2–4 MB[n 66] |
Bandwidth | 440 MB/s[n 67] | 264 MB/s[n 68] | 562 MB/s[n 69] | 96 MB/s[60] | 200 MB/s[n 70] | |
Latency | 34 ns | 60 ns[n 71] | 60 ns[n 72] | 80 ns[n 73] | 60 ns[39] | |
Texture cache |
Memory | 1 MB[n 74] (17 MB compressed)[n 75] | 2 KB | 4 KB | N/A | |
Bandwidth | 171 MB/s[n 76] (592 MB/s compressed)[n 77] |
132 MB/s[53] | 500 MB/s[n 78] | |||
Latency | 34 ns | 30 ns[n 79] | 16 ns[n 80] | |||
Compression | 34:1 (tiled)[n 75] | 1:1 (N/A) | 1:1 (N/A) |
Notes
- ↑ [2x CPU cores, 2x DMAC controllers, 2x MULT multiplier DSP, 2x DIVU division units[13][14] 2x CPU cores, 2x DMAC controllers, 2x MULT multiplier DSP, 2x DIVU division units[13][14]]
- ↑ [MOPS (million operations per second) MOPS (million operations per second)]
- ↑ [2x SH-2 MULT DSP: 57.27272 MOPS[16]
2x SH-2 DIVU: 1.468531 MOPS (39 cycles per divide)[17]
SCU DSP: 28.63636 MOPS (add and multiply per cycle) 2x SH-2 MULT DSP: 57.27272 MOPS[16]
2x SH-2 DIVU: 1.468531 MOPS (39 cycles per divide)[17]
SCU DSP: 28.63636 MOPS (add and multiply per cycle)] - ↑ [100 MFLOPS, 1.6 floating-point operations per cycle 100 MFLOPS, 1.6 floating-point operations per cycle]
- ↑ [3 cycles per add, 3 cycles per multiply 3 cycles per add, 3 cycles per multiply]
- ↑ [2x SH-2: 57,272,720 adds/sec (1 cycle per add)[16]
SCU DSP: 14,318,180 multiplies/sec (1 cycle per multiply) 2x SH-2: 57,272,720 adds/sec (1 cycle per add)[16]
SCU DSP: 14,318,180 multiplies/sec (1 cycle per multiply)] - ↑ [3 cycles per add[19] 3 cycles per add[19]]
- ↑ [2x SH-2 MULT DSP: 57,272,720 multiplies/sec (1 cycle per multiply)[20]
SCU DSP: 14,318,180 multiplies/sec (1 cycle per multiply) 2x SH-2 MULT DSP: 57,272,720 multiplies/sec (1 cycle per multiply)[20]
SCU DSP: 14,318,180 multiplies/sec (1 cycle per multiply)] - ↑ [3 cycles per multiply[19] 3 cycles per multiply[19]]
- ↑ [2x CPU: 3,579,545 divides/sec (16 cycles per 16-bit divide)[21]
2x DIVU: 1,468,531 divides/sec (39 cycles per divide)[17] 2x CPU: 3,579,545 divides/sec (16 cycles per 16-bit divide)[21]
2x DIVU: 1,468,531 divides/sec (39 cycles per divide)[17]] - ↑ [25 cycles (23 cycles instruction,[22] 2 cycles delay[23]) per 3 divides[12] 25 cycles (23 cycles instruction,[22] 2 cycles delay[23]) per 3 divides[12]]
- ↑ [7 FLOPS per divide[24] 7 FLOPS per divide[24]]
- ↑ [30 cycles per divide[25] 30 cycles per divide[25]]
- ↑ [Transformation (21 adds/multiplies),[26] projection (4 adds/multiplies)[27] and perspective division (1 divide)[28] per vertex:
- 894,886 vertices/sec: 894,886 SCU DSP transformations (14 cycles per transform,[26] 2 cycles per projection), 894,886 SH-2 DIVU divisions (1 divide per vertex)
- 573,644 vertices/sec: 14,341,100 SH-2 MULT DSP transform/projection operations (25 cycles per vertex), 573,644 SH-2 DIVU divisions (1 divide per vertex)
- 1,011,294 vertices/sec: 41,463,054 SH-2 transform/projection/divide cycles (41 cycles per vertex)
- 894,886 vertices/sec: 894,886 SCU DSP transformations (14 cycles per transform,[26] 2 cycles per projection), 894,886 SH-2 DIVU divisions (1 divide per vertex)
- 573,644 vertices/sec: 14,341,100 SH-2 MULT DSP transform/projection operations (25 cycles per vertex), 573,644 SH-2 DIVU divisions (1 divide per vertex)
- 1,011,294 vertices/sec: 41,463,054 SH-2 transform/projection/divide cycles (41 cycles per vertex)]
- ↑ [8 vertices per cube (6 quad polygons)[29] 8 vertices per cube (6 quad polygons)[29]]
- ↑ [17 cycles (15 cycles instruction,[30] 2 cycles delay[23]) per vertex 17 cycles (15 cycles instruction,[30] 2 cycles delay[23]) per vertex]
- ↑ [25 cycles (23 cycles instruction,[22] 2 cycles delay) per triangle polygon 25 cycles (23 cycles instruction,[22] 2 cycles delay) per triangle polygon]
- ↑ [39 FLOPS per vertex (32 multiplies/adds,[31] 1 divide[28]) 39 FLOPS per vertex (32 multiplies/adds,[31] 1 divide[28])]
- ↑ [16 vertex blocks, equivalent polygons/vertex ratio to triangle strips[32] (N polygons per N+2 vertices), 14 polygons per 16 vertices (7 polygons per 8 vertices) 16 vertex blocks, equivalent polygons/vertex ratio to triangle strips[32] (N polygons per N+2 vertices), 14 polygons per 16 vertices (7 polygons per 8 vertices)]
- ↑ [116 cycles per vertex (74 cycles matrix transformation,[33] 4 projection multiplies/adds,[31] 1 divide[28]) 116 cycles per vertex (74 cycles matrix transformation,[33] 4 projection multiplies/adds,[31] 1 divide[28])]
- ↑ [3 vertices per triangle polygon 3 vertices per triangle polygon]
- ↑ [8 transformations (168 adds/multiplies), 6 surface normals (72 multiplies, 36 adds),[34] 6 light sources (72 adds/multiplies),[35] 8 projections (32 adds/multiplies) and 8 perspective divisions (24 divides)[27] per cube with 8 vertices and 6 quad polygons:
- 52,640 cubes/sec: 52,640 SCU DSP cubes (112 transform cycles, 72 surface normal cycles, 72 light source cycles,[35] 16 projection cycles), 1,263,360 SH-2 DIVU divisions (24 divides per cube)
- 8548 cubes/sec: 2,940,512 SH-2 MULT DSP transform/projection operations (347 cycles per cube), 205,152 SH-2 DIVU divisions (24 divides per cube)
- 72,614 cubes/sec: 52,862,992 SH-2 transform/projection/divide cycles (728 cycles per cube)
- 52,640 cubes/sec: 52,640 SCU DSP cubes (112 transform cycles, 72 surface normal cycles, 72 light source cycles,[35] 16 projection cycles), 1,263,360 SH-2 DIVU divisions (24 divides per cube)
- 8548 cubes/sec: 2,940,512 SH-2 MULT DSP transform/projection operations (347 cycles per cube), 205,152 SH-2 DIVU divisions (24 divides per cube)
- 72,614 cubes/sec: 52,862,992 SH-2 transform/projection/divide cycles (728 cycles per cube)]
- ↑ [54 cycles (23 cycles RTPT, 8 cycles MVMVA, 17 cycles NCCS,[36] 6 cycles delay) per triangle polygon 54 cycles (23 cycles RTPT, 8 cycles MVMVA, 17 cycles NCCS,[36] 6 cycles delay) per triangle polygon]
- ↑ [976 FLOPS per 16-vertex block, 14 polygons per block, 75 FLOPS per polygon[31]
- Transformation: 528 FLOPS per 16-vertex block (512 multiplies/adds, 16 divides)
- Lighting: 448 FLOPS per 14-polygon block (32 FLOPS per polygon)
- Transformation: 528 FLOPS per 16-vertex block (512 multiplies/adds, 16 divides)
- Lighting: 448 FLOPS per 14-polygon block (32 FLOPS per polygon)]
- ↑ [444 cycles: 348 cycles transformation (116 cycles per vertex), 32 lighting multiplies/adds[31] 444 cycles: 348 cycles transformation (116 cycles per vertex), 32 lighting multiplies/adds[31]]
- ↑ [8 transformations (168 adds/multiplies), 8 surface normals (96 multiplies, 48 adds), 8 light sources (96 adds/multiplies), 8 projections (32 adds/multiplies) and 8 perspective divisions (24 divides) per cube with 8 vertices and 6 quad polygons:
- 44,744 cubes/sec: 44,744 SCU DSP cubes (112 transform cycles, 96 surface normal cycles, 96 light source cycles, 16 projection cycles), 1,073,856 SH-2 DIVU divisions (24 divides per cube)
- 16,444 cubes/sec: 7,235,360 SH-2 MULT DSP transform/projection operations (440 cycles per cube), 394,675 SH-2 DIVU divisions (8 divides per cube)
- 58,942 cubes/sec: 48,568,208 SH-2 transform/projection/divide cycles (824 cycles per cube)
- 44,744 cubes/sec: 44,744 SCU DSP cubes (112 transform cycles, 96 surface normal cycles, 96 light source cycles, 16 projection cycles), 1,073,856 SH-2 DIVU divisions (24 divides per cube)
- 16,444 cubes/sec: 7,235,360 SH-2 MULT DSP transform/projection operations (440 cycles per cube), 394,675 SH-2 DIVU divisions (8 divides per cube)
- 58,942 cubes/sec: 48,568,208 SH-2 transform/projection/divide cycles (824 cycles per cube)]
- ↑ [92 cycles (23 cycles RTPT, 24 cycles MVMVA, 39 cycles NCCT,[36] 6 cycles delay) per triangle polygon 92 cycles (23 cycles RTPT, 24 cycles MVMVA, 39 cycles NCCT,[36] 6 cycles delay) per triangle polygon]
- ↑ [1040 FLOPS per 16-vertex block, 14 polygons per block, 70 FLOPS per polygon[31]
- Transformation: 528 FLOPS per 16-vertex block (512 multiplies/adds, 16 divides)
- Lighting: 512 FLOPS per 16-vertex block (32 FLOPS per vertex)
- Transformation: 528 FLOPS per 16-vertex block (512 multiplies/adds, 16 divides)
- Lighting: 512 FLOPS per 16-vertex block (32 FLOPS per vertex)]
- ↑ [636 cycles: 348 cycles transformation (116 cycles per vertex), 96 lighting multiplies/adds[31] 636 cycles: 348 cycles transformation (116 cycles per vertex), 96 lighting multiplies/adds[31]]
- ↑ [Diamond Edge 3D Diamond Edge 3D]
- ↑ [28.63636 MPixels/s per VDP 28.63636 MPixels/s per VDP]
- ↑ [VDP1: 35.6465 MPixels/s
VDP2: 57.27272 MPixels/s VDP1: 35.6465 MPixels/s
VDP2: 57.27272 MPixels/s] - ↑ [VDP1: 35.6465 MPixels/s
VDP2: 114.54544 MPixels/s VDP1: 35.6465 MPixels/s
VDP2: 114.54544 MPixels/s] - ↑ [VDP1: 28.63636 MPixels/s (447,443 tiles/sec, 8×8 pixel tiles)
VDP2: 534.77376 MPixels/s (8,355,840 tiles/sec, 8×8 pixel tiles) VDP1: 28.63636 MPixels/s (447,443 tiles/sec, 8×8 pixel tiles)
VDP2: 534.77376 MPixels/s (8,355,840 tiles/sec, 8×8 pixel tiles)] - ↑ [33.8688 MPixels/s (529,200 tiles/sec, 8×8 pixel tiles) 33.8688 MPixels/s (529,200 tiles/sec, 8×8 pixel tiles)]
- ↑ [VDP1: 35.646464 MPixels/s
VDP2: 534.77376 MPixels/s VDP1: 35.646464 MPixels/s
VDP2: 534.77376 MPixels/s] - ↑ [67.7376 MPixels/s (1,058,400 tiles/sec) 67.7376 MPixels/s (1,058,400 tiles/sec)]
- ↑ [18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,[38] 1 cycle per pixel: 529,661 polygons/sec (118 cycles per 10×10 pixel polygon) 18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,[38] 1 cycle per pixel: 529,661 polygons/sec (118 cycles per 10×10 pixel polygon)]
- ↑ [16 cycles per polygon in 28.63636 MHz texture cache,[41] 1 cycle per pixel in 28.63636 MHz framebuffer 16 cycles per polygon in 28.63636 MHz texture cache,[41] 1 cycle per pixel in 28.63636 MHz framebuffer]
- ↑ [18 megapixels/sec for polygons that are 50-pixel or less[40] 18 megapixels/sec for polygons that are 50-pixel or less[40]]
- ↑ [18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,[38] 1 cycle per pixel, 62 cycles per 40-pixel polygon, 104 cycles per 80-pixel polygon 18 cycles memory access (9 cycles double-buffering) per polygon, 5 cycles data (40 bytes, 9 bytes/sec) and 4 cycles latency (60 ns access, 16 ns cycles) per polygon,[38] 1 cycle per pixel, 62 cycles per 40-pixel polygon, 104 cycles per 80-pixel polygon]
- ↑ [5-bit banding (32 shades) in early models released from late 1994 to early 1997,[43] 8-bit shading (256 shades) in later models released from late 1997 (SCPH-7000) onwards 5-bit banding (32 shades) in early models released from late 1994 to early 1997,[43] 8-bit shading (256 shades) in later models released from late 1997 (SCPH-7000) onwards]
- ↑ [164,576 Gouraud-shaded 10×10 polygons/sec: 57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,[41] 232 cycles Gouraud shading),[44] 348 cycles per polygon (100 cycles drawing per 100-pixel polygon)[10] 164,576 Gouraud-shaded 10×10 polygons/sec: 57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,[41] 232 cycles Gouraud shading),[44] 348 cycles per polygon (100 cycles drawing per 100-pixel polygon)[10]]
- ↑ [57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,[41] 232 cycles Gouraud shading),[44] 32 cycles drawing per 32-pixel polygon[10] 57.27272 million parallel bus cycles/sec, 248 cycles overhead per polygon (16 cycles command table fetch,[41] 232 cycles Gouraud shading),[44] 32 cycles drawing per 32-pixel polygon[10]]
- ↑ [VDP1: 19.023 MTexels/s (504×255 textures), 14 MTexels/s (10×10 textures)[44]
VDP2: 14.31818 MTexels/s (512×256 to 256×512 textures) VDP1: 19.023 MTexels/s (504×255 textures), 14 MTexels/s (10×10 textures)[44]
VDP2: 14.31818 MTexels/s (512×256 to 256×512 textures)] - ↑ [33 MTexels/s,[47] 2 KB texture cache, automatic tiling[48] 33 MTexels/s,[47] 2 KB texture cache, automatic tiling[48]]
- ↑ [4 KB texture cache, manual tiling[49] 4 KB texture cache, manual tiling[49]]
- ↑ [36 cycles memory access (2x access) per textured polygon,[38] 1 cycle per texel:
- 8228 cycles per 128×64 texel polygon (7596 polygons/sec)
- 136 cycles per 10×10 texel polygon (459,558 polygons/sec)
- 8228 cycles per 128×64 texel polygon (7596 polygons/sec)
- 136 cycles per 10×10 texel polygon (459,558 polygons/sec)]
- ↑ [36 cycles memory access (2x access) per textured polygon,[38] 1 cycle per texel:
- 96 cycles per 60-texel polygon
- 116 cycles per 80-texel polygon
- 96 cycles per 60-texel polygon
- 116 cycles per 80-texel polygon]
- ↑ [Gouraud shading halves fillrate[52] Gouraud shading halves fillrate[52]]
- ↑ [VDP1: 19.023 MTexels/s
VDP2: 114.54544 MTexels/s VDP1: 19.023 MTexels/s
VDP2: 114.54544 MTexels/s] - ↑ [VDP2: 4x 1024×1024 textures, 60 FPS VDP2: 4x 1024×1024 textures, 60 FPS]
- ↑ [VDP1: 19.023 MTexels/s
VDP2: 28.63636 MTexels/s VDP1: 19.023 MTexels/s
VDP2: 28.63636 MTexels/s] - ↑ [57.27272 million parallel bus cycles/sec, 99 parallel cycles per 8×1 sprite[44] 57.27272 million parallel bus cycles/sec, 99 parallel cycles per 8×1 sprite[44]]
- ↑ [36 cycles memory access (2x access) per sprite,[38] 1 cycle per texel: 100 cycles per 8×8 texel sprite 36 cycles memory access (2x access) per sprite,[38] 1 cycle per texel: 100 cycles per 8×8 texel sprite]
- ↑ [1 VDP1 plane, 5 VDP2 planes 1 VDP1 plane, 5 VDP2 planes]
- ↑ [1 VDP1 plane, 4 VDP2 planes 1 VDP1 plane, 4 VDP2 planes]
- ↑ [VDP1: 500,000 sprites/tiles per second
VDP2: 3,932,160 tiles per second (4x 128×128 tiles[50] at 60 FPS) VDP1: 500,000 sprites/tiles per second
VDP2: 3,932,160 tiles per second (4x 128×128 tiles[50] at 60 FPS)] - ↑ [VDP1: 16,383 sprites/tiles per frame
VDP2: 65,536 tiles per second (4x 128×128 tiles)[50] VDP1: 16,383 sprites/tiles per frame
VDP2: 65,536 tiles per second (4x 128×128 tiles)[50]] - ↑ [1 VDP1 plane, 2 VDP2 planes 1 VDP1 plane, 2 VDP2 planes]
- ↑ [VDP1: 300,000 textured polygons per second
VDP2: Equivalent to 1,000,000 textured polygons per second. 4096×4096 tiled planes can be manipulated as textured polygons, with scaling, rotation, perspective transformation, curved surface, and bumps. At 500 pixels per polygon, equivalent to 33,554 textured polygons per frame, at 30 frames per second. VDP1: 300,000 textured polygons per second
VDP2: Equivalent to 1,000,000 textured polygons per second. 4096×4096 tiled planes can be manipulated as textured polygons, with scaling, rotation, perspective transformation, curved surface, and bumps. At 500 pixels per polygon, equivalent to 33,554 textured polygons per frame, at 30 frames per second.] - ↑ [2 MB main RAM (1 MB SDRAM, 1 MB FPM DRAM), 1.5 MB VRAM (SDRAM), 512 KB CD-ROM buffer, 1–4 MB optional main RAM expansion (Extended RAM Cartridge) 2 MB main RAM (1 MB SDRAM, 1 MB FPM DRAM), 1.5 MB VRAM (SDRAM), 512 KB CD-ROM buffer, 1–4 MB optional main RAM expansion (Extended RAM Cartridge)]
- ↑ [2 MB main RAM (EDO DRAM),[56][57] 1 MB VRAM[58] 2 MB main RAM (EDO DRAM),[56][57] 1 MB VRAM[58]]
- ↑ [4 MB RDRAM, 4 MB optional RDRAM Expansion Pak 4 MB RDRAM, 4 MB optional RDRAM Expansion Pak]
- ↑ [FPM DRAM / VRAM FPM DRAM / VRAM]
- ↑ DRAM[59]
- ↑ [114.54544 MB/s main RAM (SH-4), 286.3636 MB/s VRAM (171.81816 MB/s VDP1, 114.54544 MB/s VDP2), 40 MB/s CD-ROM buffer 114.54544 MB/s main RAM (SH-4), 286.3636 MB/s VRAM (171.81816 MB/s VDP1, 114.54544 MB/s VDP2), 40 MB/s CD-ROM buffer]
- ↑ [132 MB/s main RAM, 132 MB/s VRAM 132 MB/s main RAM, 132 MB/s VRAM]
- ↑ [562.5 MB/s (9-bit, 500 MHz) 562.5 MB/s (9-bit, 500 MHz)]
- ↑ [32-bit,[59] 50 MHz 32-bit,[59] 50 MHz]
- ↑ [Main RAM: Samsung KM48V514DJ-6 EDO DRAM (60 ns access),[56][61]
VRAM: Samsung KM4216V2566-6 VRAM (60 ns access)[62][63] Main RAM: Samsung KM48V514DJ-6 EDO DRAM (60 ns access),[56][61]
VRAM: Samsung KM4216V2566-6 VRAM (60 ns access)[62][63]] - ↑ [60 ns RDRAM access[64][65][66] 60 ns RDRAM access[64][65][66]]
- ↑ [12.5 MHz, 80 ns cycles 12.5 MHz, 80 ns cycles]
- ↑ [SDRAM: 512 KB VDP1 texture memory, 512 KB VDP2 memory SDRAM: 512 KB VDP1 texture memory, 512 KB VDP2 memory]
- ↑ 75.0 75.1 [17 MB textures (4096×4096 and 1024×1024 texels, 8-bit palettes) compressed in 512 KB VDP2 memory 17 MB textures (4096×4096 and 1024×1024 texels, 8-bit palettes) compressed in 512 KB VDP2 memory]
- ↑ [57.27272 MB/s VDP1 texture bandwidth, 114.54544 MB/s VDP2 bandwidth 57.27272 MB/s VDP1 texture bandwidth, 114.54544 MB/s VDP2 bandwidth]
- ↑ [57.27272 MB/s VDP1 texture bandwidth, 534.77376 MB/s compressed VDP2 texture bandwidth 57.27272 MB/s VDP1 texture bandwidth, 534.77376 MB/s compressed VDP2 texture bandwidth]
- ↑ [64-bit, 62.5 MHz 64-bit, 62.5 MHz]
- ↑ [33.8688 MHz, 30 ns cycles 33.8688 MHz, 30 ns cycles]
- ↑ [62.5 MHz, 16 ns cycles 62.5 MHz, 16 ns cycles]
References
- ↑ File:Edge UK 030.pdf, page 99
- ↑ 2.0 2.1 2.2 2.3 File:SSM UK 24.pdf, page 25
- ↑ 3.0 3.1 3.2 3.3 Pure Entertainment Interview
- ↑ Jason Gosling (Core Design) Interview (Edge)
- ↑ Shiny Entertainment Interview (Edge)
- ↑ 6.0 6.1 Jason Gosling (Core Design) Interview (Edge)
- ↑ Scavenger Interview (Edge)
- ↑ 8.0 8.1 8.2 8.3 Sega Saturn 3D Capabilities
- ↑ File:SCEA BBS.pdf
- ↑ 10.0 10.1 10.2 Saturn VDP1 hardware notes (2003-05-17)
- ↑ Core Design Interview (Edge)
- ↑ 12.0 12.1 Playstation Specifications (GTE Coordinate Calculation Commands)
- ↑ File:SH7604 Hardware Manual.pdf, page 3
- ↑ File:SH7604 Hardware Manual.pdf, page 22
- ↑ File:PlayStation Hardware.pdf, page 17
- ↑ 16.0 16.1 File:SH7604 Hardware Manual.pdf, page 51
- ↑ 17.0 17.1 File:Hitachi SuperH Programming Manual.pdf, page 308
- ↑ File:NextGeneration US 12.pdf, page 42
- ↑ 19.0 19.1 File:Instruction Tables.pdf, page 101
- ↑ File:SH7604 Hardware Manual.pdf, page 36
- ↑ File:Hitachi SuperH Programming Manual.pdf, page 155
- ↑ 22.0 22.1 Everything You Have Always Wanted to Know about the Playstation (pages 60-61)
- ↑ 23.0 23.1 Team PSX (page 17)
- ↑ MSP Simulation Layer for Vector Unit Computational Divides (RSP)
- ↑ File:Instruction Tables.pdf, page 100
- ↑ 26.0 26.1 File:ST-240-A-SP1-052295.pdf, page 8
- ↑ 27.0 27.1 Design of Digital Systems and Devices (page 97)
- ↑ 28.0 28.1 28.2 3D Polygon Rendering Pipeline (page 50)
- ↑ File:ST-237-R1-051795.pdf, page 51
- ↑ Everything You Have Always Wanted to Know about the Playstation (pages 59-60)
- ↑ 31.0 31.1 31.2 31.3 31.4 31.5 Design of Digital Systems and Devices (pages 95-97)
- ↑ gSPVertex (N64 SDK)
- ↑ File:MMX Technology Architecture Overview.pdf, page 10
- ↑ Design of Digital Systems and Devices (page 95)
- ↑ 35.0 35.1 [Sega DTS, March 1996, DSP Demo Sega DTS, March 1996, DSP Demo]
- ↑ 36.0 36.1 Everything You Have Always Wanted to Know about the Playstation (pages 49-51, 59-67)
- ↑ 37.0 37.1 37.2 File:ADV GPU.pdf, page 28
- ↑ 38.0 38.1 38.2 38.3 38.4 38.5 38.6 38.7 RDP Programming, Nintendo 64 Programming Manual, Nintendo
- ↑ 39.0 39.1 Tasmania 3D
- ↑ 40.0 40.1 40.2 File:SCEA BBS.pdf, page 1041
- ↑ 41.0 41.1 41.2 File:TUTORIAL.pdf, page 15
- ↑ [ST-013-R3-061694.pdf ST-013-R3-061694.pdf]
- ↑ File:ADV_GPU.pdf, page 23
- ↑ 44.0 44.1 44.2 44.3 File:TUTORIAL.pdf, page 8
- ↑ 45.0 45.1 45.2 45.3 45.4 45.5 45.6 45.7 45.8 45.9 Sony PlayStation (SONY PS) FREQUENTLY ASKED QUESTIONS
- ↑ Microcode: Past Microcode, Nintendo 64 Programming Manual, Nintendo
- ↑ 47.0 47.1 File:ADV GPU.pdf, page 29
- ↑ 48.0 48.1 PlayStation GPU documentation
- ↑ Texture Mapping, Nintendo 64 Programming Manual, Nintendo
- ↑ 50.0 50.1 50.2 File:ST-058-R2-060194.pdf, page 132
- ↑ Texture Mapping: Restrictions, Nintendo 64 Programming Manual, Nintendo
- ↑ 52.0 52.1 52.2 File:SCEA BBS.pdf, page 672
- ↑ 53.0 53.1 File:ADV GPU.pdf, page 30
- ↑ File:NextGeneration US 01.pdf, page 48
- ↑ PlayStation documentation (pages 28-29)
- ↑ 56.0 56.1 PU-18 (PSX Dev)
- ↑ Samsung KM48V514DJ-6 datasheet
- ↑ File:NextGeneration US 06.pdf, page 53
- ↑ 59.0 59.1 PARADISE TASMANIA 3D
- ↑ Nvidia NV1
- ↑ File:KM48 datasheet.pdf
- ↑ PU-7 (PSX Dev)
- ↑ File:KM4216 datasheet.pdf
- ↑ Map (N64dev)
- ↑ File:Direct RDRAM datasheet.pdf
- ↑ File:Oki Concurrent RDRAM datasheet.pdf
See also