GLX in bad state
Nadav Frum <[email protected]>
| Newsgroups | gmane.comp.emulators.winex.devel |
|---|---|
| Message-ID | <Pine.LNX.4.44_heb2.10.0402111340420.15106-100000@localhost.localdomain> |
Multi-pass rendering is a technique whereby a complex scene is rendered in several stages. The result of an early rendering stage is applied to the rendering of a later stage. This is done when the hardware cannot render the complete scene in one pass. One use of this technique is when the scene requires the application of multiple textures to a particular object and the hardware cannot accomplish this. This situation is being phased out as newer cards can now apply 8 and more textures per rendering pass. Another use is in the rendering of shadows. An object's silhouette is rendered from the viewpoint of a light source, and in another rendering pass applied to a shadowed object. AFAIK no hardware can do this in a single rendering pass. Also, realistic shadows are becoming more prevalent in newer games. In MS-Win multi-pass renderings are done by rendering directly onto a texture and then using this texture. The OpenGL extension which allows this to be done is called WGL_ARB_render_texture. There is no equivalent extension in GLX. WineX does not render directly onto the texture. A suitable off-screen rendering target (called a pixel buffer) is chosen and rendered into. The result is then transferred into the texture. By my calculation this transfer of pixels into the relevant textures can reach several hundreds of MBytes per second. It consumes valuable video memory bandwidth and impairs (sometimes cripples) performance. I think the WineX community should support getting valuable WGL extensions translated into GLX. Otherwise, Linux gaming will always be at a considerable disadvantage in comparison to MS-Win. Thats my opinion. Nadav Frum ----------