Bug 31104 - Savage 2 characters severely distorted!
Summary: Savage 2 characters severely distorted!
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: 7.8
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Eric Anholt
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-25 12:25 UTC by infested999
Modified: 2011-01-07 11:56 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description infested999 2010-10-25 12:25:32 UTC
This happens on almost all Intel GMA chipsets, specifically on the Intel G41 X4500 Integrated.

Everything in the game renders fine, but the characters are distorted.

I have taken screenshots of every error that occurs and they can be seen here:
http://imgur.com/9NdIu.png
http://imgur.com/0WBJW.png
http://imgur.com/mDqYN.png
http://imgur.com/Cu5Js.png
http://imgur.com/TH10r.png
http://imgur.com/ptvHk.png
http://imgur.com/Ndeg1.png

I am sure that the hardware is capable of performing this task since it works perfectly under Windows (see G41 in the graphics card list: http://spreadsheets.google.com/ccc?key=0ArgkrXPjBdybdDVPQ09QZlhTa3lMS3RFQk9zVnplYmc&hl=en 2nd tab).

So far I have seen three other people who had this exact same problem. All with different Linux systems with either a Intel G41 X4500 or a Mobile X4500HD. My system being:

Arch Linux x86_64
mesa 7.8.2-3
xf86-video-intel 2.12.0-3
intel-dri 7.8.2-3

This issue is sort of a long-run, but there are plenty of Savage 2 players who would love to see this fixed.
Comment 1 Sven Arvidsson 2010-10-25 12:33:10 UTC
For Savage 2, you really need to upgrade to Mesa 7.9 for the reworked GLSL support. 

There's however still a few problems with the game (might be hardware specific) tracked in bug 30004.
Comment 2 infested999 2010-10-25 12:47:16 UTC
(In reply to comment #1)
> For Savage 2, you really need to upgrade to Mesa 7.9 for the reworked GLSL
> support. 
> 
> There's however still a few problems with the game (might be hardware specific)
> tracked in bug 30004.

It seems that mesa just happened to be out-of-date in the official Arch Linux package system. Would this git branch also be suitable? http://aur.archlinux.org/packages.php?ID=19044
Comment 3 Kenneth Graunke 2010-10-25 13:14:57 UTC
Arch Linux's testing repo contains 7.9, if you want to go that route.

If you want to use the AUR's -git packages, you'll need intel-dri-git, libgl-git, and possibly mesa-git.  Or, you can build the "mesa-full" package from AUR which provides all three.
Comment 4 infested999 2010-10-25 13:37:11 UTC
(In reply to comment #3)
> Arch Linux's testing repo contains 7.9, if you want to go that route.
> 
> If you want to use the AUR's -git packages, you'll need intel-dri-git,
> libgl-git, and possibly mesa-git.  Or, you can build the "mesa-full" package
> from AUR which provides all three.

Alright everything has been updated to the latest testing versions. The bug is even worse now, while the background world is now much better.

http://imgur.com/8UYZy.png

It seems this is a code error that a dev has to see and maybe this can get fixed in the next version.
Comment 5 infested999 2010-10-25 13:47:53 UTC
Completely out of coincidence, I have just found something else. If I play Sauerbraten which is an open-source OpenGL game, and when I turn "shaders" on then the exact same effect will happen on the characters!

The shaders being on low or high, has no effect on the graphical glitch. Once the shaders are turned off, the game will act normally, thus I can confirm that this bug is caused only by shaders rendered in OpenGL.
Comment 6 Brian Paul 2010-10-25 14:25:28 UTC
Having seen this kind of thing in the past, my guess is it's a bug in the vertex shader's handling of indirect addressing into the constant buffer to get skinning parameters.
Comment 7 infested999 2010-10-25 14:30:57 UTC
(In reply to comment #6)
> Having seen this kind of thing in the past, my guess is it's a bug in the
> vertex shader's handling of indirect addressing into the constant buffer to get
> skinning parameters.

Would you say that it is caused by the game's code, or is the problem in the video driver?
Comment 8 Sven Arvidsson 2010-10-25 15:12:21 UTC
(In reply to comment #7)
> Would you say that it is caused by the game's code, or is the problem in the
> video driver?

Savage 2 works (or at least worked) fine with r300g and llvmpipe.
Comment 9 infested999 2010-10-29 08:25:39 UTC
(In reply to comment #8)
> (In reply to comment #7)
> > Would you say that it is caused by the game's code, or is the problem in the
> > video driver?
> 
> Savage 2 works (or at least worked) fine with r300g and llvmpipe.

llvmpipe, I can't find must information about it on Google, it seems as a dirver that puts all rendering on the CPU instead of the GPU. How is this driver installed in Arch Linux.
Comment 10 Eric Anholt 2011-01-07 11:56:28 UTC
commit 5dc53444c8323c1787dddbe6b67048828df9c684
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 22 22:46:12 2010 -0800

    i965: Correct the dp_read message descriptor setup on g4x.
    
    It's mostly like gen4 message descriptor setup, except that the sizes
    of type/control changed to be like gen5.  Fixes 21 piglit cases on
    gm45, including the regressions in bug #32311 from increased VS
    constant buffer usage.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.