This is to propose to abolish KLD screen saver modules.

KLD screen savers have the following problems/deficiencies.

- It is too easy to abuse the power of being run in the kernel
  mode. The screen saver is invoked periodically once the console
  becomes idle. It should not spend long time to draw something
  to the screen. But, we may be tempted to do a bit more elaborate
  drawing so that we get "interesting" effects. It's too easy to
  degrade the system performance by staying in the screen saver 
  too long.
- While it is easy to manipulate the video board in the KLD module
  (because we can go anywhere and access anything :-), there are
  limitations. If you want to perform file I/O (to obtain some
  bitmaps from files), or want to read some sort of configuration
  file, there is no straight forward way to do so.

I propose to have user-land screen savers instead of KLD
screen savers.  

- The user-land screen saver won't degrade system performance.
  We can run it at lower priority.  Even if we write very
  complicated graphical screen saver, we have no fear of 
  breaking the system. (Unless we write a buggy program which
  directly manipulates video card hardware...)
- The user-land screen saver can access files if necessary.

We shall provide the "screen saver daemon" and a set of "screen saver
programs."  The screen saver daemon will run in the background and
periodically checks if the console is idle.  When it finds no
activity in the console, it will launch a specified "screen saver

Screen saver programs are ordinaly user programs which act just like
our current KLD screen savers, such as daemon_saver, log_saver,
blank_saver, etc, which draw something interesting in the screen.  The
text-mode screen savers (deamon_saver, snake_saver, star_saver) are
written by using ncurses. The graphics-mode screen savers (logo_saver,
warp_saver, fire_saver, rain_saver) will be written with libvgl.
Blank_saver, apm_saver, fade_saver and green_saver are replaced by
programs which performs ioctl to the console to implement the same
effect as the current KLD version.

I will publish sample implementation once VESA support in -CURRENT

Any comments?


PS: the splash screen support has to remain in syscons as the
splash screen is put up when the kernel starts up...

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to