[r300] unity quits with CheckGLError in ./ctk-render-target.c:285

Bug #593380 reported by Tormod Volden
46
This bug affects 9 people
Affects Status Importance Assigned to Milestone
Unity
Invalid
Medium
Mirco Müller
mesa (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

I am trying out unity on Lucid. Logging into the unity session I can see the window manager flashing like it keeps restarting. In a failsafe xterm I can start mutter fine. But when I try to run "unity" it quits after some time:

(unity:10853): Clutk-WARNING **: [CheckGLError] GL_INVALID_VALUE error in File ./ctk-render-target.c at line: 285
(unity:10853): Clutk-WARNING **: [CheckGLError] OpenGL Error 1281 in File ./ctk-render-target.c at line: 285

The stack trace with breakpoint on "exit":
#0 0xb7245204 in exit () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1 0xb7ecf579 in CheckGLError (glCall=0xb7ed62e0 "glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, self->width, self->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL)", file=0xb7ed5f45 "./ctk-render-target.c", line=285) at ./ctk-utils.c:110
        glErr = <value optimized out>
#2 0xb7eca764 in ctk_render_target_resize (self=0x84cb918, width=1680, height=1050) at ./ctk-render-target.c:277
        __PRETTY_FUNCTION__ = "ctk_render_target_resize"
#3 0xb7eb6a6b in ctk_effect_drop_shadow_paint (effect=0x86bc810, paint_func=0x808cd90, is_last_effect=1) at ./ctk-effect-drop-shadow.c:319
        actor = 0x80dc600
        fxctx = 0x86bb2e0
        stage = <value optimized out>
        top_rt = 0xbfffd8f4
        rt0 = 0x84cb918
        rt1 = 0x84c6f80
        priv = 0x86bc838
        stage_width = 1680
        stage_height = 1050
        actor_screen_width = <value optimized out>
        actor_screen_height = <value optimized out>
        actor_screen_x = <value optimized out>
        actor_screen_y = <value optimized out>
        margin = 5
        num_passes = 5
        effect_opacity = -1.99881554
        vtx = {{x = 4.99999475, y = 28.000021, z = 6.05005637e-34}, {x = 4.99999475, y = 76.0000229, z = -1.29645641e-05}, {x = 53.0000038, y = 76.0000229, z = -1.99881458}, {x = 53.0000038, y = 28.000021, z = -nan(0x7fffff)}}
        dirty_effect_cache = <value optimized out>
        __PRETTY_FUNCTION__ = "ctk_effect_drop_shadow_paint"
#4 0xb7eb3432 in ctk_effect_paint (self=0x86bc810, func=0x808cd90, is_last_effect=1) at ./ctk-effect.c:480
        __PRETTY_FUNCTION__ = "ctk_effect_paint"
<snip>

This is a laptop with ATI Radeon Mobility X700 (M26/RV410) running mesa classic (same with gallium).

Revision history for this message
Neil J. Patel (njpatel) wrote :

Thanks for reporting this. Could you please attach the output of "glxinfo" please, marking as incomplete until then.

Changed in unity:
assignee: nobody → Jay Taoko (jaytaoko)
importance: Undecided → High
milestone: none → 2010-07-01
status: New → Incomplete
Revision history for this message
Tormod Volden (tormodvolden) wrote :
Changed in unity:
status: Incomplete → New
Mirco Müller (macslow)
Changed in unity:
milestone: 2010-07-01 → 2010-07-08
status: New → Triaged
importance: High → Medium
Revision history for this message
fruchtschwert (fruchtschwert) wrote :

This bug affects me too..

HP NX6325 with ATI Technologies Inc RS482 [Radeon Xpress 200M] graphics running Lucid

attached glxinfo

Mirco Müller (macslow)
Changed in unity:
assignee: Jay Taoko (jaytaoko) → Mirco Müller (macslow)
Neil J. Patel (njpatel)
Changed in unity:
milestone: 2010-07-08 → 2010-07-15
Revision history for this message
Mirco Müller (macslow) wrote :

What does "glxinfo -l | grep GL_MAX_TEXTURE_SIZE" report?

Revision history for this message
Tormod Volden (tormodvolden) wrote :

GL_MAX_TEXTURE_SIZE = 2048

Revision history for this message
Mirco Müller (macslow) wrote :

Ok, 2048 is large enough. Did you happen to also try the fglrx driver?

Revision history for this message
Tormod Volden (tormodvolden) wrote :

No.

Neil J. Patel (njpatel)
Changed in unity:
milestone: 2010-07-15 → 2010-07-29
summary: - unit quits with CheckGLError in ./ctk-render-target.c:285
+ unity quits with CheckGLError in ./ctk-render-target.c:285
David Barth (dbarth)
Changed in unity:
milestone: 2010-07-29 → 2010-08-12
Revision history for this message
Mirco Müller (macslow) wrote : Re: unity quits with CheckGLError in ./ctk-render-target.c:285

This is a driver-bug really. The OpenGL-call failing...

glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, self->width, self->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL)

... is perfectly legal and works e.g. with intel's free driver and on nvidia's binary one.

Since I've no working ATI-graphics-card here right now, I can't debug the two driver to see what's exactly causing this call to fail. But my guess is that the two drivers cannot handle non-power-of-two textures correctly in this case. Working around this inside clutk isn't recommended, as "polluting" application/library code with work-arounds to cover up short-comings in OpenSource-drivers isn't reasonable.

