Closed Bug 801390 Opened 12 years ago Closed 10 years ago

[OMTC Linux] Scrollable area disappears in the add-on manager

Categories

(Core :: Graphics: Layers, defect)

19 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
e10s + ---

People

(Reporter: Gabriel.de-Perthuis, Assigned: billm)

References

Details

Steps:
1. Enable OMTC as per https://mozillagfx.wordpress.com/2012/10/06/how-to-help-testing-off-main-thread-compositing/
2. Show the add-on manager, pick something like plug-ins with many items or shrink the window so that there is a scrollbar.
3. Scroll.

The scrollable area disappears.

Sandy bridge graphics on Ubuntu Quantal.

{
  "application": {
    "name": "Firefox",
    "version": "19.0a1",
    "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/19.0 Firefox/19.0",
    "supportURL": "http://support.mozilla.org/1/firefox/19.0a1/Linux/en-US/"
  },
  "modifiedPreferences": {
    "accessibility.typeaheadfind.flashBar": 0,
    "browser.cache.disk.capacity": 358400,
    "browser.cache.disk.smart_size.first_run": false,
    "browser.cache.disk.smart_size.use_old_max": false,
    "browser.cache.disk.smart_size_cached_value": 358400,
    "browser.places.smartBookmarksVersion": 4,
    "browser.startup.homepage_override.mstone": "19.0a1",
    "browser.startup.homepage_override.buildID": "20121013030542",
    "dom.mozApps.used": true,
    "extensions.lastAppVersion": "19.0a1",
    "layers.async-video.enabled": true,
    "layers.acceleration.draw-fps": true,
    "layers.acceleration.force-enabled": true,
    "layers.offmainthreadcomposition.animate-opacity": true,
    "layers.offmainthreadcomposition.animate-transform": true,
    "network.cookie.prefsMigrated": true,
    "places.history.expiration.transient_current_max_pages": 104858,
    "places.database.lastMaintenance": 1350208789,
    "privacy.sanitize.migrateFx3Prefs": true
  },
  "graphics": {
    "numTotalWindows": 1,
    "numAcceleratedWindows": 0,
    "windowLayerManagerType": "Basic",
    "numAcceleratedWindowsMessage": [
      "no information"
    ],
    "adapterDescription": "Intel Open Source Technology Center -- Mesa DRI Intel(R) Sandybridge Desktop ",
    "adapterVendorID": "Intel Open Source Technology Center",
    "adapterDeviceID": "Mesa DRI Intel(R) Sandybridge Desktop ",
    "adapterRAM": "",
    "adapterDrivers": "",
    "driverVersion": "3.0 Mesa 9.0",
    "driverDate": "",
    "webglRendererMessage": [
      "no information"
    ],
    "info": {
      "AzureCanvasBackend": "cairo",
      "AzureFallbackCanvasBackend": "none",
      "AzureContentBackend": "none"
    }
  },
  "javaScript": {
    "incrementalGCEnabled": true
  },
  "accessibility": {
    "isActive": false,
    "forceDisabled": 0
  },
  "libraryVersions": {
    "NSPR": {
      "minVersion": "4.9.3 Beta",
      "version": "4.9.3 Beta"
    },
    "NSS": {
      "minVersion": "3.14.0.0 Basic ECC Beta",
      "version": "3.14.0.0 Basic ECC Beta"
    },
    "NSSUTIL": {
      "minVersion": "3.14.0.0 Beta",
      "version": "3.14.0.0 Beta"
    },
    "NSSSSL": {
      "minVersion": "3.14.0.0 Basic ECC Beta",
      "version": "3.14.0.0 Basic ECC Beta"
    },
    "NSSSMIME": {
      "minVersion": "3.14.0.0 Basic ECC Beta",
      "version": "3.14.0.0 Basic ECC Beta"
    }
  },
  "userJS": {
    "exists": false
  },
  "extensions": [
    {
      "name": "Ubuntu Firefox Modifications",
      "version": "2.4.1",
      "isActive": false,
      "id": "ubufox@ubuntu.com"
    },
    {
      "name": "Unity Desktop Integration",
      "version": "2.3.5",
      "isActive": false,
      "id": "webapps-team@lists.launchpad.net"
    },
    {
      "name": "Unity Websites integration",
      "version": "2012.10.12.beta",
      "isActive": false,
      "id": "{2e1445b0-2682-11e1-bfc2-0800200c9a66}"
    }
  ]
}
Blocks: 722012
I can reproduce this bug. A quick look in gdb shows that we are trying to create a glx pixmap from an image which content type is gfxASurface::CONTENT_ALPHA

here is a piece of backtrace:
#0  mozilla::gl::GLXLibrary::CreatePixmap (this=0x7ffff783b120, aSurface=0x7fffcfc65d30) at /home/nico/dev/mozilla/mozilla-central/gfx/gl/GLContextProviderGLX.cpp:325
#1  0x00007ffff5345bc2 in mozilla::gl::GLContextGLX::CreateTextureImage (this=0x7fffdc349000, aSize=..., aContentType=gfxASurface::CONTENT_ALPHA, aWrapMode=33071, aFlags=mozilla::gl::TextureImage::ForceSingleTile) at /home/nico/dev/mozilla/mozilla-central/gfx/gl/GLContextProviderGLX.cpp:1095
#2  0x00007ffff53028b5 in mozilla::layers::ShadowImageLayerOGL::Init (this=0x7fffcfc61400, aFront=...) at /home/nico/dev/mozilla/mozilla-central/gfx/layers/opengl/ImageLayerOGL.cpp:719
#3  0x00007ffff5302f25 in mozilla::layers::ShadowImageLayerOGL::Swap (this=0x7fffcfc61400, aNewFront=..., aNewBack=0x7fffe01fddc0) at /home/nico/dev/mozilla/mozilla-central/gfx/layers/opengl/ImageLayerOGL.cpp:784
#4  0x00007ffff5336416 in mozilla::layers::ShadowLayersParent::RecvUpdate (this=0x7fffda16d940, cset=..., targetConfig=..., isFirstPaint=@0x7fffe01fe5ff: false, reply=0x7fffe01fe5f0) at /home/nico/de
v/mozilla/mozilla-central/gfx/layers/ipc/ShadowLayersParent.cpp:447

in frame 2 (ShadowImageLayerOGL::Init), autoSurf.ContentType() returns gfxASurface::CONTENT_ALPHA


If I step in the CreatePixmap code here:
http://dxr.mozilla.org/mozilla-central/gfx/gl/GLContextProviderGLX.cpp#l331
I see that we never match an index (see: http://dxr.mozilla.org/mozilla-central/gfx/gl/GLContextProviderGLX.cpp#l386 )
because we always escape from the loop at line 331, with redMask, greenMask and blueMask always equal to zero.

I don't know the GLX code very well so I don't have much to say about this at this point (is it just that we don't support creating a pixmap without r,g,b channels?)
I am surprised that we try to swap an image of type "alpha" in an image layer (what would we do this for?)

The bug happens concistently in about:addons but I haven't seen this anywhere else on the web so far.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Mass tracking-e10s flag change. Filter bugmail on "2be0fcce-e36a-4e2c-aa80-0e3d33eb5406".
tracking-e10s: --- → +
(In reply to Nicolas Silva [:nical] from comment #1)
> I am surprised that we try to swap an image of type "alpha" in an image
> layer (what would we do this for?)

The scrollable area has rounded corners, so we create an alpha-only mask layer for the scrolled layers which masks away the corners. The mask layer is an image layer.
Assignee: nobody → wmccloskey
I just retested this and it seems to be fixed. I used to be able to reproduce it.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.