<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>269816</bug_id>
          
          <creation_ts>2011-03-31 12:53:02 +0000</creation_ts>
          <short_desc>Bad performance after re-enabling desktop effects</short_desc>
          <delta_ts>2011-04-14 23:55:16 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Plasma</classification>
          <product>kwin</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Ubuntu</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Saygın Bakşi">sayginb</reporter>
          <assigned_to name="KWin default assignee">kwin-bugs-null</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1102870</commentid>
    <comment_count>0</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-03-31 12:53:02 +0000</bug_when>
    <thetext>Version:           unspecified (using KDE 4.6.1) 
OS:                Linux

With KDE 4.6 compositing performance is so good, i have never had a problem with it. However, if i suspend desktop effects and re-enable it, it becomes very laggy, like it has a really low fps, although &quot;show fps&quot; plugin shows 48fps minimum. The only way to have smooth compositing again is, enabling effects and reboot. I hope there is will be a solution soon.

Reproducible: Always

Steps to Reproduce:
1) Turn Off Desktop Effects.
2) Turn On Desktop Effects

Actual Results:  
After re-enabling, animations are not smooth anymore.

Expected Results:  
No matter how many times I disable/enable Desktop Effect, in the end, animations should be smooth as it was first enabled after a reboot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102970</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-03-31 20:48:20 +0000</bug_when>
    <thetext>- please sharpen &quot;animations&quot;.
  * kwin window effects (cover flow, present windows, etc.)
  * in client animations (oxygen animations, scrolling, just smooth scrolling as in bug #246084)
  * particular applications (flash)
   * resizing
   * other stuff...

- does restarting kwin &quot;kwin --replace &amp;&quot; help?

- does flushing the pixmap cache* help? (&quot;nvidia-settings -a PixmapCache=0; nvidia-settings -a PixmapCache=1&quot;, don&apos;t try being smart by setting it in a combined nvidia-settings call, that won&apos;t work)

* i assume we&apos;re talking about this machine?
Kubuntu 10.10
Kde 4.6
Nvidia 425M with 1GB VRam (270.29 Beta driver)
6GB DDR3 RAM
1.73GHz i7 Quad Core</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103165</commentid>
    <comment_count>2</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-01 15:53:33 +0000</bug_when>
    <thetext>(In reply to comment #1)
&gt; - please sharpen &quot;animations&quot;.
&gt;   * kwin window effects (cover flow, present windows, etc.)
&gt;   * in client animations (oxygen animations, scrolling, just smooth scrolling
&gt; as in bug #246084)
&gt;   * particular applications (flash)
&gt;    * resizing
&gt;    * other stuff...

Before I get into the details, it seems like the most choppy effect (maybe the only that my eyes can see) is the minimize/maximize effect. So, I tested all the proposed techniques according to this animation.

Animations I use with kwin are:
- Blur
- Fade
- Highlight Window
- Login
- Logout
- Minimize Animation
- Screenshot
- Shadow
- Slide
- Sliding popups
- Taskbar Thumbnails
- Translucency
- Startup Feedback
- Dialog Parent
- Dim Screen for Administration Mode
- Cover Switch
- Desktop Grid
- Present Windows

I use bespin theme with default configurations now, however the same result was there with oxygen theme with defaults.

&gt;
&gt; - does restarting kwin &quot;kwin --replace &amp;&quot; help?
-Nope!

&gt;
&gt; - does flushing the pixmap cache* help? (&quot;nvidia-settings -a PixmapCache=0;
&gt; nvidia-settings -a PixmapCache=1&quot;, don&apos;t try being smart by setting it in a
&gt; combined nvidia-settings call, that won&apos;t work)
I tried &quot;nvidia-settings -a PixmapCache=0&quot; in a line, after this command I did &quot;nvidia-settings -a PixmapCache=1&quot; as you said before. However nothing has changed. When the PixmapCache=0, the animation is almost can&apos;t be seen, worse than before. When PixmapCache=1 again, it is the same as re-enabled choppy version

&gt;
&gt; * i assume we&apos;re talking about this machine?
&gt; Kubuntu 10.10
&gt; Kde 4.6
&gt; Nvidia 425M with 1GB VRam (270.29 Beta driver)
&gt; 6GB DDR3 RAM
&gt; 1.73GHz i7 Quad Core

Yes, my machine is the one above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103205</commentid>
    <comment_count>3</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-01 18:42:12 +0000</bug_when>
    <thetext>&gt; it seems like the most choppy effect ... is the minimize/maximize effect
- is &quot;magic lamp&quot; affected as well?
- does it happen if you minimize a window that does NOT have the focus (you must use &quot;click to focus&quot; (default) or &quot;focus follows mouse&quot; to do this)

what do you do between suspending &amp; resuming compositing? (run an OpenGL game etc. possibly related?)

&gt; I use bespin theme
what about the window decoration?

&gt; When the PixmapCache=0, the animation is almost can&apos;t be seen
expectable, the nvidia driver doesn&apos;t like the cacheless mode. de- and re-activating it just implicitly flushes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103765</commentid>
    <comment_count>4</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-03 19:34:14 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; it seems like the most choppy effect ... is the minimize/maximize effect
&gt; - is &quot;magic lamp&quot; affected as well?
Yes, it&apos;s the same as minimize effect.

&gt; - does it happen if you minimize a window that does NOT have the focus (you
&gt; must use &quot;click to focus&quot; (default) or &quot;focus follows mouse&quot; to do this)
I use click to focus and it happens all the time regardless of the window has focus or not
&gt; 
&gt; what do you do between suspending &amp; resuming compositing? (run an OpenGL game
&gt; etc. possibly related?)
Nothing indeed. I just use Alt+Shift+F12 double times and its just that.
&gt; 
&gt; &gt; I use bespin theme
&gt; what about the window decoration?
Bespin again but as I said before, I used to use oxygen (both theme and window decoration) and it was the same as again. (Both of the themes and decorations use default settings)
&gt; 
&gt; &gt; When the PixmapCache=0, the animation is almost can&apos;t be seen
&gt; expectable, the nvidia driver doesn&apos;t like the cacheless mode. de- and
&gt; re-activating it just implicitly flushes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103787</commentid>
    <comment_count>5</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-03 21:11:58 +0000</bug_when>
    <thetext>(In reply to comment #4)
&gt; Yes, it&apos;s the same as minimize effect.
&gt; I use click to focus and it happens all the time regardless of the window has
&gt; focus or not
 &gt; Nothing indeed. I just use Alt+Shift+F12 double times and its just that.

hmmm... 
- What if you set  &quot;Keep window thumbnails&quot; to &quot;Always&quot; in the advanced tab of &quot;kcmshell4 kwincompositing&quot;?
- Can you check whether it happens with other minimization effects like eg this one:
http://kde-apps.org/content/show.php/BeDropped+%3B-)?content=120847
- Did you monitor cpu usage during these effects?
- Can you log the system load with sysprof (start it and then minimize a lot of windows)

&gt; Bespin again but as I said before,
Thanks for defending Bespin, but that&apos;s not necessary ;-)
I would have rather guessed that you&apos;re using Arorae and sth. with the plasma theme reload on suspend/resume borks the pixmap cache (and you&apos;d have to render SVGs on every focus change in consequence) - but that does not seem to be the case anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103830</commentid>
    <comment_count>6</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-04 00:01:30 +0000</bug_when>
    <thetext>(In reply to comment #5)
&gt; - What if you set  &quot;Keep window thumbnails&quot; to &quot;Always&quot; in the advanced tab of
&gt; &quot;kcmshell4 kwincompositing&quot;?
Well, when I change it from &quot;Only for Shown Windows&quot; to &quot;Always&quot;, it is the same as suspending and resuming desktop effects. It gives the same laggy result.

&gt; - Can you check whether it happens with other minimization effects like eg this
&gt; one:
&gt; http://kde-apps.org/content/show.php/BeDropped+%3B-)?content=120847
I don&apos;t have much time mow, I&apos;ll do it ASAP.

&gt; - Did you monitor cpu usage during these effects?
One of my CPU cores goes a little bit high but doesn&apos;t look suspicious.

&gt; - Can you log the system load with sysprof (start it and then minimize a lot of
&gt; windows)
I&apos;ll do it ASAP too.
&gt; 
&gt; &gt; Bespin again but as I said before,
&gt; Thanks for defending Bespin, but that&apos;s not necessary ;-)
&gt; I would have rather guessed that you&apos;re using Arorae and sth. with the plasma
&gt; theme reload on suspend/resume borks the pixmap cache (and you&apos;d have to render
&gt; SVGs on every focus change in consequence) - but that does not seem to be the
&gt; case anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104060</commentid>
    <comment_count>7</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-04 22:35:26 +0000</bug_when>
    <thetext>There&apos;s one last wild guess i can provide:
shut down the plasma-desktop (&quot;kquitapp plasma-desktop&quot;)

Reason:
Toggling compositing triggers a theme update in plasma. Assuming sth. goes wrong there and you&apos;re using a taskbar which changes on minimizing clients, it could cause quite some cpu load then....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104097</commentid>
    <comment_count>8</comment_count>
      <attachid>58582</attachid>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-05 00:48:03 +0000</bug_when>
    <thetext>Created attachment 58582
sysprof outputs for various cases

&gt; - Can you check whether it happens with other minimization effects like eg this
&gt; one:
&gt; http://kde-apps.org/content/show.php/BeDropped+%3B-)?content=120847
Didn&apos;t work better, sorry :(

&gt; - Can you log the system load with sysprof (start it and then minimize a lot of
&gt; windows)
I did several profiling and named according to it. Here&apos;s as an attachment

also &quot;kquitapp plasma-desktop&quot; didn&apos;t have any effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104456</commentid>
    <comment_count>9</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-06 00:01:16 +0000</bug_when>
    <thetext>The sysprofs do indicate high cpu drain (kwin + X11 together take 3/2 of the cpu amarok requires to play an mp3 - gstreamer cannot be /that/ bad ;-)
Can you confirm that the general cpu usage (eg in top) doe not overly rise (sucks away an entire core or so) when the issue occurs?

Since it&apos;s a mobile chip, i&apos;d bet on powersavings (ie. when you suspend compositing, the GPU clocks down to save power and when you resume it doesn&apos;t clock up)
add
Option      &quot;Coolbits&quot; &quot;1&quot;
to the device setting in /etc/X11/xorg.conf restart X11 (sudo telinit 3; sudo telinit 5) and then launch nvidia-settings, have a look at &quot;PowerMizer&quot;, suspend/resume compositing and have another look.
Since you activate &quot;Coolbits&quot; you can now also manipulate the gpu clock (do NOT burn it - while the GPU can take a lot of temperature and care about itself, it might melt down some transistors...)
Just have a look whether the Powermizer state and gpu/memory clock returns to where it has been.
It&apos;s possible to manipulate/force powermizer settings, but the entire thing seems to be still just broken on some notebooks :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104531</commentid>
    <comment_count>10</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-06 09:57:17 +0000</bug_when>
    <thetext>(In reply to comment #9)
&gt; The sysprofs do indicate high cpu drain (kwin + X11 together take 3/2 of the
&gt; cpu amarok requires to play an mp3 - gstreamer cannot be /that/ bad ;-)
&gt; Can you confirm that the general cpu usage (eg in top) doe not overly rise
&gt; (sucks away an entire core or so) when the issue occurs?

well, kubuntu 10.10 uses xine backend instead of gstreamer. But that&apos;s not important. This minimize effect does not eats so much cpu, and any of the cores have huge load. I don&apos;t think there is the problem.

&gt; Since it&apos;s a mobile chip, i&apos;d bet on powersavings (ie. when you suspend
&gt; compositing, the GPU clocks down to save power and when you resume it doesn&apos;t
&gt; clock up)
&gt; add
&gt; Option      &quot;Coolbits&quot; &quot;1&quot;
&gt; to the device setting in /etc/X11/xorg.conf restart X11 (sudo telinit 3; sudo
&gt; telinit 5) and then launch nvidia-settings, have a look at &quot;PowerMizer&quot;,
&gt; suspend/resume compositing and have another look.
&gt; Since you activate &quot;Coolbits&quot; you can now also manipulate the gpu clock (do NOT
&gt; burn it - while the GPU can take a lot of temperature and care about itself, it
&gt; might melt down some transistors...)
&gt; Just have a look whether the Powermizer state and gpu/memory clock returns to
&gt; where it has been.
&gt; It&apos;s possible to manipulate/force powermizer settings, but the entire thing
&gt; seems to be still just broken on some notebooks :-(

I haven&apos;t done anything you said above yet, if you want I can do it. However while skimming in the nvidia-settings, I saw that I have Vertical Sync enabled in OpenGL window. I closed it, suspended&amp;resumed kwin and wow! minimize effect returns to good performance again. However, this time videos I play in any media program has tearing effect, so I have to enable it. So I guess kwin can&apos;t work well if nvidia driver uses vSync option enabled. Can be true?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104574</commentid>
    <comment_count>11</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-06 12:23:02 +0000</bug_when>
    <thetext>&gt; I saw that I have Vertical Sync enabled in OpenGL window
That pretty much explains it.
Having the global syncing activated and kwin syncing activated will give you 2 syncs for every fullscreen effect frame (nvidia intercepts the glXSwapBuffers() call and adds a sync wait, but we already had waited once)
So you&apos;ll have (on a 50Hz display) 25 fps at max, if the geometry calculation or the MaxFPS cap crosses a frame, it drops to 16fps what is &quot;visible&quot; ;-)

You should preferably deactivate nvidias global sync (it&apos;s mostly for programs that can&apos;t sync themselves and it cannot sync the ordinary kwin frame - there&apos;s no complete frame update, thus buffer swap)  and use the environment variable to set it before launching clients that really need it (or that you want to use it since it will perform slightly better than glXWaitSync what can get you better vsync&apos;ing in games if you /replace/ the games internal syncing.

If this is reallyreallyreally no option at all you&apos;d set
Option      &quot;TripleBuffer&quot; &quot;true&quot;
in the xorg.conf device section what /might/ improve the experience - but this costs memory and will also slightly increase the latency (input -&gt; visual result)
---------
Marking invalid for misconfiguration. Rethinking whether we actually need this and more control for the nvidia hack lib or launch kwin through a script... :S

--------------
Slight OT:
amarok has the highest CPU load in /usr/lib/gstreamer-0.10/libgstflump3dec.so and I do not see libxine at all...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105237</commentid>
    <comment_count>12</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-07 21:18:41 +0000</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; I saw that I have Vertical Sync enabled in OpenGL window
&gt; That pretty much explains it.
&gt; Having the global syncing activated and kwin syncing activated will give you 2
&gt; syncs for every fullscreen effect frame (nvidia intercepts the glXSwapBuffers()
&gt; call and adds a sync wait, but we already had waited once)
&gt; So you&apos;ll have (on a 50Hz display) 25 fps at max, if the geometry calculation
&gt; or the MaxFPS cap crosses a frame, it drops to 16fps what is &quot;visible&quot; ;-)
&gt; 
&gt; You should preferably deactivate nvidias global sync (it&apos;s mostly for programs
&gt; that can&apos;t sync themselves and it cannot sync the ordinary kwin frame - there&apos;s
&gt; no complete frame update, thus buffer swap)  and use the environment variable
&gt; to set it before launching clients that really need it (or that you want to use
&gt; it since it will perform slightly better than glXWaitSync what can get you
&gt; better vsync&apos;ing in games if you /replace/ the games internal syncing.
&gt; 
&gt; If this is reallyreallyreally no option at all you&apos;d set
&gt; Option      &quot;TripleBuffer&quot; &quot;true&quot;
&gt; in the xorg.conf device section what /might/ improve the experience - but this
&gt; costs memory and will also slightly increase the latency (input -&gt; visual
&gt; result)
&gt; ---------
&gt; Marking invalid for misconfiguration. Rethinking whether we actually need this
&gt; and more control for the nvidia hack lib or launch kwin through a script... :S
&gt; 

Well, although I have major issues right now, I think it is still a bug. First of all, I NEED TO enable vertical sync in nvidia settings because of tearing effects in videos, so disabling it is not a good option I think. But after a restart, all effects works properly independent of vsync configuration in nvidia setting. After suspending/resuming the problem occurs.

&gt; --------------
&gt; Slight OT:
&gt; amarok has the highest CPU load in /usr/lib/gstreamer-0.10/libgstflump3dec.so
&gt; and I do not see libxine at all...
Well, I don&apos;t remember changing it from xine to gstreamer, but you are right, phonon uses gstreamer. (shame)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105255</commentid>
    <comment_count>13</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-07 22:10:23 +0000</bug_when>
    <thetext>Assuming you&apos;d actually /have/ to activate nvidias global synchronization this would lead to an unresolvable conflict to be only solved on your side by exporting __GL_SYNC_TO_VBLANK=0 on launching kwin.

I however doubt this is actually the case.
Unless you run a GL backend on your video player, this setting has exactly zipzeronull impact on video playback itself.
Aside this good video players offer syncing themselves ;-)

It has also no impact on (regular) compositing since KWin will usually not make the call that nvidia waits for to wait for the next vblank before doing some. You /have/ to use the kwin syncing to get sync&apos;d compositing at all.

The nvidia driver can also sync to the adaptors (texture/blitter) of xv which is the default output of all relevant videoplayers (except when using xv, but afaik neither vdpau nor xvmc are syncable by the driver) - this is likely what you want to do and completely unrelated to GL syncing.

I&apos;ve no idea why this does not happen before the first suspend/resume/restart but guess that kwin initially starts before the nvidia settings are applied.
Does logging out/in &quot;fix&quot; it?

---
If i&apos;m totally wrong and don&apos;t understand what you&apos;re trying to achieve at all, i&apos;d suggest to raise the MaxFPS rate to prevent additional frame dropping - but recheck above first ;-)
kwriteconfig -file kwinrc -group Compositing -key MaxFPS 200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106917</commentid>
    <comment_count>14</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-11 21:29:15 +0000</bug_when>
    <thetext>It is an nvidia driver OpenGL Vsync issue. With some additional invesitgation, the problem occurs depending on the situation:

1) If we enable Vsync in nvidia-settings from OpenGL tab, then enable kwin compositing, the framerate for desktop effects are very low. Not smooth at all. However movies have no tearing issues. (Tested with VLC with output is set to many different options)

2)If we start kwin then enable Vsync in nvidia-settings from OpenGL tab, the effects are smooth again, and the videos have no issues as well. 

3)With no Vsync in nvidia-settings from OpenGL tab, effects are smooth, videos have tearing issues.

I think the changes in the Vsync option in nvidia-settings from OpenGL tab only effects the newly opened applications, so kwin has to be started before this option is enabled I guess. I have no other ideas. So, from now on, I disable vsync in nvidia-settings from OpenGL tab then start kwin, then enable it if I want to play videos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106993</commentid>
    <comment_count>15</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-11 23:48:00 +0000</bug_when>
    <thetext>&gt; I think the changes in the Vsync option in nvidia-settings from OpenGL tab only
&gt; effects the newly opened applications
yes.

&gt; So, from now on, I disable vsync in nvidia-settings from OpenGL tab then start kwin, then 
&gt; enable it if I want to play videos.
Just start vlc with the VSYNC override exported &quot;__GL_SYNC_TO_VBLANK=1 vlc&quot; (alter the program menu entry or similar, &quot;env&quot; is your friend)
However, I still fail to believe that this can have any impact unless you use the GLX or SDL (in case SDL hooks on GLX) video output *shrug*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107801</commentid>
    <comment_count>16</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-14 00:11:48 +0000</bug_when>
    <thetext>Used &quot;__GL_SYNC_TO_VBLANK=1 vlc&quot; command and it works like a charm with one exception, if I get into fullscreen mode, the tearing effects come back. If it is windowed (maximized or not), not tearing at all... Any suggestions? Just a thought, if we can enable sync before running an application, may be we should enable Vsync globally but disable it while starting kwin? what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107810</commentid>
    <comment_count>17</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-14 01:01:10 +0000</bug_when>
    <thetext>This /very/ strongly suggests that you&apos;re NOT using the OpenGL video output of vlc.

Reason:
while NOT in fullscreen, vlc  is composited and KWin syncs the window to the screen refresh rate.
In fullscreen mode the window will (by default, this can be changed, see the advanced tab) be unredirected to improve performance. (It bypasses the compositor and directly paints to screen)
At this point only the clients (vlc) or drivers (__GL_SYNC_TO_VBLANK) abilities to sync will apply. But for __GL_SYNC_TO_VBLANK to have any impact, vlc must actually render to opengl.
If it renders to xv (default, i think) nvidia should also be able to sync xv or vdpau (but it maybe only works correctly with one of the xv adapters)
You however need to enable this sync&apos;ing /before/ running the application in nvidia-settings, &quot;X Server XVideo Settings&quot; (i don&apos;t think there&apos;s an environment variable)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108198</commentid>
    <comment_count>18</comment_count>
    <who name="Saygın Bakşi">sayginb</who>
    <bug_when>2011-04-14 21:17:52 +0000</bug_when>
    <thetext>VLC XV output gives the best result with nvidia Xvideo Vsync option is enabled.

If you are interested for more, nvidia OpenGL Vsync is disabled, I have set vlc to glx (not default this time) output and used __GL_SYNC_TO_VBLANK=1 parameter, this time when windowed, the low fps problem (like minimize effect) occurs, fullscreen is great. If I open vlc without __GL_SYNC_TO_VBLANK option, again fullscreen is ok but windowed has tearing, not low fps problem. Well, I guess XV output is good enough, and I am bored of bugging you with my problems, so I am going to stop sending messages to this bug report. However, I think that nvidia openGL Vsync should be the same as Kwins, they shouldn&apos;t cause problems to others. So, I hope if there is a better way, you will find it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108248</commentid>
    <comment_count>19</comment_count>
    <who name="Thomas Lübking">thomas.luebking</who>
    <bug_when>2011-04-14 23:55:16 +0000</bug_when>
    <thetext>(In reply to comment #18)

&gt; Well, I guess XV output is good enough
Actually it&apos;s the preferred output and afaik the only one for accelerated video playback (vdpau) - the opengl output won&apos;t make things any faster and actually is more expensive (unless you tweak settings as possible in eg. mplayer - no idea about vlc)

&gt; However, I think that
&gt; nvidia openGL Vsync should be the same as Kwins, they shouldn&apos;t cause problems
&gt; to others. So, I hope if there is a better way, you will find it.

The problem here is that if you ask nvidia to globally sync AND kwin to sync this are two sync calls - and a sync call is nothing but: waiting for the next vertical refresh trigger.

Ideally we would (but ONLY for nvidia since that doesn&apos;t work on any other GPU!) use the global sync env parameter but that&apos;s not that easy since:
a) you couldn&apos;t change the vsync setting w/o restarting kwin
b) you MUST be using glXSwapBuffers what&apos;s a pretty bad idea because 
b1) one will hardly shrink the desktop to XGA because ones GPU RAM is not fast enough to refresh WUXGA in time. (so this might require more powerful GPUs and likely suck more battery)
b2) one has to ensure the validity of the offscreen buffer what means to either repaint the entire screen (expensive) or ensure the buffer is always copied (ie. no flipping...)