A work-around could make use of the explicit texture-target GL_TEXTURE_RECTANGLE_ARB (form the GL_ARB_texture_rectangle extension). But that would require using non-normalized texture-coordinates everywhere in clutk too.

Changed in unity:
status: Triaged → Invalid
Revision history for this message
Bowmore (bowmore) wrote :

This bug seems to have been narrowed down to the AMD/ATI graphic drivers.

Packages concerned thus are:
xserver-xorg-video-ati
xserver-xorg-video-radeonhd

I confirm this behaviour for a Radeon 9800 Pro (R350) that runs on the radeon driver and marking the source package xserver-xorg-video-ati as a candidate to this bug. Feel free to mark the package xserver-xorg-video-radeonhd too if you encounter same kind of problem for that driver.

Changed in xserver-xorg-video-ati (Ubuntu):
status: New → Confirmed
Revision history for this message
Tormod Volden (tormodvolden) wrote :

Mirco, does that mean that Canonical does not care if unity is broken on ATI cards?

Bowmore, xserver-xorg-video-radeonhd is not supported any longer.

Revision history for this message
Mark Shuttleworth (sabdfl) wrote : Re: [Bug 593380] Re: unity quits with CheckGLError in ./ctk-render-target.c:285

 On 13/08/10 08:02, Tormod Volden wrote:
> Mirco, does that mean that Canonical does not care if unity is broken on
> ATI cards?

Obviously not, and it's somewhat inflammatory to put it that way, please
don't do that.

The focus for Unity in 10.10 is to get it working in the
easiest-to-support cases, especially hardware that is common in
netbooks. The Intel chips are the strongest focus, because they
generally have open source drivers and are widely used in netbooks.

Mark

Changed in unity:
milestone: 2010-08-12 → 2010-08-19
Revision history for this message
Tormod Volden (tormodvolden) wrote : Re: unity quits with CheckGLError in ./ctk-render-target.c:285

It was a real question from my side, since the bug was simply closed instead of reassigned or retargeted (before somebody else opened an -ati task). Thanks for clarifying your intentions.

Anyway, I tested with latest mesa git (and all lucid and unity updates) now, and it does not crash any longer! So I will mark this as fix committed in the expectation that we get mesa 7.9 in maverick and and check again once we are there.

affects: xserver-xorg-video-ati (Ubuntu) → mesa (Ubuntu)
Changed in mesa (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Mark Shuttleworth (sabdfl) wrote : Re: [Bug 593380] Re: unity quits with CheckGLError in ./ctk-render-target.c:285

Thanks Tormod

summary: - unity quits with CheckGLError in ./ctk-render-target.c:285
+ [r300] unity quits with CheckGLError in ./ctk-render-target.c:285
Revision history for this message
Robert Hooker (sarvatt) wrote :

This can be reproduced on intel (and other cards that support GL_ARB_non_power_of_two) by launching unity with

MESA_EXTENSION_OVERRIDE=-GL_ARB_texture_non_power_of_two unity

Tormod, are you sure you aren't using r300g (that has limited NPOT support) instead of r300c?

Revision history for this message
Bowmore (bowmore) wrote :

As far as I know I'm running the classic r300c driver.

The extension "GL_ARB_texture_non_power_of_two" seems to be disabled by default and when enabling that one (MESA_EXTENSION_OVERRIDE=GL_ARB_texture_non_power_of_two unity) UNE is started and the left-side panel (dock) gets visible but with unreadable/corrupted launchers and comments.

Any window on the desktop leaves a white area when moved/closed. Those white areas can be fixed by adding "CLUTTER_VBLANK=none" too to the user's .profile.

Futhermore , there are other issues such as corruption och top-panel icons when eg pressing the ubuntu-logo, corrupted window shadows, poor refresh of the desktop panel/dock etc which I assume are side-effects too of the same problem.

Revision history for this message
Tormod Volden (tormodvolden) wrote :

When I reported the bug I was getting the crash both with classic and gallium. But Robert is right, it only got fixed with gallium. Classic crashes like before, and it seems now we are stuck with classic for 10.10.

Changed in mesa (Ubuntu):
status: Fix Committed → Confirmed
Revision history for this message
Bowmore (bowmore) wrote :

Mesa 7.9 that is required seems to have been postponed to Natty Narwhal (11.04).

For those who want to try out the Maverick Netbook Edition (UNE) and are stuck with an ATI board that does cause a white screen there may be a workaround by installing the xorg-edgers for Maverick, of course on your own risk.

The the xorg-edgers PPA for Maverick is
https://launchpad.net/~xorg-edgers/+archive/ppa

Furthermore you probably have to add the following line into your ~/.profile
export CLUTTER_VBLANK=none

This works for me with an ATI (r300/r350 chipset) board.

In case it doesn't work you can remove xorg-edgers again with
sudo ppa-purge xorg-edgers

Revision history for this message
Oibaf (oibaf) wrote :

This should be fixed. Can someone confirm?

Changed in mesa (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
bugbot (bugbot) wrote :

We're closing this bug since it is has been some time with no response from the original reporter. However, if the issue still exists please feel free to reopen with the requested information. Also, if you could, please test against the latest development version of Ubuntu, since this confirms the bug is one we may be able to pass upstream for help.

Changed in mesa (Ubuntu):
status: Incomplete → Expired
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.