Bug 458517 - XRenderComposite fails to draw masked image on GM965
Summary: XRenderComposite fails to draw masked image on GM965
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-i810
Version: 10
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Adam Jackson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-08-09 06:04 UTC by Kevin Kofler
Modified: 2018-04-11 13:08 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-12-04 17:56:35 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Expected rendering (28.08 KB, image/png)
2008-08-09 06:05 UTC, Kevin Kofler
no flags Details
Actual rendering (3.93 KB, image/png)
2008-08-09 06:11 UTC, Kevin Kofler
no flags Details

Description Kevin Kofler 2008-08-09 06:04:39 UTC
Description of problem:
My quarticurve-kwin-theme triggers a bug in the intel driver's XRender implementation: the diagonal stripes in the title bar aren't rendered when using the intel driver. They render just fine on ATI hardware using the radeon driver, or when I use QT_X11_NO_XRENDER=1 on the intel hardware/driver.

I have carefully checked my code, thinking it was a bug there, and finally tracked it down to what I'm fairly sure is a bug in the XRenderComposite implementation. (See "Additional Information" at the end.)

Version-Release number of selected component (if applicable):
xorg-x11-drv-i810-2.3.2-2.fc9.x86_64
qt-4.4.0-16.fc9.x86_64
quarticurve-kwin-theme-0.0-0.5.beta4.fc9.x86_64
(Can also be reproduced with qt-4.3.5-2.fc9 and quarticurve-kwin-theme-0.0-0.4.beta3.fc9.)
Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)

How reproducible:
Always

Steps to Reproduce:
1. Install above packages on above hardware.
2. Start KDE.
3. In systemsettings, set the window decoration to Quarticurve.
4. Look at the title bar of an active window (i.e. one with a blue title bar).

Actual results:
Gradient only, no stripes.

Expected results:
Diagonal stripes.

Additional info:
The stripes are prerendered into a pixmap with a 1-bit mask. AFAICT, this prerendering works just fine, and it doesn't matter anyway what I render there, as soon as the mask is present (and even if everything is set to opaque), it doesn't work.
The prerendered mask is then drawn with this QPainter::drawTiledPixmap:
p2.drawTiledPixmap( r.x() + 2 + 2 + captionWidth, TOP_GRABBAR_WIDTH,
  r.width() - 2 - 4 - captionWidth, 
  titleHeight+1, *titlePix );
QPainter::drawTiledPixmap simply calls the drawTiledPixmap routine from the relevant paint engine. The actual implementation of QX11PaintEngine::drawTiledPixmap can be seen here:
http://websvn.kde.org/trunk/qt-copy/src/gui/painting/qpaintengine_x11.cpp?revision=840168&view=markup
The essential part is that it calls:
XRenderComposite(d->dpy, d->composition_mode,
                 pixmap.x11PictureHandle(), XNone, d->picture,
                 xOff, yOff, 0, 0, xPos, yPos, drawW, drawH);
and this fails on intel (but works on radeon). The way it fails is that it just draws nothing at all.

Comment 1 Kevin Kofler 2008-08-09 06:05:53 UTC
Created attachment 313865 [details]
Expected rendering

Comment 2 Kevin Kofler 2008-08-09 06:11:47 UTC
Created attachment 313866 [details]
Actual rendering

Comment 3 Matěj Cepl 2008-09-05 15:28:23 UTC
Isn't the attachment in the comment 2 broken?

Comment 4 Kevin Kofler 2008-09-05 15:35:26 UTC
Broken how? It's a cropped screenshot showing only the title bar because that's where the problem is. It's in PNG format.

Comment 5 Matěj Cepl 2008-09-09 23:09:29 UTC
OK, I see. Sorry, I misunderstood the original description. Assigning to ajax.

Comment 6 Kevin Kofler 2008-12-14 19:04:31 UTC
Still broken in Fedora 10.

Comment 7 Vedran Miletić 2009-11-05 23:11:28 UTC
Since this bugzilla report was filed, there have been several major updates in various components of the Xorg system, including Intel driver, which may have resolved this issue.
To be more precise, Intel has undergone a major rewrite during Fedora 10, 11 and 12 cycles, and whole driver is working a lot better now. Users who have experienced this problem are encouraged to retry with at least Fedora 12 Beta and see if the issue is still relevant.

Please, if you experience this problem on Fedora 12 Beta or up-to-date system running Rawhide, let us now in the comment for this bug, or whether the upgraded system works for you.

If you won't be able to reply in one month, I will have to close this bug as INSUFFICIENT_DATA. Thank you.

We hope to see how many older bugs in Intel driver are still relevant today, in hope that most of them were fixed in rewrite process.

[This is a bulk message for all open Fedora 10 i810-related bugs (39 of them are still open). I'm adding myself to the CC list for each bug, so I'll see any comments you make after this and do my best to make sure every issue gets proper attention.]

Comment 8 Bug Zapper 2009-11-18 08:15:22 UTC
This message is a reminder that Fedora 10 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 10.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '10'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 10's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 10 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 9 Vedran Miletić 2009-12-04 17:56:35 UTC
Thank you for your bug report.

We are sorry, but the Fedora Project is will soon stop longer releasing bug fixes or any other updates for this version of Fedora. There were so many changes between Fedora 10 and Fedora 12 in Intel driver and X.Org that it's very likely that this bug is fixed. This bug will be set to CLOSED:WONTFIX to reflect this, but please reopen it if the problem persists after upgrading to the latest version of Fedora (version 12), which is available from:

http://fedoraproject.org/get-fedora


Note You need to log in before you can comment on or make changes to this bug.