Main Page   Modules   Alphabetical List   Data Structures   Data Fields  

Enhancements - PlayStation 2
[3.2]

The PlayStation 2 platform has been particularly stable, in terms of hardware and libraries, during the development of this release. This has allowed us to both consolidate our code and offer performance improvements.

Third generation of Vector Code Rendering pipelines (G3 Pipes) for PlayStation 2

The majority of the performance benefits on PlayStation 2 come from the Vector Code pipelines. We have been concentrating on optimizing these and providing a suite of rendering pipelines which is complete in terms of the supported combinations of camera projection, culling, clipping, Back Face Culling, fog etc.

The new system supports all pipeline combinations listed below:

   Any of             Lines, Tristrips or Trilists
   Using              Perspective Camera or Parallel Camera
   Using              Fastpath Rendering, Fast Culling or True Clipper
   Using              Backface culling, Frontface culling or full rendering
   Using up to 12 of  Ambient, Direction, Point, Spot, Soft Spot and Pre-lights
   Using              MatFX, Skinning or SkinMatFX
   Using              Fogging or no fog
   

Overall performance increases are dramatic. See platform specific documentation in the API reference for more data. These optimizations are at the VU level and are cumulative with any other performance upgrades (such as PS2All).

PS2All Pipeline construction kit

The PlayStation 2 pipeline is now fully exposed through the new 'PS2All' API. The default PS2All pipelines will provide a performance increase of between 5% and 15% (depending on the level of bus activity due to the rest of the app) over and above the default PS2Manager pipelines. If developers create their own PS2All pipes and customize them it is possible to achieve performance increases of significantly more than 15%.

NB: During the upgrade to RenderWare Graphics 3.2, developers should choose to use one pipeline system [either PS2All pipes OR their current PS2Manager custom pipes] for all of their objects. Using both, for example, PS2All for non-custom and PS2 manager for custom objects, may cause a degradation in performance due to increased ICache thrashing (PS2 All and PS2 Manager share no code). Developers can upgrade their current custom pipes to PS2 All or trivially revert the default pipes to (the still available) PS2 Manager versions.

The performance benefits using PS2All are cumulative with other optimizations (such as the G3 Pipelines).

Asynchronous Texture Upload

PlayStation 2 is a machine of many parts. To get maximum performance on the machine (like any other) you have to make sure that all the resources of the machine are being used at maximum capacity.

To facilitate this, we have implemented a texture upload method that can upload textures to the GS using path 3, while geometry is being passed over path 1. This enables greater texture and/or geometry upload in a frame, allowing more detail to be presented on screen while maintaining a 60Hz frame rate.

Performance Optimization

We have had the opportunity to profile RenderWare Graphics with the Sony Performance Analyser. This has allowed us to address some specific areas for performance improvements.

Curved Surfaces

This feature is primary provided as a PlayStation 2 enhancement, since the platform architecture is particularly suitable for retaining the artwork as Bézier patches until the rendering stage - however it is implemented on the other platforms for compatibility. On PlayStation 2, Bézier patches are converted into triangles by VU code, thus greatly reducing the amount of geometry data to be transferred by DMA. Thus, the final polygon throughput can approach the theoretical maximums for the console. The Bézier plugin is compatible with MatFX and Skinned patches - but not with Morph, DMorph etc. The export is fully integrated into the exporters.

On PlayStation 2, patch LOD can vary dynamically - an object modeled with patches will be converted to only a few polygons when it is in the distance, but up close the object could be represented by hundreds of thousands of polygons. This means that the apparent smoothness of the object will be retained at all times, but the number of polygons rendered will be no more than is required to achieve this. This means that rather than using a large number of polygons in a model to represent a curve, you can benefit be representing it as a far smaller number of Bézier patches.

Preinstanced Geometry

This now allows you to save instanced data to disk. This will reduce memory footprint and load time, though the data will no longer be platform independent.
Criterion Software © 1993-2003 Criterion Software Limited. All rights reserved. Built Tue Apr 22 12:46:21 2003. Send Feedback
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)