Merge lp://qastaging/~hikiko/compiz/compiz.use-pipeline-with-3d-clipping into lp://qastaging/compiz/0.9.12

Proposed by Eleni Maria Stea
Status: Merged
Approved by: Stephen M. Webb
Approved revision: 3969
Merged at revision: 3964
Proposed branch: lp://qastaging/~hikiko/compiz/compiz.use-pipeline-with-3d-clipping
Merge into: lp://qastaging/compiz/0.9.12
Diff against target: 119 lines (+21/-12)
3 files modified
plugins/cube/src/cube.cpp (+10/-8)
plugins/opengl/src/vertexbuffer.cpp (+4/-1)
plugins/td/src/3d.cpp (+7/-3)
To merge this branch: bzr merge lp://qastaging/~hikiko/compiz/compiz.use-pipeline-with-3d-clipping
Reviewer Review Type Date Requested Status
Stephen M. Webb Approve
PS Jenkins bot (community) continuous-integration Approve
MC Return Needs Information
Review via email: mp+257611@code.qastaging.launchpad.net

Commit message

It fixes the 3d windows plugin.
Problem:
The 3d clipping is performed in viewing space (modelview transformation) and should be done inside the shader when we use shaders otherwise the viewing space pipeline operations will be ignored. Compiz used to perform the clipping inside the td plugin using pipeline functions, then it was loading a generic shader program (no clipping operations) to render the windows and then it rendered the 3d quads around the windows using the pipeline (so these were clipped correctly).

Fix:
Added a variable that indicates when to load the shaders and when render using the fixed functions pipeline and use the fixed functions pipeline to render between glEnableOutputClipping and glDisableOutputClipping.

+small fix in the legacyRendering (pipeline)

Description of the change

It fixes the 3d windows plugin.
Problem:
The 3d clipping is performed in viewing space (modelview transformation) and should be done inside the shader when we use shaders otherwise the viewing space pipeline operations will be ignored. Compiz used to perform the clipping inside the td plugin using pipeline functions, then it was loading a generic shader program (no clipping operations) to render the windows and then it rendered the 3d quads around the windows using the pipeline (so these were clipped correctly).

Fix:
Added a variable that indicates when to load the shaders and when render using the fixed functions pipeline and use the fixed functions pipeline to render between glEnableOutputClipping and glDisableOutputClipping.

+small fix in the legacyRendering (pipeline)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
MC Return (mc-return) wrote :

This unfortunately does not work here.

While the 3d-window effect somehow works, I still get every window rendered multiple times (one copy for each virtual desktop) and when leaving the cube the desktop starts to flicker and gets unusable :(

I want to note that, even without your fixes, sticky windows are the only ones that are rendered and clipped correctly.

Maybe someone else could test that one also ?

review: Abstain
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

This probably happens because you don't have all the other necessary fixes on unity please try to compile this unity branch with compiz and I believe you won't get these problems anymore: https://code.launchpad.net/~hikiko/unity/unity.save-compiz-state-before-rendering

Revision history for this message
Eleni Maria Stea (hikiko) wrote :

https://www.youtube.com/watch?v=VUZseeDfMYo here's what I see when I use the above branch + this one together, could you please test it again if you have some time?

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) :
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
MC Return (mc-return) wrote :

> This probably happens because you don't have all the other necessary fixes on
> unity
Well, I am not using Unity here, so it cannot be the cause.

Revision history for this message
MC Return (mc-return) wrote :

> https://www.youtube.com/watch?v=VUZseeDfMYo here's what I see when I use the
> above branch + this one together, could you please test it again if you have
> some time?

This looks much better than the version I get -
there might be some OpenGL state weirdness some other plugin is causing involved here as well, as I am additionally running many non-Ubuntu-default plugins...

Does it work for you without enabled Unityshell plugin as well ?

review: Needs Information
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

> > https://www.youtube.com/watch?v=VUZseeDfMYo here's what I see when I use the
> > above branch + this one together, could you please test it again if you have
> > some time?
>
> This looks much better than the version I get -
> there might be some OpenGL state weirdness some other plugin is causing
> involved here as well, as I am additionally running many non-Ubuntu-default
> plugins...
>
> Does it work for you without enabled Unityshell plugin as well ?

The 3d windows work for me even when the unityshell plugin is disabled but sometimes I see other issues like flickering and non-cleared buffers (only when I disable the unityshell). I'll get a look to see if I can fix them in another branch, but the windows seem to work fine as you can see in the pictures:

https://i.imgur.com/qeKVAC1.jpg
https://i.imgur.com/VpSSLQ3.jpg

(sorry, the pics are from my mobile, I couldn't get better screenshots quickly without unityshell :p)

I've noticed, there are problems with other plugins too, and we are trying to fix them, I suspect that it's some other plugin combination that causes the problems you see in your desktop.

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Mh, I've tried this (together with the unity change), but it doesn't seem to work properly here (radeon): http://i.imgur.com/eAvb5O3.png and http://i.imgur.com/HH6kvYs.png

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

With the fixes above the 3d windows look ok in 1 monitor. I am still working to fix the bugs to support multi-monitor.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) :
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
3969. By Eleni Maria Stea

removed empty line (clean diff)

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Stephen M. Webb (bregma) wrote :

Works much better on non-Unity desktops in my testing, I say we get this in.

review: Needs Fixing
Revision history for this message
Stephen M. Webb (bregma) wrote :

Sorry, finger must have slipped on the drop-down box.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches