Henri Verbeet : wined3d: Don' t use rtInternal for surfaces that are on a swapchain.

Alexandre Julliard julliard at winehq.org
Wed Mar 25 10:31:30 CDT 2009


Module: wine
Branch: master
Commit: 4469fbd43d959cfa306c32c87339c03355135664
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4469fbd43d959cfa306c32c87339c03355135664

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Mar 25 10:12:27 2009 +0100

wined3d: Don't use rtInternal for surfaces that are on a swapchain.

These surfaces won't be attached to an FBO anyway, so avoid the cost of a
potential format conversion when blitting from a non-RT surface. This is
mostly an issue for ddraw applications with 16 bit render targets.

---

 dlls/wined3d/surface.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index b0c6511..35ba9a4 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1621,7 +1621,10 @@ HRESULT d3dfmt_get_conv(IWineD3DSurfaceImpl *This, BOOL need_alpha_ck, BOOL use_
 
     if(srgb_mode) {
         *internal = glDesc->glGammaInternal;
-    } else if(This->resource.usage & WINED3DUSAGE_RENDERTARGET) {
+    }
+    else if (This->resource.usage & WINED3DUSAGE_RENDERTARGET
+            && !(This->Flags & SFLAG_SWAPCHAIN))
+    {
         *internal = glDesc->rtInternal;
     } else {
         *internal = glDesc->glInternal;




More information about the wine-cvs mailing list