Re: [compiz] Wobbly jerkyness

2007-05-02 Thread Shawn Starr
Hello

On May 2, 2007 02:50:30 pm David Reveman wrote:
> On Sun, 2007-04-29 at 17:54 +0800, Sam Spilsbury wrote:
> > About a month ago, David made a commit to wobbly to the spring engine
> > which has introduced some bugs. They are hard to explain so bear with
> > me.
> >
> > In a sense, the wobbly plugin does not seem as smooth as it used to be
> > and the windows jerk all over the place. For example, I sometimes
> > notice that when I move a large window (around 2/3 of the size of the
> > desktop window), If I moved it down, the top of the window would jerk
> > up then come down quickly. If you want me to explain further then let
> > me know
>
> I didn't change anything in the wobbly plugin, I changed how the move
> plugin works.
>
> Eventually, I'll make it possible to not have the move plugin update the
> window attributes in real-time and I can guarantee that performance will
> be at least as good as before I did these changes to the move plugin.
> However, before I can make this possible we need to improve the way
> window animations are performed. What the move plugin was doing before
> was wrong and I'm not going to change back to that.
>

Would this also resolve the problems the Xserver has wrt evicting pixmaps and 
EXA/XAA? For r300 users, we have to add in a ugly hack
specifically:

xorg-x11-server-1.1.1-offscreen-pixmaps.patch

Afaik, There's no solution proposed (?) yet.

I originally look at this and hit a problem:

/* Check if XAA is loaded */
if (xf86LoaderCheckSymbol("XAAEvictPixmaps")) {

XAAInfoRecPtr infoRec;
infoRec = GET_XAAINFORECPTR_FROM_SCREEN(glxPixmap->pDraw->pScreen);
if (InfoRec) {

/* When the GLX_EXT_texture_from_pixmap is used, as it's
 * implemented here, we want to pull pixmap out of video 
memory
 * and into host memory. */

static int evictedPixmaps;

if (!evictedPixmaps) {
XAAEvictPixmaps();
evictedPixmaps = TRUE;
}
}
 }

This snip of code above, wasn't the right solution to be doing inside the glx, 
The goal was to see if a specific screen has EXA or XAA (im told you can have 
different accelerations for each screen). 

I have to keep using the above mentioned patch in order to have a usable 
compiz otherwise, resizing windows and other functions make compiz totally 
unusable for radeon users (with XAA).   

I note, this is using AIGLX, so I don't know the behavour of this with Xgl.

Thanks, 
Shawn.


>
> - David
>
___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Re: Plugin Interface for Decoations

2007-05-02 Thread Shawn Starr
Hello 

On May 2, 2007 03:50:50 pm David Reveman wrote:
> On Mon, 2007-04-30 at 17:24 +0200, Patrick Niklaus wrote:
> > I realized some major problems with this approach. To give you a
> > better idea of what I'm actually talking about, take a look at this
> > schema:
> > http://media.beryl-project.org/Decoration-Schema.png
> >
> > As you can see KWD, GWD and Emerald would run in the same
> > applications, as plugins.
> > This might cause problems because the main loops of Qt and Gtk are
> > conflicting here, which was actually one of the reasons why the
> > decorator was not a own plugin in compiz.
> >
> > Another problem is the settings backend. To integrate into the desktop
> > each plugin uses its own backend. For example the emerald plugin uses
> > ini/gkey files + libemeraldengine but GWD gconf + metacity functions.
> > So basically we would end up with a complete window decorator, ported
> > to a plugin, which is not really what I had in mind.
> >
> > An alternative would be, remaining the current structure of having
> > several decorator running as an own application and expand emerald to
> > an highly-customizeable and extentable decorator, which relies on
> > plugin architecture. The main goal of that decorator would be to
> > provide an independently theme and other rather experimental things
> > like animations.
> >
> > This architecture is shown in this schema:
> > http://media.beryl-project.org/Decoration-Schema2.png
> >

>
> You're welcome to improve emerald, rewrite it or write a completely new
> decorator, I'm definitely not going to stand in the way of that.
> However, I suggest that you avoid duplicating work when not necessary
> and avoid creating alternatives to existing solutions.
>
> libdecoration contains code that is used by all decorators. If you find
> some code that makes sense for more than one decorator, it likely makes
> sense to put that code in libdecoration.
>
> What's missing in current decorators? The following is what I think is
> missing and how it's most properly fixed.

One thing that the old original Emerald window decorator did was support 
button effects, some of these effects like the glow effect. I don't know if 
Emerald-2 or compiz deal with specific button effects themselves?

> - David
>

Shawn.
___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] [PATCH] Option for activation behaviour on window close

