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

Nathan Whitehorn nwhitehorn at freebsd.org
Sat Mar 29 23:16:45 UTC 2014


On 03/29/14 15:35, Aleksandr Rybalko wrote:
> 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

Very nice! I noticed that vt_efifb has precisely the same slow scrolling 
issue on my Haswell laptop as vt_ofwfb, so I'm quite excited about this. 
Thanks for all your work on this.
-nathan


More information about the svn-src-head mailing list