Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Mar 2014 16:16:41 -0700
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        Aleksandr Rybalko <ray@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r263885 - in head/sys/dev/vt: . hw/vga
Message-ID:  <53375459.6070801@freebsd.org>
In-Reply-To: <20140330003523.791b9ed3.ray@freebsd.org>
References:  <201403282204.s2SM4SeN001155@svn.freebsd.org> <5336F23B.9080402@freebsd.org> <20140330003523.791b9ed3.ray@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03/29/14 15:35, Aleksandr Rybalko wrote:
> On Sat, 29 Mar 2014 09:18:03 -0700
> Nathan Whitehorn <nwhitehorn@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@.
>
> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53375459.6070801>