Re: GLX in bad state

Nadav Frum <[email protected]>
Newsgroups gmane.comp.emulators.winex.devel
Message-ID <Pine.LNX.4.44_heb2.10.0404011237580.18331-100000@localhost.localdomain>
I continue to urge Transgamers to post their benchmark results.  
For those who are interested in the technical aspects of this discussion 
please read on.

Gavriel is wrong in his analysis.  The following comments are directed at 
him.

On Wed, 31 Mar 2004, Gavriel State wrote:

> Nadav Frum wrote:
> > On Wed, 11 Feb 2004, I started the above thread.My objective was to 
> > highlight the shortcomings of the current GLX implementation in comparison
> > to WGL (the Windows implementation).
> >
> > I cited ARB_render_texture as one GLX extension which is urgently needed.
> > I gave a brief explanation as to how this extension may be used to render
> > shadows and reflections.This was a technical and dry explanation.
> 
> While an ARB_render_texture type extension would be somewhat more efficient
> than the current solution (render to pbuffer followed by glCopyTexSubImage2D),
> it's very unlikely that this is where your performance is going.Copying
> from a pbuffer to a texture in vram should be extremely fast, since it happens
> entirely using the video card's on-chip hardware blitter.

The problem with the absence of a render_texture extension is two fold:

1.  For each texture that becomes a render target WineX creates a pbuffer.  
    That means double the amount of video memory is used for each such 
    texture.  If you have 20 MB of renderable textures that means that you 
    need to allocate 20 MB more of video memory.  Do not expect to run the 
    C4 benchmark with a 32 MB video card.

2.  The hardware blitter uses the video memory bandwidth just like all the 
    other modules on the card.  I am guessing that games are designed
    to push the memory bandwidth to the maximum.  Adding 10's and even 
    100's of MB of memory load every second is going to affect performance 
    negatively.  It is difficult to guage the effect of this strain 
    without knowing how the driver is designed to deal with gigantic 
    memory transfers.  Simple mathematics will probably not do.  

> It should be easy enough to estimate the speedup such an extension would get
> by removing the glCopyTexSubImage2D call from X11DRV_GLX_UpdateTexture.

You are welcome to try and to post your results. 

> It's more likely some other aspect of the game that's affecting performance.

You are welcome to advance additional theories.  To assist you I provide 
the following hints:

1.  Disabling sound has very little impact on performance - probably not a 
    CPU problem.
2.  Changing resolutions has very little impact on performance - not a 
    rasterization problem in so far as the visible video buffers are 
    concerned.  Changing bit depth to 16 does help a bit.
3.  On my 64 MB video card the memory gets maxed out.  The recommended 
    system requirements for this game are:
    CPU: Pentium III 700 MHz (I have 1.7 GHz Celeron)
    System Memory: 128 MB (I have 398 MB)
    GPU: 32 MB 4x AGP (I have 64 MB 8x AGP - possibly 4x with 'agpart')
    (http://www.novalogic.com/games/C4/requirements.html) 
    The above recommended requirements probably mean that you can get 
    15+ fps with these requirements on Windows.
4.  Find games with shadows and reflections that work with WineX and have 
    performance comparable (i.e more than 50%) to Windows'.  

This is no joke.

Nadav Frum
----------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.