Date: Sun, 30 Mar 2014 00:35:23 +0200 From: Aleksandr Rybalko <ray@freebsd.org> To: Nathan Whitehorn <nwhitehorn@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: <20140330003523.791b9ed3.ray@freebsd.org> In-Reply-To: <5336F23B.9080402@freebsd.org> References: <201403282204.s2SM4SeN001155@svn.freebsd.org> <5336F23B.9080402@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 -- Aleksandr Rybalko <ray@freebsd.org>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140330003523.791b9ed3.ray>