[ANNOUNCE] kmscon: Lazy-web's DRM based terminal emulator

David Herrmann dh.herrmann at googlemail.com
Sun Apr 1 09:45:15 PDT 2012


On Wed, Mar 28, 2012 at 8:14 PM, Ville Syrjälä
<ville.syrjala at linux.intel.com> wrote:
> On Wed, Mar 28, 2012 at 10:30:20AM -0700, Jesse Barnes wrote:
>> On Tue, 27 Mar 2012 16:57:29 +0200
>> David Herrmann <dh.herrmann at googlemail.com> wrote:
>> > Hi
>> >
>> > Motivated by Jesse's letter to the lazyweb [1] I worked on a kmscon
>> > program. It provides a
>> > terminal-emulator similar to the in-kernel terminal-emulator based on
>> > DRM. It is written
>> > from scratch and needs as external dependencies only mesa (libdrm,
>> > libgbm, libEGL, libGLESv2),
>> > udev, xproto (build-time dep), libxkbcommon, freetype2 and currently
>> > glib (only for unicode support).
>> > It uses a very recent version of libxkbcommon but it should be easy to
>> > fix ./src/kbd_xkb.c if
>> > you use an older version (or use --disable-xkbcommon to use a very
>> > basic keyboard handler).
>> Awesome!  Now get the distros to pick this up and turn off CONFIG_VT! :)
>> Ville's comment about a texture atlas is a good one, if nothing else I
>> think it should improve cache behavior.
> You could also render a large batch of glyphs with just a single
> glDrawElements()/glDrawArrays() call. Looks like the current code
> does a glDrawArrays() for each glyph.

I switched to cairo again and this works much better than my first
attempt with freetype+GL (even with higher row/cols counts). I also
switched to pango so I don't have to care for unicode
combined-chacraters which are not supported by freetype2 out-of-the
box and need to be emulated.

I might, though, give freetype+OpenGL another try with your approach
to draw all glyphs with one glDrawArrays() call. However, I now wanna
concentrate on the VTE layer for now.

> --
> Ville Syrjälä
> Intel OTC

Thanks looking over it!

More information about the dri-devel mailing list