> > Following ideas do not have a ticket yet.
> > - GUI improvements (get rid of floats)
> 
> It would be good to know Petr's opinion about this.

I have identified the following directions in which the graphics stack could be
further improved or extended. Since some of the topics are more challenging
than the others, not all of them are suitable for GSoC. Also it might not be
exactly clear from the brief descriptions what I mean by some of the topics.
More detailed insight is provided in the analysis part of my thesis, which is
finished but unfortunately not defended/published yet (Martin should have the
copy for review purposes in his mailbox). 

* Support for direct rendering in graphic driver infrastructure.
* Proper graphic driver able to leverage acceleration potential of the 
underlying device.
* More drawing operations in drawing library (lines, curves, polygons, circles, 
etc.).
* Retained scene description in drawing library.
* Hardware acceleration of drawing library.
* Better quality of drawing library output (advanced filtering, antialiasing).
* Better precision of drawing library output (floating point coordinates and 
pixels).
* Addition of trigonometric operations into HelenOS C library.
* Drawing library and graphics server support for arbitrary-angle rotation of 
windows.
* Support for more image and font formats in drawing library.
* More widgets in widget toolkit (menu bars, scrolls bars, edit boxes, list 
boxes, etc.).
* Support to minimize and maximize windows.
* Desktop environment (task bar, icons).
* Improvements of terminal emulator (resizing, scrolling, history).
* Console applications awareness of resizing and termination of their terminal 
emulator.
* Further (platform-specific) optimizations and performance improvements.

Regarding the optimization, I am not sure whether it is the most pressing
concern at this point. However, there are two areas that could bring
platform-specific performance gains. First, replacement of floats with a library
for fixed point arithmetics would improve the performance on machines without
FPU. Second, vectorization of functions involved in pixel transfers (e.g. matrix
inversion, alpha blending) would further speed-up calculations on processors
providing SIMD instructions (at the cost of maintaining multiple versions of
the optimized functions).

Also, I would like to remind that the percieved responsiveness of the GUI is
currently significantly influenced by the overhead of mouse event propagation
in i8042 task caused by increased size of fibril stacks as was described by
Jakub some time ago. Mouse movement is currently such a costly operation that
I have doubts that the above mentioned optimizations would be even noticeable.

Petr


_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to