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? :)
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; }