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

Reply via email to