Bug 283609

Summary: Cover/Flip Switch broken in multi screen setups
Product: [Plasma] kwin Reporter: m.wege
Component: effects-window-managementAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal Keywords: reproducible
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.7.3

Description m.wege 2011-10-08 15:56:53 UTC
Version:           unspecified (using KDE 4.7.1) 
OS:                Linux

The effect 3D-window-galery has problems when using it in a dual monitor set up. It does not limit itself to one screen, but is seen part one and part on the other screen which does not look very good.

Reproducible: Always

Steps to Reproduce:
Use the effect in a dual monitor setup.


Expected Results:  
The window galery should be only limited to one screen (the main screen).
Comment 1 Thomas Lübking 2011-10-08 18:05:45 UTC
"kcmshell4 xinerama" - ensure that "Enable ... fullscreen support" is checked (you likely want to check all, but you got to figure yourself)

iirc this is the default, i'll have a look, but what kind of distribution do you use?
Comment 2 m.wege 2011-10-08 18:11:01 UTC
Full screen support is enabled. I am using Kubuntu Natty with KDE 7.1
Comment 3 Thomas Lübking 2011-10-08 18:50:27 UTC
What kind of multiscreen (randr, xinerama, twinview) setup and on what GPU/Driver?
Comment 4 m.wege 2011-10-08 19:08:30 UTC
I am not sure, but most likely I am using RANDR, since I use just the stand KDE settings module. Driver is Intel (Intel GMA HD (5700MHD)) on an X201.
Comment 5 Martin Flöser 2011-10-08 21:35:31 UTC
I can reproduce here, flip switch is affected as well
Comment 6 Thomas Lübking 2011-10-08 21:56:20 UTC
Ok, it does NOT happen on nvidia/TwinView for me.
Neither in 4.7 branch nor in git master.

=> kephal/x/krandr thing?

@Martin
You tried on intel as well? Have you checked the reported screen amount?
And what about maximizing then? (recall the kde-devel mail?)
Comment 7 Martin Flöser 2011-10-09 06:21:06 UTC
> 21:56:20 --- Ok, it does NOT happen on nvidia/TwinView for me.
> Neither in 4.7 branch nor in git master.
> 
> => kephal/x/krandr thing?
> 
> @Martin
> You tried on intel as well? Have you checked the reported screen amount?
> And what about maximizing then? (recall the kde-devel mail?)
I only noticed on my current branch which is behind master by something like 
two weeks. So most recent changes are not yet in there. as soon as I finished 
my current work on the branch I'll switch back to master and investigate.

And yeah most likely a kephal thing.
Comment 8 Martin Flöser 2011-10-15 07:35:20 UTC
I just investigated and noticed:
* OpenGL 1 code path: correct
* OpenGL ES 2 code path: correct
* OpenGL 2 code path: incorrect

somehow I think the OpenGL 1 parts influence the OpenGL 2 code path - that's the only difference to GLES. And that could be a driver thing which would explain why Thomas isn't seeing it.
Comment 9 Martin Flöser 2011-10-15 07:51:31 UTC
Git commit cab2fee5c934ade31d457d470b042b578f74b9d8 by Martin Gräßlin.
Committed on 15/10/2011 at 09:47.
Pushed by graesslin into branch 'KDE/4.7'.

Ensure that always one shader is on the ShaderStack with GL2

This brings some consistency with GLES2 where also one shader
is always on the stack and allows to use the test whether a shader
is bound to see if the GL2 code path is used. This fixes an issue
with cover/flip switch which tested for a bound shader before the
shader was pushed in multi screen setups.

As well it should bring some improvements as the simple screen
shader is not unbound and rebound in each rendered frame.

BUG: 283609
FIXED-IN: 4.7.3

M  +4    -0    kwin/scene_opengl_glx.cpp

http://commits.kde.org/kde-workspace/cab2fee5c934ade31d457d470b042b578f74b9d8
Comment 10 Martin Flöser 2011-10-15 07:51:55 UTC
Git commit 1a0514f3ef37dcd6c8f0e1cf633e9cea7596e790 by Martin Gräßlin.
Committed on 15/10/2011 at 09:47.
Pushed by graesslin into branch 'master'.

Ensure that always one shader is on the ShaderStack with GL2

This brings some consistency with GLES2 where also one shader
is always on the stack and allows to use the test whether a shader
is bound to see if the GL2 code path is used. This fixes an issue
with cover/flip switch which tested for a bound shader before the
shader was pushed in multi screen setups.

As well it should bring some improvements as the simple screen
shader is not unbound and rebound in each rendered frame.

BUG: 283609
FIXED-IN: 4.7.3

M  +4    -0    kwin/scene_opengl_glx.cpp

http://commits.kde.org/kde-workspace/1a0514f3ef37dcd6c8f0e1cf633e9cea7596e790