Bug 30286 - Rendering Artefacts for "EffectFrames" with KWin trunk
Summary: Rendering Artefacts for "EffectFrames" with KWin trunk
Status: RESOLVED WORKSFORME
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/nouveau (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Nouveau Project
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-20 09:44 UTC by Martin Flöser
Modified: 2013-03-15 08:22 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
PresentWindows effect showing artefacts. (626.83 KB, image/png)
2010-09-20 09:44 UTC, Martin Flöser
Details

Description Martin Flöser 2010-09-20 09:44:44 UTC
Created attachment 38827 [details]
PresentWindows effect showing artefacts.

I noticed that KWin's EffectFrames are rendered incorrectly with nouveau and current kwin trunk (please see attached screenshot). There has been a change between 4.5 and current trunk, so I cannot say if the same problem exsists with 4.5. as well.

The EffectFrame is a GLTexture generated with TextureFromPixmap from a Qt QPixmap. In the screenshot we see that the icons are rendered correctly (also using QPixmap -> TFP -> GLTexture conversion) while the other textures are rendered incorrectly. This includes the pure black background texture, the textures generated from Plasma's FrameSvg and text textures.

The relevant code is in kwin trunk scene_opengl.cpp [1] SceneOpenGL::EffectFrame::render() at line 2002. An example for creating a texture can be found in SceneOpenGL::EffectFrame::updateTextTexture() at line 2264. If you want to have any other information to the code, do not hesistate to ask, as I recently refactored that code.

I am using nouveau, dri and kernel from debian experimental. glxinfo says it's Mesa 7.8.2

[1] http://websvn.kde.org/trunk/KDE/kdebase/workspace/kwin/scene_opengl.cpp?view=markup
Comment 1 Martin Flöser 2010-10-10 04:29:24 UTC
I added a workaround to KWin by keeping the QPixmap around as long as a texture is bound from that pixmap.

SVN commit 1184458 by graesslin:

Make EffectFrames work with Nouveau driver.

This worksaround a problem with the nouveau driver causing
the text frames to be incorrectly rendered. We need to keep
the QPixmap around as long as we have a texture created from
that texture.
This applies for the text and the unstyled effect frame. For
the frames generated from Plasma's FrameSvgs it is not required.
Addresses freedesktop.org bug 30286

 M  +20 -9     scene_opengl.cpp  
 M  +2 -0      scene_openg

http://websvn.kde.org/?view=revision&revision=1184458
Comment 2 chemtech 2013-03-15 07:59:54 UTC
Martin Gräßlin,
Do you still experience this issue with newer drivers ?
Please check the status of your issue.
Comment 3 Martin Flöser 2013-03-15 08:22:30 UTC
(In reply to comment #2)
> Martin Gräßlin,
> Do you still experience this issue with newer drivers ?
> Please check the status of your issue.
I can no longer test as I don't have an NVIDIA system any more. With radeon and Intel I do not face this issue, though it's difficult to say as also KWin has changed a lot over the last 2.5 years.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.