Re: GLX in bad state

Nadav Frum <[email protected]>
Newsgroups gmane.comp.emulators.winex.devel
Message-ID <Pine.LNX.4.44_heb2.10.0404050928120.12986-100000@localhost.localdomain>
I replied to Gavriel's letter before reading Ove's, so there is a repeat 
of some of the answers.

I am aware of the very bad video memory allocation scheme in WineX and the 
negative impact it has on performance.  I have also devised a much better 
video memory allocation scheme.  I have informed you of this on 3 Sep 
2003.  I have also supplied you subsequently with sufficient information so
that you would not need to guess what the problem is.  You have this 
information available.

The problems do not end there, unfortunately.  Even with these problems fixed
WineX is producing under 5 fps.  It should be over 20 fps and perhaps even 30
fps.  Let us not become fixated with this easily solvable problem.  I am
looking beyond that.

My video card has 64 MB of memory and 2 active textures.  I would like to 
see results for different systems.  I believe this will provide a lot of 
insight.

It is imperative that my patch be included in the CVS to allow the C4 
demo to run.  This patch would off-coarse not be necessary once pixel shaders
are introduced.  In the meantime it will prevent an annoying crash on 
Operation Flashpoint.

On Sun, 4 Apr 2004, Ove Kaaven wrote:

> Oh, almost forgot to mention: Each pbuffer comes with its own Zbuffer,
> so the actual VRAM spent here is the double (2.4 MB). That is, over 1 MB
> is wasted here, and there's not much to be done about that with the
> current API. For the record, ARB_render_texture would not help with this
> waste; with it, we'd still have a separate zbuffer per pbuffer/texture
> combo, so something else is needed to fix the VRAM waste completely.

  Issue 11 of the ARB_render_texture spec is as follows:

  11. When the color buffer is released from the texture (back to the 
      pbuffer) should the contents be preserved?
 
      No, this may prove difficult to implement on some architectures.

The color buffer remains intact upon release.  So why is the answer no?
There could be two reasons:
a.  The contents of the color buffer were copied to the texture memory, 
    and thus negating the usefulness of this extension.
b.  The depth/stencil buffer was used for something else in the interim, 
    i.e the depth/stencil buffer is shared.

I vote for b.  Hardware vendors eager to maximize performance will have 
noticed that they can share the depth/stencil buffer.  In addition, the 
actual pbuffer may be shared by several textures with ARB_render_texture.
The conclusion is that renderable textures have a hold on video memory 
only when they are bound to a pbuffer.  I believe you have misinterpreted 
the spec.

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.