X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Fexa%2Fi965%2Fsynchronous_composite.mdwn;h=9c55f739ce8037b51b7911c052b4ae1c0fe0cf6a;hb=5c014fe14d7a114dc525711d3236feb10f27177f;hp=6f2684015c3ce2104eeb5e3bd7b48caed8716821;hpb=382a50b3aa2fc58cbeaa1a9974939b67d1ccd5f1;p=cworth.org diff --git a/src/exa/i965/synchronous_composite.mdwn b/src/exa/i965/synchronous_composite.mdwn index 6f26840..9c55f73 100644 --- a/src/exa/i965/synchronous_composite.mdwn +++ b/src/exa/i965/synchronous_composite.mdwn @@ -1,6 +1,6 @@ -[[meta title="Synchronous compositing in the i965 driver"]] +[[!meta title="Synchronous compositing in the i965 driver"]] -[[tag exa performance xorg]] +[[!tag exa performance xorg]] A couple of weeks ago I aired [[my_confusion|avoiding_rmw]] about a situation in which using EXA with an i965 card was 4 times slower than @@ -66,7 +66,7 @@ following for me.
  • vmlinux 16%
  • libxul 11%
  • libexa 6%
  • -
  • pixman 5%
  • +
  • pixman 5%
  • Xorg 4%
  • other 9%
  • @@ -103,7 +103,7 @@ software fallbacks at all. Here's what I got:
  • intel_drv 22%
  • libc 16%
  • libxul 13%
  • -
  • pixman 9%
  • +
  • pixman 9%
  • libexa 4%
  • Xorg 4%
  • other 9%
  • @@ -132,7 +132,7 @@ So, now take a look at the performance with this patch attached:
  • intel_drv 49%
  • libxul 16%
  • libc 10%
  • -
  • pixman 7%
  • +
  • pixman 7%
  • libexa 4%
  • Xorg 2%
  • vmlinux 2%
  • @@ -150,9 +150,9 @@ saved from libc and the kernel. What's going on here? What's happening is that the driver is spending an awful lot of time busy-waiting, and all we did here was to help it -busy-wait even faster. Now, we know that aren't any software fallbacks -happening here, so what's all the waiting about? It appears to be -caused primarily by `i965_prepare_composite` which includes the +busy-wait even faster. Now, we know that there aren't any software +fallbacks happening here, so what's all the waiting about? It appears +to be caused primarily by `i965_prepare_composite` which includes the following comment and code: /* Because we only have a single static buffer for our state currently,