Am Samstag, 15. Dezember 2007 12:19:36 schrieb Alexander Dorofeyev:
> This seems to be specific to front buffer. Maybe
> glFlush really should be called in BltOverride (or clearing subroutine) if
> the target is front buffer?
Yes, glFlush() has to be called when writing to the front buffer. SwapBuffers 
does an implicit flush, so for the back buffer you don't have to do anything, 
but the front buffer needs a glFlush(). It isn't there yet, so it should be 
added.

Your patch looks quite good, but you should remove the original code from 
IWineD3DDeviceImpl_Clear() and make it call ClearSurface() as well.

The fbo activation you moved is a different problem. It needs to be fixed as 
well, but it is not as easy as swapping the calls :-( . Essentially, 
ActivateContext has to be called before the fbo setup, due to multithreading 
concerns. On the other hand, some things ActivateContext does fail if an fbo 
is active, so fbos must be set before activatecontext. Essentially we'll have 
to move fbo setup into ActivateContext, but this has some implications on 
multiple render targets and depth stencil swapping which need more 
investigation. OpenGL driver limitations play a role here as well.

Attachment: signature.asc
Description: This is a digitally signed message part.



Reply via email to