Hola, This is just a hunch but I'm wondering if this could be a previously undetected problem in the XFree86 memory manager. I want you people who can reproduce the problem to try the above patch and tell me if it works. I unfortunately no longer have access to an i810 or i815 (or i830 or i845 for that matter.) So I can't test this to see if it works. If it does there is a problem with the memory manager using the leftover bit of memory on the side of the screen. Its probably very rare to hit the path and probably just a small calculation thats off somewhere. If this patch works it gives you a good data point at any rate, one thing which is not causing the problem. You might also try building the i810 driver with the #define XF86DRI not defined because that will make the pitch and the width always be the same. That will give you an additional data point to help you track down the problem.
-Jeff
i810.diff
Description: Binary data