Is this a bug in radeon driver (secondlife hang ?)
chaohong guo <[email protected]> Wed, 19 Sep 2007 21:58:57 +0800
| Newsgroups | gmane.comp.video.dri.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, guys,
Did someone try secondlife on radeon cards ?
I am porting dri radeon driver to solaris. In order to
enable secondlife to run on Solaris x86. I have to make a
small change in the routine radeon_cp_dispatch_texture() of
radeon kernel driver.
At the beginning of starting, secondlife needs to load a
1024*1024 RGBA texture, which uses up all texture buffers
so that radeon_cp_dispatch_texture()/ ioctl DRM_RADEON_TEXTURE
always returns EAGAIN.
It seems that we should add a COMMIT_RING() at the end
of the following code so as to GPU kick some buffers back
to us, see:
static int radeon_cp_dispatch_texture( ...)
{
....
BEGIN_RING(9);
OUT_RING(CP_PACKET3(RADEON_CNTL_BITBLT_MULTI, 5));
OUT_RING(RADEON_GMC_SRC_PITCH_OFFSET_CNTL |
RADEON_GMC_DST_PITCH_OFFSET_CNTL |
RADEON_GMC_BRUSH_NONE |
(format << 8) |
RADEON_GMC_SRC_DATATYPE_COLOR |
RADEON_ROP3_S |
RADEON_DP_SRC_SOURCE_MEMORY |
RADEON_GMC_CLR_CMP_CNTL_DIS | RADEON_GMC_WR_MSK_DIS);
OUT_RING((spitch << 22) | (offset >> 10));
OUT_RING((texpitch << 22) | (tex->offset >> 10));
OUT_RING(0);
OUT_RING((image->x << 16) | image->y);
OUT_RING((image->width << 16) | height);
RADEON_WAIT_UNTIL_2D_IDLE();
ADVANCE_RING();
COMMIT_RING(); <-----------------------------Added this ????
}
How do you think about it ?
-minskey
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
--
_______________________________________________
Dri-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-users