WineD3D: workaround for lack of depth/stencil

Roderick Colenbrander thunderbird2k at gmx.net
Sun May 18 11:11:35 CDT 2008


Hi,

This patch is a workaround for a severe WineD3D issue which is too much work and to risky to fix properly during the code freeze. It fixes drawing issues in GTR2, Suppreme Commander, Call of Duty 2 Call of Duty 4 and likely dozens of other games.

Here a short description of the issue and the workaround. In OpenGL you must decide at opengl context creation time what 'pixel format' you want. This pixel format defines color buffers (red/green/blue/alpha) but also depth and stencil buffers. In D3D all of these are separated and after setting up Direct3D you can decide to add a depth or stencil buffer.

Right now we don't support this at all and that causes rendering issues because games don't receive depth or stencil buffers. In order to fix the issue properly we would need to recreate the opengl context and window but that is very nasty. It requires reapplying of all opengl states, recreation of resources (you can't expect to inherit resources of another opengl context by sharing display lists if you destroy the context of which you inherit the resources)..

This patch makes us use a 'fixed' depth stencil format like we did during the time we had only a single pixel format. It isn't nice as not in all cases depth/stencil is needed but it prevents major drawing problems.

Regards,
Roderick Colenbrander
-- 
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Request-a-WGL-depth-stencil-capable-pixel-format-by.patch
Type: text/x-patch
Size: 0 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080518/2bd63282/attachment.bin 


More information about the wine-patches mailing list