Hi, I did some tests, the status is collected at http://dev.lemote.com/files/upload/software/temp/status/ (And sorry, a solid port of newer kernel isn't ready, so the tests above didn't cover current kernel code)
It seems 'x11perf -compwinwin500' will corrupt windows of other applications, and is related with Xrender? Any idea? Update: I hacked compiz -- display.c eventLoop(): not use glXCopySubBufferMESA() to update damaged sections, the corruption is severe(http://dev.lemote.com/files/upload/software/temp/compiz_no_use_glXCopySubBufferMESA.png): * It was simply triggered by run 'X + compiz(no window decoration) + comp-test' on platform 1 * The screen can be restored by switching between VTs. The detailed code snippet in compiz: BoxPtr pBox; int nBox, y; pBox = core.tmpRegion->rects; nBox = core.tmpRegion->numRects; // if (s->copySubBuffer) if (0) // Hack: disable the glXCopySubBufferMESA() way { while (nBox--) { y = s->height - pBox->y2; (*s->copySubBuffer) (d->display, s->output, pBox->x1, y, pBox->x2 - pBox->x1, pBox->y2 - pBox->y1); pBox++; } } else { glEnable (GL_SCISSOR_TEST); glDrawBuffer (GL_FRONT); while (nBox--) { y = s->height - pBox->y2; glBitmap (0, 0, 0, 0, pBox->x1 - s->rasterX, y - s->rasterY, NULL); s->rasterX = pBox->x1; s->rasterY = y; glScissor (pBox->x1, y, pBox->x2 - pBox->x1, pBox->y2 - pBox->y1); glCopyPixels (pBox->x1, y, pBox->x2 - pBox->x1, pBox->y2 - pBox->y1, GL_COLOR); pBox++; } glDrawBuffer (GL_BACK); glDisable (GL_SCISSOR_TEST); glFlush (); } ---- Regards, Chen Jie _______________________________________________ xorg-driver-ati mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-ati