2007-05-02 Thread David Reveman
On Mon, 2007-04-30 at 11:05 +0200, Danny Baumann wrote:
> Hi,
> 
> please find attached a patch that makes the behaviour of window
> activation when a window is closed optional.
> Currently, always the last active window is activated. Sometimes this
> might not be the desired behaviour, but users (like me ;-) ) would like
> the window under the pointer to be activated. This patch adds the latter
> behaviour as an option while still keeping the former behaviour as
> default.
> 
> Questions / concerns / objections / opinions anyone?

Is there any reason someone using click-to-focus would want this? Is
there any reason someone not using click-to-focus wouldn't want this?

- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] gtk-window-decorator Wnck warnings

2007-05-02 Thread David Reveman
On Mon, 2007-04-30 at 01:22 -0500, Erkin Bahceci wrote:
> Hi,
> 
> I'm getting a lot of warnings like this one:
> (gtk-window-decorator:8442): Wnck-WARNING **: Unhandled action type (nil)
> 
> Does anyone else see these warnings or know what causes these?

That warning is caused by compiz setting the new ACTION_ABOVE hint on
windows and old versions of libwnck doesn't recognize that hint. It's
harmless and if you upgrade to a newer version of libwnck (I think you
need the svn version) it will disappear. That libwnck spits out a
warning just because it doesn't recognize an action type is sort of bug.

> 
> Also, it seems that this "lost textures" bug
>   https://bugs.freedesktop.org/show_bug.cgi?id=10789
> usually happens only when these warnings are spitted out, so the bug
> is probably related to these wnck warnings.

I haven't looked at the "lost textures" bug but I can guarantee that
it's not related to this libwnck warning.

- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Re: Plugin Interface for Decoations

2007-05-02 Thread David Reveman
On Mon, 2007-04-30 at 17:24 +0200, Patrick Niklaus wrote:
> I realized some major problems with this approach. To give you a
> better idea of what I'm actually talking about, take a look at this
> schema:
> http://media.beryl-project.org/Decoration-Schema.png
> 
> As you can see KWD, GWD and Emerald would run in the same
> applications, as plugins.
> This might cause problems because the main loops of Qt and Gtk are
> conflicting here, which was actually one of the reasons why the
> decorator was not a own plugin in compiz.
> 
> Another problem is the settings backend. To integrate into the desktop
> each plugin uses its own backend. For example the emerald plugin uses
> ini/gkey files + libemeraldengine but GWD gconf + metacity functions.
> So basically we would end up with a complete window decorator, ported
> to a plugin, which is not really what I had in mind.
> 
> An alternative would be, remaining the current structure of having
> several decorator running as an own application and expand emerald to
> an highly-customizeable and extentable decorator, which relies on
> plugin architecture. The main goal of that decorator would be to
> provide an independently theme and other rather experimental things
> like animations.
> 
> This architecture is shown in this schema:
> http://media.beryl-project.org/Decoration-Schema2.png
> 
> I'm not really sure which one would fit our needs best here (or if
> there would be other solutions), so it would be the best if we could
> discuss that here.
> 
> Regrads,
> Patrick
> 
> 2007/4/29, Patrick Niklaus <[EMAIL PROTECTED]>:
> > Hi,
> >
> > this email is basically the result of a small discussion which made me
> > think what the real end-goal of my work on Emerald-2 would be. Since
> > Emerald has already a extensible system (Engines) I thought about
> > giving the engines wider access, so that they are more like plugins.
> > However the first thing needed is a nice plugin API. The base for that
> > is the new settings backend of Emerald-2. Settings backend might not
> > be the right word here, since it handles a lot more, it could also be
> > called engines backend. (=> libemeraldengine)
> >
> > The next step is, taking GWD (which has a proper usage of
> > libdecoration), port it to that system and also port most of Emerald
> > features to it. This includes pixmap buttons and usage of the button
> > interface for libdecoation, which will described in detail in another
> > mail.
> >
> > Basically we would end up with a better Emerald, working name Emerald-2.
> > Now, if we got that working properly we need to think about what will
> > be moved to a plugin and what will stay in core. At this point we also
> > need an exact definition of the plugin API. A first general definition
> > can be found below.
> >
> > It would be really nice if I could get some feedback or suggestions on my 
> > plans.
> >
> > BTW. Please do not start a flame war because of the working name, it
> > will be probably changed and I don't want to decide about it yet, but
> > since it shares most of its features I choose this name for now.
> >
> >  The Plugin Interface 
> >
> > * Settings:
> >   - make use of libemeraldengien settings backend
> > => could cause problems because Metacity and KDE have different backends
> >   - maybe extent it so it would better fit our needs
> >   - but keep in mind that we won't need a second implementation of the
> > compiz options system
> >
> > * Event handling:
> >   - provide notifies for plugins for some specific events
> >   - not sure which one will be needed
> >   - however resize/move/enter/leave will probably be included
> >
> > * Integration into Emerald-2:
> >   - standard button drawing will be probably handled by plugins
> >   - window title drawing probably too
> >   - we need a system so plugins can sign up for providing functions
> > => wrapping stack like in compiz
> > => slot system, so only one plugin at the same time can sign up for it
> >
> > * Integration into DE's:
> >   - add a plugin for Metacity support
> >   - maybe port the KDE decoration also to a plugin (if thats possible)
> >
> > Regards,
> > Patrick
> >

