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

Nathan Whitehorn nwhitehorn at
Wed Apr 2 02:48:44 UTC 2014

On 03/29/14 15:35, Aleksandr Rybalko wrote:
> On Sat, 29 Mar 2014 09:18:03 -0700
> Nathan Whitehorn <nwhitehorn at> wrote:
>> On 03/28/14 15:04, Aleksandr Rybalko wrote:
>>> Author: ray
>>> Date: Fri Mar 28 22:04:27 2014
>>> New Revision: 263885
>>> URL:
>>> 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]

Any chance you could give an example or sketch of what to do? This issue 
is at least doubling the boot time of my Thinkpad if I use an EFI kernel.

More information about the svn-src-head mailing list