Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changes between Version 2 and Version 6 of Ticket #520


Ignore:
Timestamp:
2014-02-13T15:10:31Z (7 years ago)
Author:
Martin Decky
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #520

    • Property Keywords gsoc14 added
  • Ticket #520 – Description

    v2 v6  
    22
    33 Details::
    4   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.
     4  HelenOS has its own compositing server but it currently depends on kernel to properly set the mode of the graphics card. Effectively this means that the configuration of the resolution is done at compile time (through a configuration menu option) and there is no way to e.g. change the resolution at run-time.
    55  [[br]][[br]]
    6   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.
     6  The goal of this ticket is to implement a driver for a graphics card that would be pluggable to the graphics stack and to the driver framework implemented in HelenOS and that would allow the most common operations with the graphics card. Because there is no graphics driver currently implemented in HelenOS, it is reasonable to create a rather simple variant of the driver that would not use any advanced vendor-dependent features but that would only use the VESA BIOS extensions to switch the resolution. The implemented driver shall support following features: Detect possible resolutions and inform the graphics stack about them. Provide an user interface to change the resolution, color depth and possibly refresh rate. Implement the graphics mode-setting. Detection of a second monitor would be a very nice feature.
     7  [[br]][[br]]
     8  Since the protected-mode interface of the VESA BIOS is rather complicated and generally unreliable. the preferred way is to run the real-mode VESA BIOS code in a sandbox environment (e.g. using an x86 emulator). This is a common approach in the majority of operating systems and provides the best degree of compatibility.
    79
    810 What Gains and Benefits will this bring?::
    9   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.
     11  The current VESA BIOS mode setting code in HelenOS is a very minimalistic and involves a boot-time jump to real mode and a kernel driver. Creating a full-fledged graphics driver in user space would allow to remove the kernel driver and reduce the number of relict drivers still present in kernel. It is expected that the user space driver would provide extra features (run-time detection of possible resolution, etc.) that are not available in the kernel driver and that would improve the experience when using HelenOS GUI.
    1012
    1113 Difficulty::