[PATCH 2/7] wined3d: Move srgb checks away from d3dfmt_get_conv.

Diego Nieto Cid dnietoc at gmail.com
Tue Jan 3 18:48:59 CST 2012


Hi,

On Wed, Dec 28, 2011 at 07:46:09AM +0100, Henri Verbeet wrote:
> Probably, yeah. Not just for WINED3DFMT_P8_UINT, but for all the
> formats in d3dfmt_get_conv(). I guess something like the following at
> the end of d3dfmt_get_conv() should work:
> > 
> > if (*convert != NO_CONVERSION)
> > {
> >     format->glGammaInternal = format->glInternal;
> >     format->rtInternal = format->glInternal;
> > }
> > 
>

After adding the conditional to wine-1.3.33, Fallout runs without any
error.

A patch against HEAD is attached.

On Wed, Dec 28, 2011 at 09:17:26PM -0300, Diego Nieto Cid wrote:
> The HEAD checkout is randomly failing due to
> 
>     wine: Unhandled page fault on read access to 0x00000000 at address (nil) (thread 0036), starting debugger...
>     X Error of failed request:  GLXBadDrawable
>       Major opcode of failed request:  128 (GLX)
>       Minor opcode of failed request:  5 (X_GLXMakeCurrent)
>       Serial number of failed request:  621
>       Current serial number in output stream:  621
>

HEAD still shows the error above. I'll try to find what happened through
bisection.

Any idea what to look for? :)

-------------- next part --------------
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index b658832..a16b16c 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -4524,6 +4524,12 @@ HRESULT d3dfmt_get_conv(const struct wined3d_surface *surface, BOOL need_alpha_c
             break;
     }
 
+    if (*convert != NO_CONVERSION)
+    {
+        format->rtInternal = format->glInternal;
+        format->glGammaInternal = format->glInternal;
+    }
+
     return WINED3D_OK;
 }
 


More information about the wine-devel mailing list