Real-time 3D-graphics rendering is a highly computationally intensive task, with a high memory bandwidth requirement. A multiprocessor architecture called SpaceCAKE, developed at Philips Research in the Processor Oriented Architectures department, is used as a high performance multimedia platform to run a software implementation of the 3D-graphics standard OpenGL. The Wasabi chip is the instance of the SpaceCAKE architecture that is currently under development and serves as a target architecture for this project. To achieve an optimal gain for this multiprocessor architecture parallelism in OpenGL needs to be found and exploited.
Two adapted versions of Mesa - a free software
implementation of OpenGL - have been implemented and ported to the
SpaceCAKE architecture. Both versions exploit data partitioning to achieve
parallelism. The first implementation, called Sort-Middle, divides the
2D output in rectangular segments and assigns individual segments to each
processing unit of the multiprocessing platform. The second implementation,
called Sort-Last, distributes groups of
polygons amongst processing units.
The efficiency and speedup of both implementations
have been measured using an adapted version of the game ``Tuxracer'' as
a test application. The performance and speedup have been measured with
and without taking rasterization into account. The latter case is of importance
is performed in dedicated hardware.
Both implementations show that the performance
gain of parallelism is limited due to overhead and load imbalance. Load
imbalance is caused by the highly data-dependent execution times of the
rasterization of polygons. Overhead is caused by performing part of the
functionality on each processing unit.
We conclude that implementing parallelism for highly data dependent applications that have been optimized for a single processor is difficult, likely resulting in poor scalability. Specifically, the use of a global state machine for 3D-graphics rendering causes significant overhead when implementing data partitioning. A combination of functional partitioning and data partitioning is recommended for further research.