Multithreaded Graphics?

When dealing with multiple 3D threads being sent to the graphics card there are a number of things that must be taken into account that aren't normally considered. Management of execution resources, context switching time and the ability to dedicate resources to certain tasks are all examples of problems that arise.

For starters, this would almost never happen in any of today's games. In order to see the applications for this sort of parallelism you'd have to look at the professional world and even to the future of Microsoft OSes. If you haven't heard the codename Longhorn before then let us provide you with a short introduction. Longhorn is the codename for Microsoft's next-generation UI for Windows that promises to make extensive use of hardware DirectX acceleration of the desktop. When simply working with Longhorn you'll immediately have a number of different threads being sent to your graphics card, and managing them can become an issue.

3DLabs is particularly proud of their command processor which is designed to handle these multithreaded situations. Whenever you're dealing with multiple threads being executed in parallel you want to make sure that you're maximizing your execution resources; this is one of the major roles of the command processor. The command processor offers per-thread command buffers which is a feature that has been around in high-end cards for a while. In the event that one thread sends corrupt data to the video card the thread will die but the OS will continue to function which is very important for situations like under Longhorn. In a present-day situation, if a game sent corrupt data to your video card then you'd get a lovely bluescreen without per-thread command buffers to provide some insulation from concurrent threads. The command processor also allows for extremely quick state changes which comes in handy when you are switching between multiple 3D windows.

From the standpoint of making a great deal of sense for Longhorn, these are all great features to have but they won't be tangible for most users for quite some time. The command processor does play an active role in any multithreaded 3D application where the VPU is being requested by multiple threads. For current games, the command processor isn't nearly as important as the other features of the part but it's worth mentioning nonetheless.

The 3D Pipeline 16 FP Vertex Processors
Comments Locked

0 Comments

View All Comments

Log in

Don't have an account? Sign up now