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
----------