performance issue when OffscreenRenderingMode = "pbuffer"

Roderick Colenbrander thunderbird2k at gmx.net
Sun Jan 25 07:07:55 CST 2009


> Roderick Colenbrander a écrit :
> >> I tried to play Supreme Commander using pbuffer option instead of fbo.
> I 
> >> was quite happy with it, since I gained quite a bunch of performance (I
> >> mean, something I really COULD see), but after a while, the performance
> >> dropped dramatically, to ~4-5 fps.
> >>
> >> I tested quite a few thing, and I finally found that pixel bufers were 
> >> not taken in account when calculating available texture memory. The
> game 
> >> then allocated more textures, and good opengl didn't dare complain when
> >> putting them in system memory.
> >>
> >> Attached is a patch which should solve the problem.
> >>
> >> For those who are curious, try setting VideoMemorySize to 200 instead
> of 
> >> 256. It works just like a charm.
> >>
> >>     
> >
> > I think the basic idea of the patch is good but the calculation itself
> should take into account double buffering. In wine we don't use double
> buffering on pbuffers but we might be receiving a WGL pixel format which uses
> double buffering, so in that case the amount of video memory would be a
> factor 2 too low.
> >
> > Something like this would give you the double buffering capability from
> a d3d device:
> > This->adapter->cfgs[iPixelFormat]->doubleBuffer
> >
> > Roderick
> >   
> OK. Here is a new one, more readable I think. I'll send it to 
> wine-patches once I manage to configure git-send-email :)

Hi,

I think it would be best to add an attribute 'pbuffer_size' or something like that to the WineD3DContext storing the size of the pbuffer. This is needed because GetPixelFormat won't work on a pbuffer. The problem with this call is that GetPixelFormat doesn't see 'offscreen pixel formats' (like e.g. floating point ones and there are others) which can be used for pbuffers. Further I think it is nicer to not have to recalculate its size. I don't think there is a way to get the pixel format from a pbuffer.

Roderick


-- 
NUR NOCH BIS 31.01.! GMX FreeDSL - Telefonanschluss + DSL 
für nur 16,37 EURO/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a



More information about the wine-devel mailing list