You're welcome to improve emerald, rewrite it or write a completely new
decorator, I'm definitely not going to stand in the way of that.
However, I suggest that you avoid duplicating work when not necessary
and avoid creating alternatives to existing solutions.

libdecoration contains code that is used by all decorators. If you find
some code that makes sense for more than one decorator, it likely makes
sense to put that code in libdecoration.

What's missing in current decorators? The following is what I think is
missing and how it's most properly fixed.

KDE - Expose a few things in kwd that will make is possible for kwin
plugins to use alpha channels and less resources. That's it, the kwin
plugin API is flexible enough do do pretty much anything so I don't see
a need to create an alternative here.

GNOME - Th

Re: [compiz] [PATCH]Make wobbly's bezier patch to work with grids that aren't 4x4.

2007-05-02 Thread Kristian Høgsberg

On 5/2/07, David Reveman <[EMAIL PROTECTED]> wrote:

On Wed, 2007-05-02 at 01:02 +0300, Roi Cohen wrote:
> This patch is not supposed to make bezierPatchEvaluate any slower than
> it is right now for 4x4 grids.
> 4x4 grid is hard-coded anyway (but inside a define), and this patch
> will just make it possible to people who want to hack this plugin to
> make bigger grids (of course, bigger grids will affect performance).
> So this patch actually doesn't change anything, but the "correctness"
> of this function, and also shouldn't have any performance affect.

You're adding branching, two loops, calls to 'pow' function and a bunch
of divisions to a function that is often executed many thousand times
per second. It's not obvious to me that this wont have a performance
impact.

I understand that it's a correction fix but removing those GRID defines
and making it obvious that the code is hard-coded to 4x4 and not
allowing it to be changed is just as correct. As your testing proved
that changing it to anything but 4x4 doesn't make much sense, I find
this more appropriate as we don't have to worry about the possible
performance impact those changes might have to bezierPatchEvaluate.


And it's less correct not more correct.  A bezier curve has 4 control
points, a bezier patch has 4x4 control points.  If you want to hack
something up to allow more control points, fine, but it's no longer a
*bezier*  patch.  And the main reason for using the bezier patch
instead of just using enough model object and controlling the grid
using their positions was to *cut down* on the number of control
points to reduce the ripple propagation time through the grid.

Just because something can be made configurable doesn't mean it's a good idea.

Kristian
___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Wobbly jerkyness

2007-05-02 Thread David Reveman
On Sun, 2007-04-29 at 17:54 +0800, Sam Spilsbury wrote:
> About a month ago, David made a commit to wobbly to the spring engine
> which has introduced some bugs. They are hard to explain so bear with
> me.
> 
> In a sense, the wobbly plugin does not seem as smooth as it used to be
> and the windows jerk all over the place. For example, I sometimes
> notice that when I move a large window (around 2/3 of the size of the
> desktop window), If I moved it down, the top of the window would jerk
> up then come down quickly. If you want me to explain further then let
> me know 

I didn't change anything in the wobbly plugin, I changed how the move
plugin works.

The jerkyness and high CPU load is actually expected behavior. The high
CPU load is caused by the move plugin changing the server-side window
attributes to reflect the current position of the window in real-time.
The move plugin doesn't have to do this but it's important that things
don't break when it does. I've already been able to fix a number of
performance issues after making this change and I think there's some
more low hanging fruit that can be taken care of quickly.

Eventually, I'll make it possible to not have the move plugin update the
window attributes in real-time and I can guarantee that performance will
be at least as good as before I did these changes to the move plugin.
However, before I can make this possible we need to improve the way
window animations are performed. What the move plugin was doing before
was wrong and I'm not going to change back to that.

You're very welcome to help out with testing, profiling and fixing
issues related to how the move plugin currently works. If you're not
interested in that and if you can't live with the issues and performance
of the current move plugin, you're welcome to use an older version of
the move plugin with the bad but better performing behavior.

- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] White boarders on size 32 shadows. Intel platform only

