From owner-svn-src-head@FreeBSD.ORG Sat Mar 29 23:16:45 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0B85B698; Sat, 29 Mar 2014 23:16:45 +0000 (UTC) Received: from smtpauth2.wiscmail.wisc.edu (wmauth2.doit.wisc.edu [144.92.197.222]) (using TLSv1 with cipher DES-CBC3-SHA (168/168 bits)) (Client CN "smtpauth.wiscmail.wisc.edu", Issuer "InCommon Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CAA5B7D2; Sat, 29 Mar 2014 23:16:44 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) id <0N3800L000IOW400@smtpauth2.wiscmail.wisc.edu>; Sat, 29 Mar 2014 18:16:42 -0500 (CDT) X-Spam-PmxInfo: Server=avs-2, Version=6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2014.3.29.230915, SenderIP=0.0.0.0 X-Spam-Report: AuthenticatedSender=yes, SenderIP=0.0.0.0 Received: from comporellon.tachypleus.net (polaris.tachypleus.net [75.101.50.44]) by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) with ESMTPSA id <0N38008TK0NTCF00@smtpauth2.wiscmail.wisc.edu>; Sat, 29 Mar 2014 18:16:42 -0500 (CDT) Message-id: <53375459.6070801@freebsd.org> Date: Sat, 29 Mar 2014 16:16:41 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 To: Aleksandr Rybalko Subject: Re: svn commit: r263885 - in head/sys/dev/vt: . hw/vga References: <201403282204.s2SM4SeN001155@svn.freebsd.org> <5336F23B.9080402@freebsd.org> <20140330003523.791b9ed3.ray@freebsd.org> In-reply-to: <20140330003523.791b9ed3.ray@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Mar 2014 23:16:45 -0000 On 03/29/14 15:35, Aleksandr Rybalko wrote: > On Sat, 29 Mar 2014 09:18:03 -0700 > Nathan Whitehorn 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