tab previews black [arale only]

Bug #1436074 reported by Bill Filler on 2015-03-24
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Critical
Pat McGowan
qtbase-opensource-src (Ubuntu)
Critical
Timo Jyrinki

Bug Description

running vivid-proposed build 146 on arale

When I swipe from bottom edge to reveal tabs, only the most recent tab has a preview. The other tabs are black where the preview should be.

Olivier Tilloy (osomon) wrote :

Confirmed on arale on image #148.

Changed in webbrowser-app:
assignee: nobody → Olivier Tilloy (osomon)
importance: Undecided → High
status: New → Confirmed
Olivier Tilloy (osomon) wrote :

The tab previews are implemented as image captures of the webviews, taken with the Item::grabToImage() method (http://doc.qt.io/qt-5/qml-qtquick-item.html#grabToImage-method). Here, the captures stored on disk are valid images (correct dimensions), but they are fully black, so it looks like something goes wrong when capturing the item or when saving the capture to disk.

I'm guessing this is the same bug that is causing screenshots to be black. If you press the power key and volume key at the same time it will take a screenshot of the current screen but the resulting image will be black. Sounds like we should open a QtMir task

> On Mar 25, 2015, at 7:47 AM, Olivier Tilloy <email address hidden> wrote:
>
> The tab previews are implemented as image captures of the webviews,
> taken with the Item::grabToImage() method (http://doc.qt.io/qt-5/qml-
> qtquick-item.html#grabToImage-method). Here, the captures stored on disk
> are valid images (correct dimensions), but they are fully black, so it
> looks like something goes wrong when capturing the item or when saving
> the capture to disk.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1436074
>
> Title:
> tab previews black [arale only]
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/webbrowser-app/+bug/1436074/+subscriptions

Olivier Tilloy (osomon) wrote :

This issue started happening on arale in image #102 (image #101 is not affected), which corresponds to when Qt 5.4 landed in vivid.

Olivier Tilloy (osomon) wrote :

The following standalone example fails to capture properly a simple QML item to file (a file is written to disk but its contents are corrupted), so there’s something wrong with Qt 5.4 on arale.

Changed in webbrowser-app:
status: Confirmed → Invalid
Olivier Tilloy (osomon) wrote :

Tentatively added a qtdeclarative-opensource-src task for further investigation.

Timo Jyrinki (timo-jyrinki) wrote :

Is this arale only? Wasn't it that webbrowser-app started using that new-in-Qt-5.4 grabToImage function when Qt 5.4, so would the old method work instead? Although I know the Qt 5.4 function was wanted to be used precisely since it's better/faster.

If it's arale only (sorry, my mako is untouchable at the moment), my guess would be the grabToImage uses certain OpenGL ES functionality that may be broken in the arale's graphics driver.

Timo Jyrinki (timo-jyrinki) wrote :

...yes it reads in the title that it's arale only.

Olivier Tilloy (osomon) wrote :

I can confirm this is arale-specific: the latest image from vivid-proposed on my krillin doesn’t exhibit the issue.

Changed in canonical-devices-system-image:
assignee: nobody → Pat McGowan (pat-mcgowan)
importance: Undecided → Critical
milestone: none → ww15-2015
status: New → Confirmed
Changed in qtdeclarative-opensource-src (Ubuntu):
assignee: nobody → Timo Jyrinki (timo-jyrinki)
importance: Undecided → Critical
status: New → Confirmed
Timo Jyrinki (timo-jyrinki) wrote :

The current guess is that this is a driver specific problem related to offscreen image rendering, since the bug only happens on arale and started when the webbrowser started using the new Qt 5.4 function that uses that OpenGL feature.

I'm not sure where to file this under Ubuntu-the-distro.

Changed in qtdeclarative-opensource-src (Ubuntu):
status: Confirmed → Incomplete
Timo Jyrinki (timo-jyrinki) wrote :

@Olivier: Is it possible to investigate whether the old way of doing tab previews would work? I remember switching to grabToImage fixed some important problem, but maybe there's a workaround that could be done or at least a test version to see if the problem is gone on arale?

Timo Jyrinki (timo-jyrinki) wrote :

(it seems the bug fixed was bug #1401581)

Olivier Tilloy (osomon) wrote :

@Timo: not really something we can consider, the old way was a hack I’m not really proud of, and was a considerable performance hit on the browser, so going back there would mean a big regression.

kevin gunn (kgunn72) on 2015-03-31
Changed in unity8 (Ubuntu):
status: New → Opinion
assignee: nobody → kevin gunn (kgunn72)
Changed in canonical-devices-system-image:
milestone: ww15-2015 → ww17-2015
kevin gunn (kgunn72) wrote :

OK, so this is definitely a driver bug specific to PowerVR Rogue in combination with their DDK1.3
For a few reasons, it's not realistic for us to update to DDK1.4 (which may or may not have a fix)
In the meantime, attached is a diff for qtbase (gui) that works around this problem.
This corrects all the "black frame" problems such as screen shots and browser tabs.

no longer affects: unity8 (Ubuntu)
no longer affects: webbrowser-app
no longer affects: qtdeclarative-opensource-src (Ubuntu)
Changed in qtbase-opensource-src (Ubuntu):
status: New → Confirmed
importance: Undecided → Critical
assignee: nobody → Timo Jyrinki (timo-jyrinki)

The attachment "qopenglframebufferobject.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Changed in qtbase-opensource-src (Ubuntu):
status: Confirmed → In Progress
Timo Jyrinki (timo-jyrinki) wrote :

Built in landing-002.

Timo Jyrinki (timo-jyrinki) wrote :

Landed to https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay/+packages last Friday.

qtbase-opensource-src (5.4.1+dfsg-2ubuntu5) vivid; urgency=medium

  * debian/patches/qopenglframebufferobject_powervrworkaround.patch
    - Workaround for a chipset specific driver bug (LP: #1436074)
 -- Timo Jyrinki <email address hidden> Thu, 16 Apr 2015 08:31:27 +0300

Changed in qtbase-opensource-src (Ubuntu):
status: In Progress → Fix Committed
Changed in qtbase-opensource-src (Ubuntu):
status: Fix Committed → Fix Released
Changed in canonical-devices-system-image:
status: Confirmed → Fix Committed
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Bin Li (binli) wrote :

Shouldn't that patch be:

  if ( !gpuStr.contains("PowerVR Rogue G6200") || !verStr.contains("1.3"))

instead of applied:

  if ( !gpuStr.contains("PowerVR Rogue G6200") && !verStr.contains("1.3"))

We need skip when G6200 is 1.3, right? So when we use G6200 as 1.1, the result is false, we also skip it.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Bug attachments