[launcher] color banding on ARM

Bug #674484 reported by Florian Boucault
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
unity-2d
Fix Released
High
Florian Boucault
unity-2d (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

On at least 2 ARM devices the launcher exhibits color banding as shown in the attached screenshot.

On these devices executing xwininfo on the launcher:

xwininfo | grep "Visual Class"
xwininfo | grep "Depth"

report:

 Visual Class: TrueColor
 Depth: 16

whereas 'Depth' should be at least 24.

Revision history for this message
Florian Boucault (fboucault) wrote :
Revision history for this message
Florian Boucault (fboucault) wrote :

A workaround with the current unity-qt package is to start the launcher using the -visual switch:

unity-qt-launcher -visual TrueColor

Investigating whether or not QApplication::setColorSpec(QApplication::ManyColor) is equivalent.

Revision history for this message
Florian Boucault (fboucault) wrote :

Qt's source code gives us the answer in:

src/gui/painting/qcolormap_x11.cpp:QColormap::initialize()

        [...]
        else if ((X11->visual_class != -1 && X11->visual_class >= 0 && X11->visual_class < 6)
                   || (X11->visual_id != -1)) {
            // look for a specific visual or type of visual
            d->visual = find_visual(display, i, X11->visual_class, X11->visual_id,
                                    &d->depth, &d->defaultVisual);
        } else if (QApplication::colorSpec() == QApplication::ManyColor) {
            // look for a TrueColor w/ a depth higher than 8bpp
            d->visual = find_visual(display, i, TrueColor, -1, &d->depth, &d->defaultVisual);
            if (d->depth <= 8) {
                d->visual = DefaultVisual(display, i);
                d->defaultVisual = true;
                color_count = 216;
            }
        [...]

where X11->visual_class is the value of the command line switch -visual

Looking at the code after that shows that when using XRender (-graphicssystem native) it defaults to a TrueColor visual.

Revision history for this message
Bill Filler (bfiller) wrote :

running unity-qt-launcher -visual TrueColor is much better. Banding of icons is gone. However there is still banding of the launcher panel but it is not terrible. I'll attach a screenshot.

Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Florian Boucault (fboucault) wrote :

Not good indeed. Were you observing the same banding when using -graphicssystem native?

Revision history for this message
Bill Filler (bfiller) wrote :

no, when using native graphicssystem there is no banding on the panel. I would go ahead and commit the change as it makes the situation better but leave the bug open to continue to investigate the panel banding.

Revision history for this message
Florian Boucault (fboucault) wrote :

@Bill: Can you post the result of xdpyinfo please?

Revision history for this message
Bill Filler (bfiller) wrote :

attaching xdpyinfo

Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :

downgrading and moving to m4 as we can live with banding of panel for now

Changed in upicek:
milestone: m3 → m4
importance: High → Medium
Bill Filler (bfiller)
Changed in upicek:
importance: Medium → Critical
Revision history for this message
Bill Filler (bfiller) wrote :

Testing verion bzr289 on ARM and the dash/places performance is very bad again. I'm suspecting it's because of the QApplication::setColorSpec(QApplication::ManyColor); call that was added to places/apps/places.cpp.

If I run
'qmlviewer /usr/share/unity-qt/places/dash.qml' the performance of the dash and places is good. This defaults to -graphicssystem raster.

But running unity-qt-places directly or with the -graphicssystem raster displays very poor performance, so I'm guessing we are doing something else in unity-qt-places exe that is causing the issue.

Changed in upicek:
milestone: m4 → m3
Bill Filler (bfiller)
summary: - [launcher] Ugly color banding on ARM device using fbdev
+ [launcher] dash performance poor on ARM
Revision history for this message
Florian Boucault (fboucault) wrote : Re: [launcher] dash performance poor on ARM

@Bill: after careful investigation I was unable to reproduce the performance issue you are describing on the EFIKA board. I am using unity-qt-places 0.2~bzr289

Revision history for this message
Bill Filler (bfiller) wrote : Re: [Bug 674484] Re: [launcher] dash performance poor on ARM

Are you saying running qmlviewer and unity-qt-places yields identical performance? I am seeing a big difference on Kunlun imx51 arm board.

On Nov 24, 2010, at 9:09 PM, Florian Boucault <email address hidden> wrote:

> @Bill: after careful investigation I was unable to reproduce the
> performance issue you are describing on the EFIKA board. I am using
> unity-qt-places 0.2~bzr289
>
> --
> [launcher] dash performance poor on ARM
> https://bugs.launchpad.net/bugs/674484
> You received this bug notification because you are a member of The
> Upicek team, which is a direct subscriber.

Revision history for this message
Florian Boucault (fboucault) wrote : Re: [launcher] dash performance poor on ARM

Exactly, I cannot see any noticeable difference between qmlviewer and unity-qt-places on the EFIKA.

Revision history for this message
Aurélien Gâteau (agateau) wrote :

Same thing here: no difference between qmlviewer and unity-qt-places on the EFIKA.

Revision history for this message
Ricardo Salveti (rsalveti) wrote :

qmlviewer seems a lit bit faster on Panda, but running unity-qt-places with -graphicssystem raster doesn't get me a very poor performance, actually it's quite near from what I get with qmlviewer.

Also using 0.2~bzr289.

Changed in upicek:
status: In Progress → Fix Committed
Changed in upicek:
status: Fix Committed → Fix Released
summary: - [launcher] dash performance poor on ARM
+ [launcher] color banding on ARM
Changed in upicek:
importance: Critical → High
status: Fix Released → Confirmed
affects: upicek → unity-2d
Changed in unity-2d:
milestone: m3 → none
milestone: none → 3.10
visibility: private → public
Changed in unity-2d:
milestone: 3.10 → 3.8
Changed in unity-2d:
milestone: 3.8 → 3.10
Changed in unity-2d:
milestone: 3.10 → none
Changed in unity-2d (Ubuntu):
status: New → Confirmed
Changed in unity-2d:
status: Confirmed → Fix Released
Changed in unity-2d (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.