Re: miext/shadow/shrotate.c speedup and question
Marc Aurele La France <[email protected]>
| Newsgroups | gmane.comp.xfree86.devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 21 Sep 2005, Staffan Ulfberg wrote: > I have a Sharp Zaurus C3100, where X normally runs rotated 90 degrees, > using a shadow framebuffer. I've been hacking a bit on getting the > code that blits a rotated shadow onto the display a bit faster and > came up with the included patch. > Blitting in rotated mode is about 4x the previous speed. Non-rotated > copies are about the same speed; maybe up to 10% slower for small > rectangles (on the Zaurus). > The idea is to copy the area in blocks of 32x32 pixels, to reduce the > number of cache misses, which are unavoidable when walking either the > source or the destination bitmap across the scanlines. 16x16, 24x24, > andd 32x32 yields about the same result, so I chose 32x32 since it > seems best for the non-rotated modes. > Any comments on this patch? This looks good to me. I have committed it. > I have a question myself about the original code: This is the function > call to get the address in the destination frame buffer to write to: > win = (FbBits *) (*pBuf->window) (pScreen, > scr_y, > scr_x << 2, > SHADOW_WINDOW_WRITE, > &winSize, > pBuf->closure); > The "scr_x << 2" part seems, to me, to assume that > sizeof(FbBits) == 4. Am I missing something, or is this really > correct? Anyway, my patch does not make this problem either better > or worse, but this is a chance to fix it if it is a bug... As we compile this, FbBits will always be a CARD32. Thanks for the patch. Marc. +----------------------------------+-----------------------------------+ | Marc Aurele La France | work: 1-780-492-9310 | | Academic Information and | fax: 1-780-492-1729 | | Communications Technologies | email: [email protected] | | 352 General Services Building +-----------------------------------+ | University of Alberta | | | Edmonton, Alberta | Standard disclaimers apply | | T6G 2H1 | | | CANADA | | +----------------------------------+-----------------------------------+ XFree86 developer and VP. ATI driver and X server internals.