Date: Mon, 03 Mar 2014 02:48:37 -0800 From: Julian Elischer <julian@freebsd.org> To: freebsd-arch@freebsd.org Subject: Re: newcons fb driver Message-ID: <53145E05.1070207@freebsd.org> In-Reply-To: <20140302085511.6354f9ac@zhabar.gateway.2wire.net> References: <20140302085511.6354f9ac@zhabar.gateway.2wire.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 3/2/14, 8:55 AM, jhibbits@freebsd.org wrote: > I've been looking into the slowness of the newcons framebuffer backend, > and after discussing with Nathan Whitehorn, we've determined that the > slowness is caused by single byte writes to the framebuffer, which are > very much suboptimal. His conclusion is that, on nVidia hardware, the > card first performs a read, a very slow operation on the hardware, then > a single-byte write, and I'm thinking the same. So, to accomodate this > limitation, I have a question and proposal: > > (q) From looking at the code, it appears to support, to some degree, a > background image (the character blitting uses a mask, it doesn't just > write background in that mask). Is this truly the case? > > (p) If it is the case that it supports a background image, I'm thinking > it would make sense to buffer the framebuffer, such that we write to > the internal representation, and blit whole words or lines at a time > to the hardware. With an 8-bit buffer, at 1920x1080 (common resolution) > we would be using approximately 2MB for the buffer. On memory > constrained devices this can be quite significant, so it becomes a > tradeoff. oh how history repeats itself.. hit this in the newcons driver (never completed) in 1993. the oldest hardware had this problem.. solution: keep a virtual framebuffer and update the hardware (only lines that changed) on 1/50 of a second ticks... (or some other timer value faster than that) requires keeping the data in smaller subbuffers to track whether the entire creen needs ot be updated. > > Thoughts? > > - Justin > _______________________________________________ > freebsd-arch@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53145E05.1070207>