Graphics Processing Unit (GPU): Difference between revisions
| Revision as of 00:00, 23 October 2026 RemmyLee (psx.wiki: Go wiki engine, slop gate, design study, first page) | Revision as of 02:22, 23 October 2026 RemmyLee (Hardware and system software pages from the Sony manuals) | ||
| Line 10: | Line 10: | ||
| The PlayStation has two graphics processors: the GPU and the GTE (Geometry Transformation Engine).[^hw33] | The PlayStation has two graphics processors: the GPU and the GTE (Geometry Transformation Engine).[^hw33] | ||
| + | The GPU and the GTE connect to the CPU as shown in [System Architecture](/hardware/system-architecture/). | ||
| + | |||
| The GPU draws polygons and sprites into the frame buffer. It also displays areas of the frame buffer on the screen.[^hw33] | The GPU draws polygons and sprites into the frame buffer. It also displays areas of the frame buffer on the screen.[^hw33] | ||
| Line 89: | Line 91: | ||
| The GPU clips all drawing to the current drawing area.[^hw35] | The GPU clips all drawing to the current drawing area.[^hw35] | ||
| + | ## Sprite Drawing | ||
| + | |||
| + | The GPU draws sprites of up to 256 x 256 pixels. Width and height can each vary up to that size.[^hw35] | ||
| + | |||
| + | Sprite image data sits in a non-display area of the frame buffer. It must be transferred there before the sprite drawing command runs.[^hw35] | ||
| + | |||
| + | ### Texture Pages | ||
| + | |||
| + | A 256 x 256 pixel area of sprite patterns in the frame buffer is a texture page.[^hw36] | ||
| + | |||
| + | The size of a texture page in the frame buffer depends on the texture mode.[^hw36] | ||
| + | |||
| + | The TSB parameter of a drawing command gives the page number. The page number of a texture page at (tx, ty) is tpage = ty/16 + tx/64.[^hw36] | ||
| + | |||
| + | The actual tpage value also holds the CLUT mode (4, 8 or 16 bits) and the semi-transparency rate.[^hw36] | ||
| + | |||
| + | ### Sprite Pattern Color Modes | ||
| + | |||
| + | Sprites have three color modes: 4-bit CLUT, 8-bit CLUT and 15-bit direct.[^hw36] | ||
| + | |||
| + | A CLUT (color lookup table) is a table of RGB values. Each pixel of a CLUT sprite is an index into it.[^hw36] | ||
| + | |||
| + | A 4-bit CLUT has 16 entries and an 8-bit CLUT has 256 entries. Each entry has the same structure as a 15-bit pixel.[^hw36] | ||
| + | |||
| + | Each sprite can have its own CLUT.[^hw36] | ||
| + | |||
| + | The CBA parameter of a drawing command gives the left coordinate of the CLUT in the frame buffer.[^hw36] | ||
| + | |||
| + | ## Polygon Drawing | ||
| + | |||
| + | The GPU draws triangles and rectangles from the screen coordinates of each vertex.[^hw37] | ||
| + | |||
| + | With Gouraud shading each vertex has its own color. The GPU interpolates the colors across the polygon.[^hw37] | ||
| + | |||
| + | Texture mapping applies a 2-dimensional image to a polygon. Texture patterns sit in non-display areas of the frame buffer and are handled like sprite patterns.[^hw37] | ||
| + | |||
| + | ## Texture Cache | ||
| + | |||
| + | The texture cache (T-cache) is a high-speed buffer memory between the GPU and the frame buffer. It speeds up drawing.[^hw37] | ||
| + | |||
| + | Each pixel of a texture is likely to be read more than once.[^hw37] | ||
| + | |||
| + | The GPU reads a texture pixel from the T-cache when it is there. Otherwise it reads the frame buffer.[^hw37] | ||
| + | |||
| + | The T-cache holds its data from polygon to polygon. Polygons drawn in a row are faster when their textures fit in the T-cache.[^hw37] | ||
| + | |||
| + | The T-cache is 2K bytes.[^hw38] | ||
| + | |||
| + | The T-cache size in pixels for each pixel mode: | ||
| + | |||
| + | Table: T-cache size | ||
| + | |||
| + | | Pixel Mode | Size (width x length) | | ||
| + | | --- | --- | | ||
| + | | 4 bits/pixel | 64 x 64 pixels | | ||
| + | | 8 | 64 x 32 | | ||
| + | | 16 | 32 x 32 | | ||
| + | |||
| ## References | ## References | ||
| Line 94: | Line 154: | ||
| [^hw34]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-4, Table 3-1. | [^hw34]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-4, Table 3-1. | ||
| [^hw35]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-5, Figure 3-2. | [^hw35]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-5, Figure 3-2. | ||
| + | [^hw36]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-6, Figure 3-4, Figure 3-5. | ||
| + | [^hw37]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-7. | ||
| + | [^hw38]: Sony Computer Entertainment Inc. PlayStation Hardware. August 1998. Page 3-8, Table 3-2. | ||