﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	field_blocks	field_dependson	field_seealso
520	Driver for VESA-compatible graphics adapter	Vojtech Horky		"Implement a driver for a VESA-compatible graphics card pluggable into the HelenOS graphics stack.

 Details::
  HelenOS has its own compositing server but it currently depends on kernel to properly set the mode of the graphics card. Effectively it means that the configuration of the graphics card is done at compile time (through configuration menu option) and there is no way to e.g. change the resolution at run-time.
  [[br]][[br]]
  Implement a driver for a graphics card that would be pluggable to the graphics stack and to the driver framework used in HelenOS and would allow the most common operations upon the graphics card. Because currently there is no graphics driver it is reasonable to create rather simpler variant of the driver that would not use advanced features but rather switch the card into a VESA-compatible mode. The implemented driver shall support following operations. First of all, switch the graphics card into the VESA ""legacy"" mode that to allow running on as many models of the graphics adapters as possible. Detect possible resolutions and inform the graphics stack about them. Provide interface to allow user change the resolution and color depth. Detection of a second monitor would be a very nice feature.

 What Gains and Benefits will this bring?::
  The current driver is a very minimalistic one living in the kernel. Creating a full-fledged video-driver in userspace would allow to remove the kernel driver and even more reduce the number of relict-drivers still present in kernel. It is expected that the userspace driver would provide extra features (runtime detection of possible resolution etc.) that would improve the experience when using HelenOS GUI.

 Difficulty::
  Medium

 Required skills::
  A successful applicant will have good skills of programming in the C language and the ability to survive in a non-standard non-POSIX environment. Previous experience with driver or graphics stack implementation would be beneficial.

 Documentation::
  * [wiki:DeveloperDocs/Peripherals#Graphics Developer documentation]
  * [wiki:UsersGuide/GUI GUI user's guide]
  * [http://lists.modry.cz/cgi-bin/private/helenos-devel/2012-August/008625.html Announcement of the graphics stack at HelenOS mailing list]
  * [https://code.launchpad.net/~petr-koupy/helenos/gui lp:~petr-koupy/helenos/gui] (original GUI branch)

 Possible mentors::
  HelenOS Core Team, Martin Decky"	enhancement	new	major		helenos/gui	mainline		gsoc13				
