SSE2 Optimization - OpenGL Data Stream Case Study
Author: Intel® Software Network
Published On: Tuesday, February 22, 2005 | Last Modified On: Monday, April 28, 2008
Introduction
At its core, Streaming Single Instruction Multiple Data Extensions (SSE2) aims to encourage exploitation of parallelism. The SSE2 benefit is allowing an application to perform the same manipulations on more than one data item at a time. To take advantage of SSE2 the software developer should be on the lookout for situations where computations can be done in parallel on multiple data items. This paper explores the use of SSE2 for a specific case in which bounding boxes are computed for each triangle in an input graphics data stream. First, the case of a stream of disjoint triangles is considered and two different ways of approaching an SSE2 implementation are demonstrated, highlighting the benefit of one over the other. Next, the case of triangle strips is examined and an SSE2 implementation is developed. Performance of the approaches developed is compared.