Ubuntu

MapsGL labels don't render properly on nouveau, r600, i965

Reported by Alex Mayorga on 2012-04-14
46
This bug affects 9 people
Affects Status Importance Assigned to Milestone
Mesa
Fix Released
Medium
mesa (Ubuntu)
High
Unassigned
Precise
High
Unassigned
Quantal
High
Unassigned

Bug Description

Something messed up MapsGL at http://maps.google.com/?vector=1 with this configuration:

alex-mayorga@VPCCW1FFXL:~$ uname -a
Linux VPCCW1FFXL 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

At first I thought it was a bug on Firefox and reported it as https://bugzilla.mozilla.org/show_bug.cgi?id=745481

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20120414 Firefox/14.0a1 ID:20120414034641

Graphics
Adapter Description nouveau -- Gallium 0.4 on NVA5
Vendor ID nouveau
Device ID Gallium 0.4 on NVA5
Driver Version 2.1 Mesa 8.0.2
WebGL Renderer nouveau -- Gallium 0.4 on NVA5 -- 2.1 Mesa 8.0.2
GPU Accelerated Windows 0
AzureBackend skia

This is how the map looks http://imm.io/m75k street names are not visible.

Same thing happens on Chromium so I believe the issue is on Ubuntu.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xorg 1:7.6+12ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-23.36-generic 3.2.14
Uname: Linux 3.2.0-23-generic x86_64
.tmp.unity.support.test.0:

ApportVersion: 2.0.1-0ubuntu3
Architecture: amd64
CheckboxSubmission: ed5dbdfb54bf5043a043813a33527c9f
CheckboxSystem: b633b4f40868d491c2ae5b50030ce6f3
CompizPlugins: [core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
CompositorRunning: compiz
Date: Sat Apr 14 15:41:04 2012
DistUpgraded: 2011-12-17 19:17:36,860 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GraphicsCard:
 NVIDIA Corporation GT216 [GeForce GT 230M] [10de:0a2a] (rev a2) (prog-if 00 [VGA controller])
   Subsystem: Sony Corporation Device [104d:905e]
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
MachineType: Sony Corporation VPCCW1FFX
ProcEnviron:
 LANGUAGE=en_US:en
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-23-generic root=UUID=f415c990-a34d-451b-b69c-2070c5d53e47 ro quiet splash vt.handoff=7
SourcePackage: xorg
UpgradeStatus: Upgraded to precise on 2011-12-18 (118 days ago)
dmi.bios.date: 09/22/2009
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: R0190Y5
dmi.board.asset.tag: N/A
dmi.board.name: VAIO
dmi.board.vendor: Sony Corporation
dmi.board.version: N/A
dmi.chassis.asset.tag: N/A
dmi.chassis.type: 10
dmi.chassis.vendor: Sony Corporation
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrR0190Y5:bd09/22/2009:svnSonyCorporation:pnVPCCW1FFX:pvrR5785054:rvnSonyCorporation:rnVAIO:rvrN/A:cvnSonyCorporation:ct10:cvrN/A:
dmi.product.name: VPCCW1FFX
dmi.product.version: R5785054
dmi.sys.vendor: Sony Corporation
version.compiz: compiz 1:0.9.7.6-0ubuntu1
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.2-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental 8.0.2-0ubuntu3
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.2-0ubuntu3
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu10
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1build2

Alex Mayorga (alex-mayorga) wrote :
Robert Hooker (sarvatt) on 2012-04-14
affects: xorg (Ubuntu) → mesa (Ubuntu)

Something messed up MapsGL at http://maps.google.com/?vector=1 with this configuration:

alex-mayorga@VPCCW1FFXL:~$ uname -a
Linux VPCCW1FFXL 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20120423 Firefox/14.0a1 ID:20120423034053

Graphics
Adapter Description nouveau -- Gallium 0.4 on NVA5
Vendor ID nouveau
Device ID Gallium 0.4 on NVA5
Driver Version 2.1 Mesa 8.0.2
WebGL Renderer nouveau -- Gallium 0.4 on NVA5 -- 2.1 Mesa 8.0.2
GPU Accelerated Windows 0
AzureBackend skia

This is how the map looks http://imm.io/n1PJ street names are not visible. Same garbled labels appear on Chromium.

At first I thought it was a bug on Firefox and reported it as https://bugzilla.mozilla.org/show_bug.cgi?id=745481

Also reported it to the distribution (Ubuntu) as https://bugs.launchpad.net/ubuntu/+bug/981883

Both bug reports suggested this was a problem "upstream" and suggested I filed the issue here so I'm doing that.

Changed in mesa:
importance: Unknown → Medium
status: Unknown → Confirmed

I see the same issue with r600

OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD JUNIPER
OpenGL version string: 2.1 Mesa 8.0.2
OpenGL shading language version string: 1.20
OpenGL extensions:

but sw works as expected.

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 0x209)
OpenGL version string: 2.1 Mesa 8.0.2
OpenGL shading language version string: 1.20

