Please do not reply to this email: if you want to comment on the bug, go to the URL shown below and enter yourcomments there. https://bugs.freedesktop.org/show_bug.cgi?id=9379 Summary: drmCommandNone( fd, DRM_R128_CCE_IDLE ) - gives errno 22 Product: Mesa Version: CVS Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Drivers/DRI/r128 AssignedTo: dri-devel@lists.sourceforge.net ReportedBy: [EMAIL PROTECTED]
When I'm running some game (in this case Paintball2 (it is 3D FirstPersonShooter based on Quake2 engine)) and go to some very "hard- renderable" (there is very low fps) place (in that game), it quits with error "Error: Rage 128 timed out... exiting". I found out that this error is in r128_ioctl.c file in function: void r128WaitForIdleLocked( r128ContextPtr rmesa ) So i did some changes to see what is wrong and edited code a little: do { i = 0; do { ret = drmCommandNone( fd, DRM_R128_CCE_IDLE ); + fprintf( stderr, "ret=%d, i=%d, to=%d\n" , ret, i, to); + if (ret) DO_USLEEP( 100 ); - } while ( ret && errno == EBUSY && i++ < R128_IDLE_RETRY ); + } while ( ret && i++ < R128_IDLE_RETRY ); } while ( ( ret == -EBUSY ) && ( to++ < R128_TIMEOUT ) ); if ( ret < 0 ) { + fprintf( stderr, "(ret=%d, i=%d, to=%d, errno=%d)\n" , ret, i, to, errno); drmCommandNone( fd, DRM_R128_CCE_RESET); And when I run the game and go around the level looking on the wall everything if OK, it prints out: ret=0, i=0, to=0 (with every frame, I think) So IDLE call is successful instantly (in the first iteration). But when I look's on some "hard-to-render" place (many polygons or something), game hangs and it prints out: ret=-22, i=0, to=0 ret=-22, i=1, to=0 ret=-22, i=2, to=0 ... ret=-22, i=32, to=0 (ret=-22, i=33, to=0, errno=22) Error: Rage 128 timed out... exiting Is seems that something causes the IDLE call can't be done successful, anymore. Also I tried to add line with DO_USLEEP(500000), but it didn't help. Error number 22 is EINVAL (invalid argument) and is thrown when ioctl's "request" or "argp" arguments are not valid. It should throw error 16 (busy) at most... I'm not so expert in Mesa's DRI and DRM code to find the problem. (ps. this problem I had with some other games and with Blender(3d modeling). and some games eg. Quake3Arena doesn't do this problem... maybe it occurs only when rendered scene is very very full of polygons... win32 version of Paintball2 doesn't hangs in this scenes but have big spf (seconds per frame)) Thank your for helping. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel