Ghost 0.3.0 - first public demo!

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: Ghost 0.3.0 - first public demo!

Post by no92 »

As the press officer of Ghost, I have publish the following news: after the failed German takeover, the work on Ghost may be delayed for about 3 months.

Nah, kidding. I'm not related to Ghost in any way except for being franconian, too :D
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: Ghost 0.3.0 - first public demo!

Post by max »

no92 wrote:As the press officer of Ghost, I have publish the following news: after the failed German takeover, the work on Ghost may be delayed for about 3 months.

Nah, kidding. I'm not related to Ghost in any way except for being franconian, too :D
Haha :mrgreen: the work on Ghost is indeed delayed, but due to illness, and will be recovered soon. Also, go go and finish your compiler so I can add it to Ghost 8)
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: Ghost 0.3.0 - first public demo!

Post by no92 »

That one may take a while - and I do plan to add some runtime routines for reflection, which may make things more complicated.
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Ghost 0.3.0 - first public demo!

Post by AndrewAPrice »

When I tried this out in QEMU, the mouse was really unresponsive (it updated about once a second). Great work though!
My OS is Perception.
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: Ghost 0.3.0 - first public demo!

Post by max »

MessiahAndrw wrote:When I tried this out in QEMU, the mouse was really unresponsive (it updated about once a second). Great work though!
I guess performance will be the focus point of the development for the next versions. Thank you for trying it out :)
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Ghost 0.3.0 - first public demo!

Post by AndrewAPrice »

max - I came across a similar performance problem when working on my window manager. Mine is a compositing window manager - where each window has its own buffer, and there's also a screen buffer that the window manager draws to before copying it into video memory. This turned out to be very slow in high resolution VESA modes.

Each time I invalidated the screen (such as moving the mouse) it would perform a full redraw, I managed to optimize this by invalidating a specific region on the screen by calling:
invalidate_window_manager(minx, miny, maxx, maxy)

I pass the region to each of my drawing sub-calls - draw_window(minx, miny, maxx, maxy), draw_background(minx, miny, maxx, maxy), and I only copy the parts that lay within the invalidated region. I only copy the invalidated region to video memory. Because only a small part of the screen is updated at a time, I can do some cool things in real time, like dither the 32-bit screen buffer to lower bit depths, and my mouse is still really responsive and fluid!

This is just a simple optimization (took me a couple of hours to implement) I picked up on and I thought I'd share it because it's really simple and helped a lot - I hope it helps you too.

When I eventually support full-screen windows, it'd be possible to copy the full screen window directly into video memory without having to copy it into window manager's buffer first.
Last edited by AndrewAPrice on Wed Dec 03, 2014 12:01 pm, edited 1 time in total.
My OS is Perception.
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: Ghost 0.3.0 - first public demo!

Post by max »

Hey MessiahAndrw,
thanks for your post :) I already do that. I only copy the area that has actually changed to the VESA output buffer. Whats actually slow is (I'm embarrassed of myself :oops: ) that each time the window manager does it's repaint, it copies hierarchically: the desktop is copied to the buffer, then all windows are copied, which themself copy each of their components to the buffer, and each component copies its subcomponents. I should have thought about that being slow in the first place, but I thought "hmm memory copying shouldn't be too bad". I think that will speed stuff up quite a lot. :mrgreen:
Thank you for your help though ^-^ I'd love to see your windowing system in action too :)
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Ghost 0.3.0 - first public demo!

Post by AndrewAPrice »

max wrote:I'd love to see your windowing system in action too :)
I've put a screenshot of my window manager on the screenshot thread: http://forum.osdev.org/viewtopic.php?f= ... 93#p243393 It's still a work in progress, but one day I hope to have a downloadable image like you (still too buggy and not much to see yet.)
My OS is Perception.
Post Reply