Bug 69543 - MSEgui failures with acclerated driver paths
Summary: MSEgui failures with acclerated driver paths
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Acceleration/EXA (show other bugs)
Version: unspecified
Hardware: Other Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
Depends on:
Reported: 2013-09-18 18:56 UTC by Julio Jiménez
Modified: 2018-12-13 18:23 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

Image OK (62.58 KB, image/png)
2013-09-18 19:11 UTC, Julio Jiménez
no flags Details
Image showing the issue (81.82 KB, image/png)
2013-09-18 19:12 UTC, Julio Jiménez
no flags Details
Showing the issue with default MSEide options (61.70 KB, image/png)
2013-09-18 19:13 UTC, Julio Jiménez
no flags Details
Test program screenshot (4.78 KB, image/png)
2013-09-19 11:51 UTC, Martin Schreiber
no flags Details
Test program (1.89 MB, text/plain)
2013-09-19 11:52 UTC, Martin Schreiber
no flags Details
bug confirmation (8.82 KB, image/png)
2014-04-25 08:56 UTC, Alexander
no flags Details
Test OK (2.98 KB, image/png)
2014-09-21 16:34 UTC, Martin Schreiber
no flags Details
Test not OK (3.09 KB, image/png)
2014-09-21 16:35 UTC, Martin Schreiber
no flags Details

Description Julio Jiménez 2013-09-18 18:56:53 UTC
There is garbage on screen with some stretched XRender pictures with radeon
driver and enabled EXAPixmaps, see for example MSEide without xorg.conf


MSEgui uses stretched one pixel width or height pixmaps in order to draw linear
color gradients. 

If you add Option "EXAPixmaps" "off" in Section "Device" of xorg.conf display is OK but performance falls.

Same problem using NOUVEAU driver. I can't figure out how disable EXAPixmaps for nouveau driver.

Reproducible: Always
Comment 1 Julio Jiménez 2013-09-18 19:11:08 UTC
Created attachment 86093 [details]
Image OK
Comment 2 Julio Jiménez 2013-09-18 19:12:11 UTC
Created attachment 86094 [details]
Image showing the issue
Comment 3 Julio Jiménez 2013-09-18 19:13:37 UTC
Created attachment 86095 [details]
Showing the issue with default MSEide options
Comment 4 Julio Jiménez 2013-09-18 19:14:25 UTC
Comment on attachment 86094 [details]
Image showing the issue

Running MSEide with -ns option (No skin)
Comment 5 Julio Jiménez 2013-09-18 19:17:52 UTC
Using Debian stable, testing, sid, Ubuntu 12.04.... Really this happens since KMS was used IIRC. In fact using radeon.modeset=0 fixes it for some ATI cards
Comment 6 Martin Schreiber 2013-09-19 10:05:31 UTC
MSEgui renders dirty regions first on a pixmap which will be copied to screen by xcopyarea() after completed rendering.
It seems the problems with current radeon driver are independent if there are stretched xrender pictures or not.
Comment 7 Martin Schreiber 2013-09-19 11:51:25 UTC
Created attachment 86142 [details]
Test program screenshot
Comment 8 Martin Schreiber 2013-09-19 11:52:50 UTC
Created attachment 86143 [details]
Test program
Comment 9 Martin Schreiber 2013-09-19 12:00:00 UTC
Attached test program. Press Alt+ArrowDown,Esc.
The project is here:
Comment 10 Julio Jiménez 2013-09-19 16:50:15 UTC
The same issue using nouveau driver can be solved disabling acceleration.

For example:

Section "Device"
    Identifier "Nouveau"
    Driver "nouveau"
    Option "NoAccel" "on"    

Using radeon, only EXAPixmaps off is required.
Comment 11 Michel Dänzer 2013-09-20 08:58:01 UTC
Disabling radeon's EXAPixmaps also mostly disables hardware acceleration.
Comment 12 Julio Jiménez 2013-09-20 09:03:38 UTC
Intel driver is not affected because doesn't use EXA.
IIRC using XAA instead of EXA is working fine too so all is pointing to EXA.
Comment 13 Alexander 2014-04-25 08:56:08 UTC
Created attachment 97945 [details]
bug confirmation
Comment 14 Alexander 2014-04-25 08:57:47 UTC
I have same bug.
Comment 15 Martin Schreiber 2014-09-21 16:34:27 UTC
Created attachment 106606 [details]
Test OK
Comment 16 Martin Schreiber 2014-09-21 16:35:21 UTC
Created attachment 106608 [details]
Test not OK
Comment 17 Martin Schreiber 2014-09-21 16:44:01 UTC
We could simplify the testcase: 
Running the program in debugger and moving the window shows an image like the attachment "Test not OK".
MSEgui draws the button glyph by a xfillrectangle() with the glyph bitmap as stipple mask. It seems that if there follows an immediate xdrawlines() which touches the xfillrectangle() area the distortion happens. Example:
xdrawlines() with ((x:24;y:25),(x:130;y:25),(x:130;y:50)) -> distorted,
xdrawlines() with ((x:24;y:25),(x:80;y:25),(x:80;y:50)) -> OK.
Also "xflush(); sleep(10ms);" or "xsync()" between xfillrectangle() and 
xdrawlines() prevents the distortion.
Comment 18 GitLab Migration User 2018-12-13 18:23:09 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/79.

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.