Linux Framebuffer Layer development
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@gmail.com>
To: linux-fbdev-devel@lists.sourceforge.net
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Andrew Morton <akpm@osdl.org>,
	Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [Linux-fbdev-devel] Re: Console rotation problems
Date: Thu, 24 Nov 2005 18:13:51 +0800	[thread overview]
Message-ID: <4385925F.8010108@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.62.0511241042360.6400@numbat.sonytel.be>

Geert Uytterhoeven wrote:
> On Thu, 24 Nov 2005, Antonino A. Daplas wrote:
>> Benjamin Herrenschmidt wrote:
>>> Remove bogus usage of test/set_bit() from fbcon rotation code and just
>>> manipulate the bits directly. This fixes an oops on powerpc among others
>>> and should be faster. Seems to work fine on the G5 here.
>> Thanks, I reached a point when my head became muddled with bit 
>> manipulations, so I used arch-specific bitops but complete forgot
>> that they were atomic :-)
> 
> I haven't really looked at the rotation code, but I guess it can be optimized a
> lot by using similar techniques like c2p (chunky-to-planar) conversions.
> 

Actually, BenH's patch touched code that is in the slow path.  The font
rotation is done on the entire fontdata, then stored, on a console switch.
Thus the rest of the drawing functions need not do repetitive and expensive
bitmap rotation.

Scrolling performance of a normally oriented and upside-down rotation is
practically the same (1024x768 8x16 redraw).

con_rotate = 0
real    0m2.550s
user    0m0.000s
sys     0m2.543s

con_rotate = 2
real    0m2.559s
user    0m0.001s
sys     0m2.545s


CCW and CW rotation, is of course slower, because the blit direction
tends to be top->down, rather than left->right.

con_rotate = 1
real    0m4.675s
user    0m0.000s
sys     0m4.663s

con_rotate = 3
real    0m4.701s
user    0m0.001s
sys     0m4.684s
  
Tony

      reply	other threads:[~2005-11-24 10:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-24  0:45 Console rotation problems Benjamin Herrenschmidt
2005-11-24  0:52 ` Benjamin Herrenschmidt
2005-11-24  1:47   ` Benjamin Herrenschmidt
2005-11-24  3:05     ` Benjamin Herrenschmidt
2005-11-24  6:29       ` Antonino A. Daplas
2005-11-24  9:43         ` [Linux-fbdev-devel] " Geert Uytterhoeven
2005-11-24 10:13           ` Antonino A. Daplas [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4385925F.8010108@gmail.com \
    --to=adaplas@gmail.com \
    --cc=akpm@osdl.org \
    --cc=benh@kernel.crashing.org \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox