[haiku-appserver] Re: [Haiku-commits] r12197 - haiku/trunk/src/servers/app

  • From: "Stephan Assmus" <superstippi@xxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Mon, 04 Apr 2005 20:04:57 +0200 CEST


> >>This fixes up the last known remaining issues with the update code.
> >>It works perfectly now.
>       Kinda' rushed with that affirmation. :-)

:-) Well, after I saw that app_server runs differently on other 
machines than mine, I was not sure if it might indeed have looked 
correct on yours.

>       When I made those tests I didn't noticed any problems with the 
> redraw code.
>       Now, I tested a bit more. I launched 2-3 instances of "Window" and 
> there are still some problems with redraw code. Damn! :-) The string 
> "Hello World!" appeared in front of some windows it didn't belong to. 
> Is 
> this what you are talking about? What other problems have you 
> encountered?

When I move arround those windows, the clipping usually does get 
enforced, but it redraws not the entire views, just some random parts 
of it. (I will make a screenshot). From time to time though, it redraws 
the entire view with no clipping at all, so that's when it draws over a 
window that is on top of the view.

> > Unfortunately, it puts the app_server back into the state that it 
> > was 
> > in when I started complaining about it not working.
>       That's very strange as on my computer app_server runs better than 
> ever. 

Are you using the new DisplayDriverPainter? Because if not, you 
wouldn't see the clipping bugs, as ViewDriver does not enforce the 
clipping in many drawing functions.

> We need to communicate about app_server's problems so we know exactly 
> what's wrong.

I made some screenshot:


01 and 02 show that "random" parts of the views are not updated. 03 and 
04 shows that sometimes views are drawn without any clipping.

> > Curiously enough, 
> > when I was at BeGeistert and had the app_server running on a 
> > variaty of 
> > machines, it behaved differently on each one, though I'm pretty 
> > sure I 
> > compiled with the same revision of the source each time. I'm 
> > puzzled. 
>       Well... tell us.

On one machine I tested, the views were not drawn at all. The windows 
were drawn fine, the clipping for that worked, but the views were not 
drawn at all. I was told that the svn tree was the current one (Oliver 
On Ingo Weinhold's machine, which also had the current tree, the 
app_server drew the views just fine, with only the problem that from 
time to time the clipping was not enforced, and views were allowed to 
draw over other windows. This seems to me now like the bug that happens 
on my machine when the entire views are drawn from time to time without 
any clipping. Fortunately, this was the machine we demoed app_server 
on, so at least there was something to see. We also booted app_server 
on Haiku with the old AccelerantDriver, and that worked fine on Ingos 
machine as well.

Adi, I'm testing this on a dual CPU system. AH! I just tried turning 
off one CPU. Now it looks like on Ingo's machine. All parts of the 
views are correctly redrawn (no missing parts), but the bug, where 
sometimes views are drawn without any clipping, remains.
Stuff to which access has to be serialized, like the clipping of views 
(if it gets modified by RootLayer and the respective ServerWindow), 
needs to be protected by locks. It was working before, I don't exactly 
understand your code and also not the recent changes you did. But maybe 
this dual/single CPU thing helps you find the problem.

Best regards,

Other related posts: