I have super7 board Tyan S1590. in it I still have the very same problem with Radeon 3D. (updated CVS on Sunday.) Gears hangs quite easily and starts to eat all the CPU power. Hang occurs in radeon_ioctl.c file at function static int radeonWaitForFrameCompletion( radeonContextPtr rmesa ) { ... } it gets hang in the while(1) loop and neve breaks out of there on condition. if ( sarea->last_frame - frame <= RADEON_MAX_OUTSTANDING ) { break; } gdb shows following. ---------------------- Breakpoint 1, radeonWaitForFrameCompletion (rmesa=0x80761e0) at radeon_ioctl.c:397 397 if ( sarea->last_frame - frame <= RADEON_MAX_OUTSTANDING ) { (gdb) p sarea->last_frame $7 = 288 (gdb) p frame $8 = 285 (gdb) c Continuing. frame never changes as result of INREG() macro seems to keep at 285. ---------------------- trace is #0 radeonWaitForFrameCompletion (rmesa=0x80761e0) at radeon_ioctl.c:397 #1 0x40509565 in radeonSwapBuffers () at radeon_ioctl.c:408 #2 0x4052155f in XMesaSwapBuffers () at radeon_xmesa.c:98 #3 0x403f5357 in driMesaSwapBuffers (dpy=0x804b6a8, drawPrivate=0x804d790) at dri_mesa.c:628 #4 0x401123d4 in glXSwapBuffers () at glxcmds.c:479 #5 0x40034da3 in glutSwapBuffers () at glut_swap.c:46 #6 0x8049cf1 in draw () from /opt/X4/lib/modules/dri/radeon_dri.so #7 0x4002f2af in processWindowWorkList (window=0x804d670) at glut_event.c:1279 #8 0x4002f35c in glutMainLoop () at glut_event.c:1312 ----------------------- here is the whole sarea data also in hope that it would prove useful. ------------------- (gdb) p sarea $13 = 0x40015898 (gdb) p *sarea $14 = {ContextState = {pp_misc = 16779008, pp_fog_color = 0, re_solid_color = 0, rb3d_blendcntl = 539033600, rb3d_depthoffset = 19226624, rb3d_depthpitch = 1600, rb3d_zstencilcntl = 1073770512, pp_cntl = 2, rb3d_cntl = 37122, rb3d_coloroffset = 15384576, re_width_height = 134154239, rb3d_colorpitch = 1600, se_cntl = 1258334937, se_coord_fmt = 67108867, re_line_pattern = 0, re_line_state = 0, se_line_width = 0, pp_lum_matrix = 0, pp_rot_matrix_0 = 0, pp_rot_matrix_1 = 0, rb3d_stencilrefmask = 4294901760, rb3d_ropcntl = 0, rb3d_planemask = 65535, se_vport_xscale = 1065353216, se_vport_xoffset = 1082130432, se_vport_yscale = 1065353216, se_vport_yoffset = 1134428160, se_vport_zscale = 931135616, se_vport_zoffset = 0, se_cntl_status = 256, re_top_left = 0, re_misc = 66588}, TexState = {{pp_txfilter = 7, pp_txformat = 2147483648, pp_txoffset = 0, pp_txcblend = 0, pp_txablend = 0, pp_tfactor = 0, pp_border_color = 0}, {pp_txfilter = 7, pp_txformat = 2164260864, pp_txoffset = 0, pp_txcblend = 0, pp_txablend = 0, pp_tfactor = 0, pp_border_color = 0}, {pp_txfilter = 0, pp_txformat = 0, pp_txoffset = 0, pp_txcblend = 0, pp_txablend = 0, pp_tfactor = 0, pp_border_color = 0}}, dirty = 0, vertsize = 8, vc_format = 2147483849, boxes = {{ x1 = 4, y1 = 16, x2 = 304, y2 = 316}, {x1 = 0, y1 = 0, x2 = 0, y2 = 0} <repeats 11 times>}, nbox = 0, last_frame = 288, last_dispatch = 3075, last_clear = 290, texList = {{{next = 1 '\001', prev = 64 '@', in_use = 0 '\000', age = 0}, {next = 2 '\002', prev = 0 '\000', in_use = 0 '\000', age = 0}, {next = 3 '\003', prev = 1 '\001', in_use = 0 '\000', age = 0}, {next = 4 '\004', prev = 2 '\002', in_use = 0 '\000', age = 0}, {next = 5 '\005', prev = 3 '\003', in_use = 0 '\000', age = 0}, {next = 6 '\006', prev = 4 '\004', in_use = 0 '\000', age = 0}, { next = 7 '\a', prev = 5 '\005', in_use = 0 '\000', age = 0}, {next = 8 '\b', prev = 6 '\006', in_use = 0 '\000', age = 0}, {next = 9 '\t', prev = 7 '\a', in_use = 0 '\000', age = 0}, {next = 10 '\n', prev = 8 '\b', in_use = 0 '\000', age = 0}, {next = 11 '\013', prev = 9 '\t', in_use = 0 '\000', age = 0}, { next = 12 '\f', prev = 10 '\n', in_use = 0 '\000', age = 0}, {next = 13 '\r', prev = 11 '\013', in_use = 0 '\000', age = 0}, {next = 14 '\016', prev = 12 '\f', in_use = 0 '\000', age = 0}, {next = 15 '\017', prev = 13 '\r', in_use = 0 '\000', age = 0}, {next = 16 '\020', prev = 14 '\016', in_use = 0 '\000', age = 0}, { next = 17 '\021', prev = 15 '\017', in_use = 0 '\000', age = 0}, {next = 18 '\022', prev = 16 '\020', in_use = 0 '\000', age = 0}, {next = 19 '\023', prev = 17 '\021', in_use = 0 '\000', age = 0}, {next = 20 '\024', prev = 18 '\022', in_use = 0 '\000', age = 0}, {next = 21 '\025', prev = 19 '\023', in_use = 0 '\000', age = 0}, { next = 22 '\026', prev = 20 '\024', in_use = 0 '\000', age = 0}, {next = 23 '\027', prev = 21 '\025', in_use = 0 '\000', age = 0}, {next = 24 '\030', prev = 22 '\026', in_use = 0 '\000', age = 0}, {next = 25 '\031', prev = 23 '\027', in_use = 0 '\000', age = 0}, {next = 26 '\032', prev = 24 '\030', in_use = 0 '\000', age = 0}, { next = 27 '\e', prev = 25 '\031', in_use = 0 '\000', age = 0}, {next = 28 '\034', prev = 26 '\032', in_use = 0 '\000', age = 0}, {next = 29 '\035', prev = 27 '\e', in_use = 0 '\000', age = 0}, {next = 30 '\036', prev = 28 '\034', in_use = 0 '\000', age = 0}, {next = 31 '\037', prev = 29 '\035', in_use = 0 '\000', age = 0}, { next = 32 ' ', prev = 30 '\036', in_use = 0 '\000', age = 0}, {next = 33 '!', prev = 31 '\037', in_use = 0 '\000', age = 0}, {next = 34 '"', prev = 32 ' ', in_use = 0 '\000', age = 0}, {next = 35 '#', prev = 33 '!', in_use = 0 '\000', age = 0}, {next = 36 '$', prev = 34 '"', in_use = 0 '\000', age = 0}, {next = 37 '%', prev = 35 '#', in_use = 0 '\000', age = 0}, {next = 38 '&', prev = 36 '$', in_use = 0 '\000', age = 0}, {next = 39 '\'', prev = 37 '%', in_use = 0 '\000', age = 0}, {next = 40 '(', prev = 38 '&', in_use = 0 '\000', age = 0}, {next = 41 ')', prev = 39 '\'', in_use = 0 '\000', age = 0}, {next = 64 '@', prev = 40 '(', in_use = 0 '\000', age = 0}, {next = 0 '\000', prev = 0 '\000', in_use = 0 '\000', age = 0} <repeats 22 times>, {next = 0 '\000', prev = 41 ')', in_use = 0 '\000', age = 0}}, {{next = 1 '\001', prev = 64 '@', in_use = 0 '\000', age = 0}, { next = 2 '\002', prev = 0 '\000', in_use = 0 '\000', age = 0}, {next = 3 '\003', prev = 1 '\001', in_use = 0 '\000', age = 0}, {next = 4 '\004', prev = 2 '\002', in_use = 0 '\000', age = 0}, {next = 5 '\005', prev = 3 '\003', in_use = 0 '\000', age = 0}, {next = 6 '\006', prev = 4 '\004', in_use = 0 '\000', age = 0}, { next = 7 '\a', prev = 5 '\005', in_use = 0 '\000', age = 0}, {next = 8 '\b', prev = 6 '\006', in_use = 0 '\000', age = 0}, {next = 9 '\t', prev = 7 '\a', in_use = 0 '\000', age = 0}, {next = 10 '\n', prev = 8 '\b', in_use = 0 '\000', age = 0}, {next = 11 '\013', prev = 9 '\t', in_use = 0 '\000', age = 0}, { next = 12 '\f', prev = 10 '\n', in_use = 0 '\000', age = 0}, {next = 13 '\r', prev = 11 '\013', in_use = 0 '\000', age = 0}, {next = 14 '\016', prev = 12 '\f', in_use = 0 '\000', age = 0}, {next = 15 '\017', prev = 13 '\r', in_use = 0 '\000', age = 0}, {next = 16 '\020', prev = 14 '\016', in_use = 0 '\000', age = 0}, { next = 17 '\021', prev = 15 '\017', in_use = 0 '\000', age = 0}, {next = 18 '\022', prev = 16 '\020', in_use = 0 '\000', age = 0}, {next = 19 '\023', prev = 17 '\021', in_use = 0 '\000', age = 0}, {next = 20 '\024', prev = 18 '\022', in_use = 0 '\000', age = 0}, {next = 21 '\025', prev = 19 '\023', in_use = 0 '\000', age = 0}, { next = 22 '\026', prev = 20 '\024', in_use = 0 '\000', age = 0}, {next = 23 '\027', prev = 21 '\025', in_use = 0 '\000', age = 0}, {next = 24 '\030', prev = 22 '\026', in_use = 0 '\000', age = 0}, {next = 25 '\031', prev = 23 '\027', in_use = 0 '\000', age = 0}, {next = 26 '\032', prev = 24 '\030', in_use = 0 '\000', age = 0}, { next = 27 '\e', prev = 25 '\031', in_use = 0 '\000', age = 0}, {next = 28 '\034', prev = 26 '\032', in_use = 0 '\000', age = 0}, {next = 29 '\035', prev = 27 '\e', in_use = 0 '\000', age = 0}, {next = 30 '\036', prev = 28 '\034', in_use = 0 '\000', age = 0}, {next = 31 '\037', prev = 29 '\035', in_use = 0 '\000', age = 0}, { next = 32 ' ', prev = 30 '\036', in_use = 0 '\000', age = 0}, {next = 33 '!', prev = 31 '\037', in_use = 0 '\000', age = 0}, {next = 34 '"', prev = 32 ' ', in_use = 0 '\000', age = 0}, {next = 35 '#', prev = 33 '!', in_use = 0 '\000', age = 0}, {next = 36 '$', prev = 34 '"', in_use = 0 '\000', age = 0}, {next = 37 '%', prev = 35 '#', in_use = 0 '\000', age = 0}, {next = 38 '&', prev = 36 '$', in_use = 0 '\000', age = 0}, {next = 64 '@', prev = 37 '%', in_use= 0 '\000', age = 0}, {next = 0 '\000', prev = 0 '\000', in_use = 0 '\000', age = 0} <repeats 25 times>, {next = 0 '\000', prev = 38 '&',in_use = 0 '\000', age = 0}}}, texAge = {0, 0}, ctxOwner = 3} (gdb) ------------------------ Could this be a result of broken Radeon? perhaps registers or something else would be broken? I thought of this since INREG macro which is defined as radeon_reg.h:#define INREG(addr) MMIO_IN32(RADEONMMIO, addr) tries to get RADEON_LAST_FRAME_REG which is defined as RADEON_SCRATCH_REG0 or RADEON_GUI_SCRATCH_REG0. with all this in my mind I was thinking if there is Radeon HW checking software or something available? One that could be ran in console and it wouldrun trough the registers or something and verify their operationality. Thanks. -- Janne echo [EMAIL PROTECTED] | tr acefhiklnptu utpnlkihfeca _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/dri-devel