|[Home] [Credit Search] [Category Browser] [Staff Roll Call]||The LINUX.COM Article Archive|
|Originally Published: Tuesday, 30 November 1999||Author: Luke Groeninger|
|Published to: featured_articles/Featured Articles||Page: 1/1 - [Std View]|
Linux 3D Revisited
After the article I wrote last week, many people were curious for more details on 3D acceleration in Linux. A few people insulted me for not being technical in an article meant to be a summary, not a thesis. For all of you people out there wanting a more detailed work, here you go....
The X Window System is a client-server graphical user interface, designed so that it can be run across a network as easily as it can be run on a lone computer. While this gives X unparalleled flexibility, it makes it extraordinarily complex and gives it an overhead that is at times unbelievable. When running on a single computer, it has to send commands to itself through loopback for even simple tasks, such as drawing a window. When doing any task that requires constant refreshing, this causes more CPU/memory utilization, and can slow the application down considerably. Because of this, 3D accelerators that can not render in a window (or cannot render directly to a screen, like some of the older low-cost 3D accelerators) take more work to get it to run in this fashion, and have more overhead than other platforms. 3D accelerators that can render directly to the screen and can do it in a window (almost all 3D cards that are of any decent quality) can run at almost full hardware acceleration. On older CPUs where the processor is easily overloaded, the processor becomes the major bottleneck because of the overhead of X.
DRI, or Direct Rendering Infrastructure, fixes a lot of this by offering a different rendering path. By using a kernel modification to allow direct hardware access to the 3D accelerator, it allows the programs to run 3D acceleration at almost full speed through the kernel, which in turn passes the data directly to the X server. The old method of doing this causes the data to be passed back and forth between the application, the X server, and the 3D hardware, putting unneeded stress on the computer. DRI improves performance, maintains flexibility, and maintains the same level of security.
Almost all of the major vendors that support open source are now supporting DRI (3Dfx, nVidia, ATI, etc.) in Linux. This support, in turn, should help propel Linux to a new level for professional applications.
Luke Groeninger is currently a student at school, where he spends part of his time running several Linux servers, doing school work, working part-time, and helping out with Linux.com. Questions and comments can be sent to firstname.lastname@example.org, flame can be deleted, and if you feel you can do a better job, volunteer to work with Linux.com!