2007-05-02 Thread David Reveman
On Sun, 2007-04-29 at 17:43 +0800, Sam Spilsbury wrote:
> Recently, I brought up a topic about white boarders being drawn
> instead of shadows in Gnome-Window-Decorator. A patch was made up by
> gandalfn to correct this by making 32 pixel shadows 33 pixels, however
> the patch was not committed because it was a workaround. 
> 
> This is a huge functional annoyance to us intel users and needs to be
> cured. There are two soultions I can think of:
> 
> 1 Get in contact with the X.org i810 team and ask them to correct the
> issue in their driver which does not allow 32 pixel shadows to be
> drawn. 
> 2 Allow the user to specify in GConf or something the depth of the
> shadows that GWD creates. Emerald from Beryl currently allows this so
> I don't understand why it would be too hard to implement.
> 
> Yes I *know* #2 is more like a workaround but at least it allows the
> user to specify how big they want this shadows to be. (Please dont
> confuse this with X-offset adn Y-Offset). 

I did some quick testing and the problem indeed seem to be a driver
issue but I haven't had time to track down exactly what's causing it.
There's nothing we can do until someone have been able to track it down.
You can enter a intel 3d driver bug for this if you want and if we're
lucky someone might be able to help us track this down.

- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Wobbly jerkyness

2007-05-02 Thread Joel Calado


> On 5/2/07, Sam Spilsbury <[EMAIL PROTECTED]> wrote:
> 
> Weird, I dont even know your e-mail adress Oh
> well, forwarded. 
> 
> Anyways for those of you on the compiz list, here is
> the inital problem. 
> 
> Wobbly is jerky and it seems that the move plugin is
> the culprit with high CPU usage 


No progress on this? Am I and Sam the only ones affected in this list?
Joel


___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Strange behaviour in move plugin

2007-05-02 Thread Mike Dransfield

David Reveman wrote:

On Thu, 2007-04-05 at 18:55 +0200, Bellegarde Cedric wrote:
  
One of the two last commit to move plugin make windows movements really 
strange and cpu usage really intensive...



Strange in what way?

One of the changes that was made is that the server side window position
is now updated after each motion event. This shouldn't really affect
performance by itself but the application, some pager or some other
application might be doing something performance sensitive each time the
position changes.

I know that both gwd and kwd are doing a bunch of unnecessary work each
time the position changes and I'll fix that sometime soon.

There might always be applications that are doing a lot of unnecessary
work each time the window position changes so having support for only
updating the server-side position when we're finished moving a window is
useful and I'll add that back to the move plugin later in a more
appropriate way. The old way it was done was bad.
  


I have been looking at this a bit more (just at reproducing it) and I
have noticed some strange effects.

I do not think its a problem with the move plugin or the toolkits, it
seems related to the decorators.

If I reload compiz from a terminal and then shake that terminal the
movement is fluid and smooth.  I notice that the kwd buttons go
missing as well.  When I click to another window the decorator buttons
reappear and movement only updates when I pause the mouse
movement (ie. I see the horrible jerkyness).

I have seen the decorator lose buttons before so it looks like this
problem is actually a combination of a couple of changes, but
possibly related to that.

Does this sound reasonable?

Sorry, I forgot to copy the list on this one, I notice that killing
kwd fixes the problem, can anyone else see this?



- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz
  



___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] [PATCH]Make wobbly's bezier patch to work with grids that aren't 4x4.

2007-05-02 Thread David Reveman
On Wed, 2007-05-02 at 01:02 +0300, Roi Cohen wrote:
> This patch is not supposed to make bezierPatchEvaluate any slower than
> it is right now for 4x4 grids.
> 4x4 grid is hard-coded anyway (but inside a define), and this patch
> will just make it possible to people who want to hack this plugin to
> make bigger grids (of course, bigger grids will affect performance).
> So this patch actually doesn't change anything, but the "correctness"
> of this function, and also shouldn't have any performance affect.

You're adding branching, two loops, calls to 'pow' function and a bunch
of divisions to a function that is often executed many thousand times
per second. It's not obvious to me that this wont have a performance
impact.

I understand that it's a correction fix but removing those GRID defines
and making it obvious that the code is hard-coded to 4x4 and not
allowing it to be changed is just as correct. As your testing proved
that changing it to anything but 4x4 doesn't make much sense, I find
this more appropriate as we don't have to worry about the possible
performance impact those changes might have to bezierPatchEvaluate.

- David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Wobbly jerkyness

2007-05-02 Thread Joel Calado

I can confirm this. Move is jumpy, and wobbly is jerky.
This makes it impossible to use compiz git right now, at least for me.

Joel



On 5/2/07, Sam Spilsbury <[EMAIL PROTECTED]> wrote:


Weird, I dont even know your e-mail adress Oh well, forwarded.

Anyways for those of you on the compiz list, here is the inital problem.

Wobbly is jerky and it seems that the move plugin is the culprit with high
CPU usage

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz