Re: readback + tilesort
Brian Paul <[email protected]>
| Newsgroups | gmane.comp.graphics.chromium.devel |
|---|---|
| Organization | Tungsten Graphics, Inc. |
| Message-ID | <[email protected]> |
Johann Won wrote: > Hi, > > Putting readback + tilesort aside, I'm testing binaryswap + tilesort > configuration. > > With the patch, the problem mentioned earlier has been (partially) resolved. > However this time, similar symtpom is found with bswap + tilesort. > The same portion is drawn on each of the tiles ( I applied the patch ). > > Attached .conf is a modified version of psubmit_bswap, which uses two tiles. > Please test with it, and give me a comment. Johann, Try applying the attached patch in the crserverlib/ directory. I think this'll fix your problems. -Brian
crserverlib.patch
(text/plain, 1.8 KB)
Index: server_context.c
===================================================================
RCS file: /cvsroot/chromium/cr/crserverlib/server_context.c,v
retrieving revision 1.12
diff -c -r1.12 server_context.c
*** server_context.c 28 Jul 2004 22:06:10 -0000 1.12
--- server_context.c 10 Aug 2004 17:28:45 -0000
***************
*** 167,172 ****
--- 167,177 ----
GLint x = -mural->extents[0].imagewindow.x1;
GLint y = -mural->extents[0].imagewindow.y1;
cr_server.head_spu->dispatch_table.WindowPos2iARB(x, y);
+ /* This MakeCurrent is a bit redundant (we do it again below)
+ * but it's only done the first time we activate a context.
+ */
+ crStateMakeCurrent(ctx);
+ crStateWindowPos2iARB(x, y);
}
}
Index: server_winpos.c
===================================================================
RCS file: /cvsroot/chromium/cr/crserverlib/server_winpos.c,v
retrieving revision 1.2
diff -c -r1.2 server_winpos.c
*** server_winpos.c 22 Jun 2004 00:43:13 -0000 1.2
--- server_winpos.c 10 Aug 2004 17:28:45 -0000
***************
*** 20,28 ****
static void crServerWindowPos( GLfloat x, GLfloat y, GLfloat z )
{
CRMuralInfo *mural = cr_server.curClient->currentMural;
- crStateWindowPos3fARB(x, y, z);
x -= (float) mural->extents[mural->curExtent].imagewindow.x1;
y -= (float) mural->extents[mural->curExtent].imagewindow.y1;
cr_server.head_spu->dispatch_table.WindowPos3fARB(x, y, z);
}
--- 20,28 ----
static void crServerWindowPos( GLfloat x, GLfloat y, GLfloat z )
{
CRMuralInfo *mural = cr_server.curClient->currentMural;
x -= (float) mural->extents[mural->curExtent].imagewindow.x1;
y -= (float) mural->extents[mural->curExtent].imagewindow.y1;
+ crStateWindowPos3fARB(x, y, z);
cr_server.head_spu->dispatch_table.WindowPos3fARB(x, y, z);
}