[Wine] Re: Compiling wine with patch/Running Crysis

Rico wineforum-user at winehq.org
Sun Sep 28 05:00:18 CDT 2008


Codemastadink wrote:
> 
> Rico wrote:
> > What's your system configuration (Kernel, graphics card, graphics driver, cpu, ...)?
> 
> 
> Ubuntu 8.04.1(Hardy)
> 512MB NVIDIA GeForce 8600M GS
> NVIDIA accelerated graphics driver(latest cards)
> Intel Core 2 Duo Processor T8300 (2.40GHz)




Codemastadink wrote:
> Anyone?


If you would answer the questions better and don't bug with double posts, I think you would get better answers.

There is a bug at least in the 177er series of nvidia drivers with some Geforce 8 cards. It affects the fbo part of opengl. Because you haven't add anything about the driver version, I only post this workaround and don't know if it is related to your problem.

This patch contains also a hack for the virtual memory size which could get too big for 32bit apps on a 64bit os (I need this workaround to play crysis).


Code:

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 2aeb5fa..eea8ae8 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -57,8 +57,10 @@ static void context_destroy_fbo(IWineD3DDeviceImpl *This, const GLuint *fbo)
 {
     int i = 0;
 
-    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, *fbo));
+    FIXME("Workaround: NVIDIA driver bug %i, %i\n", fbo, *fbo);
+    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo));
     checkGLcall("glBindFramebuffer()");
+
     for (i = 0; i < GL_LIMITS(buffers); ++i)
     {
         GL_EXTCALL(glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + i, GL_TEXTURE_2D, 0, 0));
diff --git a/loader/preloader.c b/loader/preloader.c
index 109ad3f..846607f 100644
--- a/loader/preloader.c
+++ b/loader/preloader.c
@@ -110,7 +110,8 @@ static struct wine_preload_info preload_info[] =
 {
     { (void *)0x00000000, 0x00010000 },  /* low 64k */
     { (void *)0x00010000, 0x00100000 },  /* DOS area */
-    { (void *)0x00110000, 0x5fef0000 },  /* low memory area */
+/*    { (void *)0x00110000, 0x5fef0000 }, */ /* low memory area */
+    { (void *)0x00110000, 0x35000000 },
     { (void *)0x7f000000, 0x02000000 },  /* top-down allocations + shared heap */
     { 0, 0 },                            /* PE exe range set with WINEPRELOADRESERVE */
     { 0, 0 }                             /* end of list */










More information about the wine-users mailing list