svn commit: r263885 - in head/sys/dev/vt: . hw/vga

Aleksandr Rybalko ray at freebsd.org
Sat Mar 29 22:35:57 UTC 2014


On Sat, 29 Mar 2014 09:18:03 -0700
Nathan Whitehorn <nwhitehorn at freebsd.org> wrote:

> On 03/28/14 15:04, Aleksandr Rybalko wrote:
> > Author: ray
> > Date: Fri Mar 28 22:04:27 2014
> > New Revision: 263885
> > URL: http://svnweb.freebsd.org/changeset/base/263885
> >
> > Log:
> >    o Add new vd_driver method to do bitblt with mask, named
> > vd_maskbitbltchr. o Move vd_bitbltchr vga's driver method to
> > vd_maskbitbltchr. o Implement new vd_bitbltchr method for vga
> > driver. (It do single write for 8 pixels, have to be a bit faster).
> >    
> 
> Can you describe what this does? From the commit message, it sounds
> like it might repair vt performance on cards with 8-bit framebuffers 
> generally, but I can't figure out the code.
> -Nathan
> 

Hi Nathan!

np, it is result of our discussion with jhibbits at .

vt(4) have to use bitblt like method which is able to do masked write,
since mouse cursor have to left visible characters under itself.
But masked bitblt quite expensive due to read from framebuffer to apply
mask or due to VGA graphics mode problem (described here [1], lot of
small read and writes which can't be well optimized).

Characters can be drown with simple (not masked) method, so vd_bitbltchr
used most frequently.
Mouse cursor only one (at least vt(4) can care about one :) ). And
currently mouse support only single consumer for masked method.

I did both methods have same set of arguments, to not reimplement
vd_bitbltchr method for all drivers. And driver can implement only
vd_bitbltchr or both. W/o vd_maskbitbltchr, vd_bitbltchr will be used.

Currently only one driver implement both methods, it is vt_vga.
Its not masked method do write 8 pixels at once, but masked method
continue to use 1 bit at once.

Other drivers (f.e. vt_ofwfb) in TODO list.

Thanks!

[1]http://lists.freebsd.org/pipermail/freebsd-arch/2014-March/015108.html

WBW
-- 
Aleksandr Rybalko <ray at freebsd.org>


More information about the svn-src-head mailing list