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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.