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>