So I wondered about time related bogons and I found very odd looking code in i810_accel.c - do a grep for GetTimeInMillis Now consider what happens close to wrap time Firstly: On a reload now could reload with 0. Tripping the start = 0 case next loop. We then fall through into the last_head = ring->head load. The same occurs during a wrap event where start=0x7FFFFFFFF now=0x80000000 (minus loads). We mistakenly see it as progress. Fortunately it appears to fail safe as we merely reset the timer. Secondly GetTimeInMillis appears to be unsigned, its stuffed into variables. That doesn't itself seem fatal as the (now-start) maths seems to wrap safely - but wants checking Thirdly there is a small delay loop. Or rather in egcs-1.1.2 there is. gcc 2.96 will optimise that to "i=2000" - i must be volatile if that loop is needed. Can you confirm what that loop is for and if its required ? Alan
XFree86 4.x or 3.3.6? I assume 3.3.6 (XFree86-Servers).. I'll look at it and ask Alan about it.
4.1.0-3
Was fixed in 4.2