However the GLES backend will require swapping anyway - just that nvidia does so far not (officially) support GLES ;-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>58582</attachid>
            <date>2011-04-05 00:48:03 +0000</date>
            <delta_ts>2011-04-05 00:48:03 +0000</delta_ts>
            <desc>sysprof outputs for various cases</desc>
            <filename>profile.tar.gz</filename>
            <type>application/x-gzip</type>
            <size>29928</size>
            <attacher name="Saygın Bakşi">sayginb</attacher>
            
              <data encoding="base64">H4sIADQwmk0AA+29a3PjyJE26s/7KxT+NBsOSqgLbo45Hh/bsRPe1/Ye7/GemI0OB4MiITVWJMEh
QHVrfv0BQFI3MCuzVNkpsLcVHrda7J4BH1ZlPnl7crOtbsplMS1ubop5U0+3Rb1bFYvputquZsvp
rp7dFr8K/IqiKLH2ov1VpXH0/Nf2SyfKKnWhVGwTq9NYm4tIK53YX11Eof9hyteubmbb9lHq2cNt
uYb/HPZ6/2aOb6r99Uy+vt/sD8Dv/uWi/fq+Ln8pfqdTlX1/1X+7/+l8tlxOm21R/E59f/X0m/2L
1fX/dCdn/7tnP7koF//Xr9vP9tdPr/Svrmer4ne//vP6ovvPXlzt6u3Vsrzu/tksZ/VqdllXl+Yy
uox+/f1V/2df/vWmambL3+nvr/bfvHyxLpY33Wv9r08PdLV/IugRY+QRD4+3uN7VE7V/vPhSux4v
dzxe7vd4JtZEBG/KbXFTfZ7Yy6j7/efdsn1WJ4gqdsHYverzpFpTn7T9525R7MoOy/gycX/UxvGM
xvOj1jn+URvd/f98oi9V+z8EQut4OOsJn7V0+G6bj9titmgfMupAjC51EkWXSujKaBOdftTN/rGm
20/Lan433a27X1wPpRwPpXyPH/BQp/CryuUkau9xj50RszUmydzAVet5IYRXAtzWD+3VLNdlY397
cVdW049Ns7k4/uyfF/1v2091tvztVbPaXN3V7SdcNJO9e7y6W8526/nHYvvXf6gkSS7r5ey+mOz/
jOOvzVazbXX3Y63yXL/4O/90guFCI/I0DRFgGn744YeLD49HZ11vlrv2iT9tZ5tNsb0qTZa0L6x3
n6/Wm/uy+FRsL6/LtfOxE5fR8Hzslil5+Nfdsi72R741bU4Hxnjmc4pZu348BPNquWz/almt6/ls
vS62UubDpEQk27tgDw87fXrayeqh/rn9/vEHiOdIU8ezdy/6PHycAHf5Edx1salWu7u62N6X86Ju
dtfOM+r6/H2PKHCxPpwkLsfvsUtkYhfH8r38AEl9gu9uVX52Pw8jYBlASF+aolX1S7lcztpH23/z
sVi2FsltMBkhy7HrcjA68+3Dpqn2Vie/zJxXwnUjfB2tB5n6e/PTquPKl/YydVMBTnujsCfs/GS1
nRefi/ll++u0jdTam1tPy3Wjksv4T3+7+/eZFG+JgU/76Uh2t+Qnt00xrkvSv+p3Ao3jmc6GxCSM
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
uAYA
</data>

          </attachment>
      

    </bug>

</bugzilla>