suggesting the problem is in a more core component, possibly dri2-specific.

I'm seeing this on i965/Sandy Bridge as well, so maybe it's something in Core Mesa? Either that or we all have similar bugs :)

Created attachment 60641
hd6770+mesa-git

Opera+hd6770+mesa-git looks fine, i see no problem.

(In reply to comment #3)
> Created attachment 60641 [details]
> hd6770+mesa-git
>
> Opera+hd6770+mesa-git looks fine, i see no problem.

It doesn't look like like you're using MapsGL[1] from the screen capture.

Please try to replicate using http://maps.google.com/?vector=1

[1] http://maps.google.com/support/bin/answer.py?hl=en&answer=1630790

On the i965 driver, I tracked it down to the commit where I started advertising vertex shader texture units. I also noticed that the rendering is broken using classic swrast (LIBGL_ALWAYS_SOFTWARE=1), but if I hacked swrast to advertise 0 VS texture image units, then it worked.

Obviously MapsGL is changing its rendering technique when VS texturing is present (or not), but I suspect that there's something broken in core Mesa related to VS texturing.

I confirm that MapsGL is known to use textures in vertex shaders when possible.

Created attachment 60740
patch

Does this patch help?

*** Bug 49237 has been marked as a duplicate of this bug. ***

(In reply to comment #7)
> Does this patch help?

It helps me.

Yeah, it's definitely not just Noveau, have the same problem on Sandy Bridge. Very unstable, GPU hangs and screen goes black. Driver usually manages to recover, and system is fine if you just close the tab or even leave it open but change to another tab.

Patch fixes label rendering with MapsGL, but breaks GL output with mplayer (mplayer -vo gl ..)

Can confirm mplayer breakage -- a simple white-on-black ESRB rating screen is rendered purple-on-green.

Fragment program in question is:

!!ARBfp1.0
OPTION ARB_precision_hint_fastest;
TEMP coord, coord2, cdelta, parmx, parmy, a, b, yuv;
TEX yuv.r, fragment.texcoord[0], texture[0], 2D;
TEX yuv.g, fragment.texcoord[1], texture[1], 2D;
TEX yuv.b, fragment.texcoord[2], texture[2], 2D;
PARAM ycoef = {1.164000e+00, 1.164000e+00, 1.164000e+00};
PARAM ucoef = {0.000000e+00, -3.910000e-01, 2.018000e+00};
PARAM vcoef = {1.596000e+00, -8.130000e-01, 0.000000e+00};
PARAM offsets = {-8.741648e-01, 5.313256e-01, -1.085992e+00};
TEMP res;
MAD res.rgb, yuv.rrrr, ycoef, offsets;
MAD res.rgb, yuv.gggg, ucoef, res;
MAD res.rgb, yuv.bbbb, vcoef, res;
MOV result.color.rgb, res;
END

Created attachment 60756
[PATCH] glsl: initialize samplers mapping with 0

Yes, initial patch wasn't completely correct. I've sent another version to the mesa-dev list already, but forgot to attach it to this bug for testing.

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mesa (Ubuntu):
status: New → Confirmed

How do I test the patch?

Please dumb down the instructions as much as possible ;-)

Confirming on Sandy Bridge HD3000 (i965).

Working in Mesa master, with Ian's version of the patches.

Changed in mesa:
status: Confirmed → Fix Released
Bryce Harrington (bryce) wrote :

This patch is not included in the 8.0.3 mesa but has been upstream since April.

Changed in mesa (Ubuntu):
importance: Undecided → High
status: Confirmed → Triaged
summary: - MapsGL doesn't render properly on nouveau
+ MapsGL labels don't render properly on nouveau, r600, i965
Changed in mesa (Ubuntu Precise):
status: New → Incomplete
status: Incomplete → Triaged
importance: Undecided → High
Bryce Harrington (bryce) on 2012-06-13
Changed in mesa (Ubuntu Quantal):
status: Triaged → Fix Committed
tags: added: patch
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mesa - 8.0.3-0ubuntu1

---------------
mesa (8.0.3-0ubuntu1) quantal; urgency=low

  * New upstream stable release.
    + Fixes crash in intel_miptree_release()
      (LP: #952896)
    + Fixes slow WebGL in firefox
      (LP: #988343)

  [ Robert Hooker ]
  * Drop 118_fix_rendering_from_textures.patch and
    117_intel_fix_hiz_null_dereference.patch, both included upstream.
  * Refresh patches.

  [ Bryce Harrington ]
  * Add 117_nullptr_check_in_query_version.patch: Fix null pointer
    deref in QueryVersion() during login.
    (LP: #968284)
  * Add 118_glsl_initialize_samplers.patch: Initialize samplers to 0, as
    required by the spec. Fixes rendering corruption in MapsGL labels.
    Cherrypick from mesa master.
    (LP: #981883)
 -- Bryce Harrington <email address hidden> Mon, 18 Jun 2012 19:02:09 -0700

Changed in mesa (Ubuntu Quantal):
status: Fix Committed → Fix Released
Changed in mesa (Ubuntu Precise):
status: Triaged → Fix Committed
tags: added: verification-needed

Hello Alex, or anyone else affected,

Accepted mesa into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/mesa/8.0.3-0ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Alex Mayorga (alex-mayorga) wrote :

Chris,

I've since upgraded to Quantal and I can confirm this works now.

These are the details from Nightly's about:support

Graphics
Adapter Description nouveau -- Gallium 0.4 on NVA5
Vendor ID nouveau
Device IDGallium 0.4 on NVA5
Driver Version 2.1 Mesa 8.0.3
WebGL Renderer nouveau -- Gallium 0.4 on NVA5 -- 2.1 Mesa 8.0.3
GPU Accelerated Windows 0
AzureBackend none

Should I still change the tag as requested?

Clint Byrum (clint-fewbar) wrote :

Alex, no, the tag is for verifying on precise, not quantal. We need to make sure the actual binaries and configuration from precise work before releasing it to precise-updates.

Chris Halse Rogers (raof) wrote :

Hello Alex, or anyone else affected,

Accepted mesa into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/mesa/8.0.4-0ubuntu0.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Timo Jyrinki (timo-jyrinki) wrote :

Street names show after updating to 8.0.4 (running on r600).

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mesa - 8.0.4-0ubuntu0.1

---------------
mesa (8.0.4-0ubuntu0.1) precise-proposed; urgency=low

  * New upstream stable release. (LP: #1019444)
    + Fixes crash in intel_miptree_release()
      (LP: #952896)
    + Fixes slow WebGL in firefox
      (LP: #988343)

  [ Robert Hooker ]
  * Drop 118_fix_rendering_from_textures.patch and
    117_intel_fix_hiz_null_dereference.patch, both included upstream.
  * Refresh patches.

  [ Bryce Harrington ]
  * Add 117_nullptr_check_in_query_version.patch: Fix null pointer
    deref in QueryVersion() during login.
    (LP: #968284)
  * Add 118_glsl_initialize_samplers.patch: Initialize samplers to 0, as
    required by the spec. Fixes rendering corruption in MapsGL labels.
    Cherrypick from mesa master.
    (LP: #981883)
 -- Bryce Harrington <email address hidden> Fri, 07 Sep 2012 13:59:12 -0700

Changed in mesa (Ubuntu Precise):
status: Fix Committed → Fix Released
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

Remote bug watches

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