This change does not solve the problem it claims to solve because it makes two assumptions about the driver that are not always true:
1. that it sends rendering requests to the GPU immediately, which can kill performance on some GPUs, and 2. that the GPU processes all requests from multiple clients in order, which is false for some GPUs. All a Damage event tells you is that your next X request will be procesed after the damage has landed, not that the damage has already landed or even that the rendering commands that cause the damage have been submitted to the GPU. In addition to the above, this commit also broke the Compiz "Wallpaper" plugin. This reverts commit 8d7b7a0d71e0b89321b3341b781bc8845386def6. --- Fixing this correctly requires spec changes, which is the purpose of James Jones's damage sync stuff. If you're reading this, you should go review that now. :) damageext/damageext.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/damageext/damageext.c b/damageext/damageext.c index b4bb478..f5265dd 100644 --- a/damageext/damageext.c +++ b/damageext/damageext.c @@ -217,7 +217,6 @@ ProcDamageCreate (ClientPtr client) if (!AddResource (stuff->damage, DamageExtType, (pointer) pDamageExt)) return BadAlloc; - DamageSetReportAfterOp (pDamageExt->pDamage, TRUE); DamageRegister (pDamageExt->pDrawable, pDamageExt->pDamage); if (pDrawable->type == DRAWABLE_WINDOW) -- 1.7.0.4 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel