All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Petr Vandrovec" <VANDROVE@vc.cvut.cz>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linux Fbdev development list
	<linux-fbdev-devel@lists.sourceforge.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	jsimmons@infradead.org
Subject: Re: Re: [BK FBDEV] String drawing optim
Date: Fri, 16 May 2003 18:45:41 +0200	[thread overview]
Message-ID: <1AFB79A034C@vcnet.vc.cvut.cz> (raw)

On 16 May 03 at 10:24, Geert Uytterhoeven wrote:
> On Thu, 15 May 2003, James Simmons wrote:
> > > What about getting rid of one-char putc, implementing it in terms of
> > > putcs? I'm doing it in matroxfb patches, and nobody complained yet, and
> > > with current length of {fbcon,accel}_putc{s,} I was not able to find
> > > measurable speed difference between putc and putc through putcs variants.
> > 
> > Hm. I compressed all the image drawing functions into accel_putcs which is 
> > used in many places. I then placed accel_putc() into fbcon_putc(). I could 
> > have accel_putcs() called in fbcon_putc(). The advantage is smaller 
> > amount of code. The offset is a big more overhead plus a function call. 
> > What do people think here?
> 
> putc() is almost never called, IIRC. We did our best to combine as much data as
> possible and call putcs().
> 
> A quick grep showed ->con_putc() is called only in drivers/char/vt.c for:
>   - Complementing the pointer position (for gpm)
>   - Inserting/deleting single characters
>   - Softcursor

Insert and Delete char are especially funny, as they do:

scr_memsetw(p, video_erase_char, nr * 2);
...
attr = video_erase_char >> 8;
while (nr--) {
   sw->con_putc(vc_cons[currcons].d,
                video_erase_char, y,
                video_num_columns-1-nr);
}
attr = oldattr;

so we can turn whole loop into one single putcs() call, asking
for painting 'nr' characters from 'p' at y,video_num_columns-nr, 
which will definitely help... And I believe that vc's attr is not 
used by putc/putcs anymore, we always pass color explicit (in upper 
bits of character).
                                                    Petr Vandrovec
                                                    



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

WARNING: multiple messages have this Message-ID (diff)
From: "Petr Vandrovec" <VANDROVE@vc.cvut.cz>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Linux Fbdev development list 
	<linux-fbdev-devel@lists.sourceforge.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	jsimmons@infradead.org
Subject: Re: [Linux-fbdev-devel] Re: [BK FBDEV] String drawing optim
Date: Fri, 16 May 2003 18:45:41 +0200	[thread overview]
Message-ID: <1AFB79A034C@vcnet.vc.cvut.cz> (raw)

On 16 May 03 at 10:24, Geert Uytterhoeven wrote:
> On Thu, 15 May 2003, James Simmons wrote:
> > > What about getting rid of one-char putc, implementing it in terms of
> > > putcs? I'm doing it in matroxfb patches, and nobody complained yet, and
> > > with current length of {fbcon,accel}_putc{s,} I was not able to find
> > > measurable speed difference between putc and putc through putcs variants.
> > 
> > Hm. I compressed all the image drawing functions into accel_putcs which is 
> > used in many places. I then placed accel_putc() into fbcon_putc(). I could 
> > have accel_putcs() called in fbcon_putc(). The advantage is smaller 
> > amount of code. The offset is a big more overhead plus a function call. 
> > What do people think here?
> 
> putc() is almost never called, IIRC. We did our best to combine as much data as
> possible and call putcs().
> 
> A quick grep showed ->con_putc() is called only in drivers/char/vt.c for:
>   - Complementing the pointer position (for gpm)
>   - Inserting/deleting single characters
>   - Softcursor

Insert and Delete char are especially funny, as they do:

scr_memsetw(p, video_erase_char, nr * 2);
...
attr = video_erase_char >> 8;
while (nr--) {
   sw->con_putc(vc_cons[currcons].d,
                video_erase_char, y,
                video_num_columns-1-nr);
}
attr = oldattr;

so we can turn whole loop into one single putcs() call, asking
for painting 'nr' characters from 'p' at y,video_num_columns-nr, 
which will definitely help... And I believe that vc's attr is not 
used by putc/putcs anymore, we always pass color explicit (in upper 
bits of character).
                                                    Petr Vandrovec
                                                    


             reply	other threads:[~2003-05-16 16:46 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-16 16:45 Petr Vandrovec [this message]
2003-05-16 16:45 ` [Linux-fbdev-devel] Re: [BK FBDEV] String drawing optim Petr Vandrovec

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=1AFB79A034C@vcnet.vc.cvut.cz \
    --to=vandrove@vc.cvut.cz \
    --cc=geert@linux-m68k.org \
    --cc=jsimmons@infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.