From owner-svn-src-head@FreeBSD.ORG Sat Mar 29 22:35:57 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AA3A5E0B; Sat, 29 Mar 2014 22:35:57 +0000 (UTC) Received: from smtp.dlink.ua (smtp.dlink.ua [193.138.187.146]) by mx1.freebsd.org (Postfix) with ESMTP id 609802BA; Sat, 29 Mar 2014 22:35:57 +0000 (UTC) Received: from rnote.ddteam.net (36-61-133-95.pool.ukrtel.net [95.133.61.36]) (Authenticated sender: ray) by smtp.dlink.ua (Postfix) with ESMTPSA id E5FD1C493D; Sun, 30 Mar 2014 00:35:48 +0200 (EET) Date: Sun, 30 Mar 2014 00:35:23 +0200 From: Aleksandr Rybalko To: Nathan Whitehorn 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> Organization: FreeBSD.ORG X-Mailer: Sylpheed 3.1.2 (GTK+ 2.24.5; amd64-portbld-freebsd9.0) X-Operating-System: FreeBSD Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit 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 22:35:57 -0000 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 -- Aleksandr Rybalko