ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.25k stars 175 forks source link

Team Fortress 2 doesn't run on Intel GPUs without GLSL 1.3 support #19

Closed ghost closed 11 years ago

ghost commented 11 years ago

While TF2 runs fine on Windows running on machines like mine (pre-HD integrated grahpics, e.g. the 4500mhd), the native Linux port fails to do anything more than to show a black screen, while the game loads and cycles through introduction screens and the main menu, with sound working perfectly fine.

The underlying issue seems to be lacking GLSL 1.3 support for said hardware. I cannot tell whether this is a software (Mesa) or a hardware problem; even under Windows, I get results of OpenGL 2.1 compliance at most. The game seems to be somehow less demanding in DirectX mode, or whatever reason Valve came up with.

In the game's log, several error messages related to failing shader compilation can be found. Numerous cases of this, and as shown in video, can be found in this Discussion thread: http://steamcommunity.com/app/221410/discussions/6/846939071071956036/#p1

A filthy, not-so-much-working workaround was proposed by me, which merely forces the game engine to assume we're running it on a GLSL 1.3-compatible system. Of course, this is asking for trouble, and the little useful results can also be found in this thread.

"Workaround", forcing GLSL version to minimum required 1.3:

MESA_GLSL_VERSION_OVERRIDE=130

slyon commented 11 years ago

I can confirm this issue, observing the very same behaviour on my Intel GMA HD (Ironlake, 1st Gen i5).

PS: Someone should add a "Intel drivers" label to this issue.

timeimp commented 11 years ago

When launching TF2 with nVidia GeForce 6600 GT, it complains about there being a lack of an 'entry point'.

Researching around leads me to OpenGL 1.3 'n' stuff - which is odd, as this card seems to play TF2 OK under Windows.

play3man commented 11 years ago

Intel GMA 4500m, in windows it works fine, in wine on ubuntu too, but native version didn't...

dos1 commented 11 years ago

Debian sid amd64, Ivybridge (HD 4000)

All I can get from TF2 is http://i48.tinypic.com/28a55jq.png Menu works, music plays, but graphics are a bit boring ;)

glxinfo says:

OpenGL version string: 3.0 Mesa 8.0.5 OpenGL shading language version string: 1.30

Tried workaround with locale C, but with no luck.

This PC haven't seen Windows at all (and probably won't in future too), so I cannot say if it worked on it or not. Haven't tried under wine.

slyon commented 11 years ago

@dos1 yo! It should work on HD4000. You should try to use Mesa 9.0.1, as this is the recommended release, due to: http://intellinuxgraphics.org/2012Q4.html

play3man commented 11 years ago

@cumulus007 set intel drivers tag on this bug report please

jpgunter commented 11 years ago

I get the same thing with Intel HD3000 graphics

OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile OpenGL version string: 2.1 Mesa 9.1-devel OpenGL shading language version string: 1.20

I am running the latest from xorg-edgers.

dos1 commented 11 years ago

Hi @slyon! :) Yes, that was it. I have compiled Mesa 9.0.1 (it's not available yet from Debian repositories) and TF2 now works like a charm - thanks for suggestion!

play3man commented 11 years ago

@jpgunter You have Ironlake = Intel HD (2010 series) which support only OpenGL 2.1

jpgunter commented 11 years ago

@play3man Does my graphics chip need to support something higher to play tf2?

play3man commented 11 years ago

@jpgunter In linux yes... or... with linux steam yes. But it's playable in linux by Wine with windows version of steam. So I hope native version of TF2 will be playable too...

jpgunter commented 11 years ago

Are the minimum specs documented anywhere?

play3man commented 11 years ago

@jpgunter http://steamcommunity.com/app/221410/discussions/1/882965118609963322/

play3man commented 11 years ago

http://www.youtube.com/watch?v=LwVLP-JucH4

pepijndevos commented 11 years ago

So the final answer is that you need a HD 3000/4000?

I'm getting sound, but a lot of messages saying Compile of "shadowmodel_ps20" Failed: followed by what looks like C code.

This is my system info:

Processor Information:
    Vendor:  GenuineIntel
    Speed: 1300 Mhz
    2 logical processors
    2 physical processors
    HyperThreading:  Unsupported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Unsupported
    SSE42:  Unsupported

Network Information:
    Network Speed:  

Operating System Version:
    Linux (64 bit)
    Kernel Name:  Linux
    Kernel Version:  3.6.10-1-ARCH
    X Server vendor:  The X.Org Foundation
    X Server release:  11300902

Video Card:
    Driver:  Intel Open Source Technology Center Mesa DRI Mobile Intel® GM45 Express Chipset x86/MMX/SSE2

    Driver Version:  2.1 Mesa 9.0.1
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x8086
    DeviceID:  0x2a42
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1366 x 768
    Desktop Resolution: 1366 x 768
    Primary Display Size: 10.08" x 5.67"  (11.54" diag)
                                            25.6cm x 14.4cm  (29.3cm diag)
    Primary VRAM Not Detected

Sound card:
    Audio device: Intel Cantiga HDMI

Memory:
    RAM:  1938 Mb

Miscellaneous:
    UI Language:  English
    LANG:  C
    Microphone:  Not set
    Total Hard Disk Space Available:  131031 Mb
    Largest Free Hard Disk Block:  105801 Mb
`
slyon commented 11 years ago

@pepijndevos If you want to play now – yes! In the future either the Intel/Mesa driver could be extended to support the missing features, or Valve could change the Source engines DirectX to OpenGL translation layer to have lower requirements.

play3man commented 11 years ago

nothing new guys?

wimmez commented 11 years ago

For Ubuntu 12.04 players, I found this PPA: https://launchpad.net/~ubuntu-x-swat/+archive/mesa9 that upgrades your MESA to v9 which fixed this issue on my Intel Core i3 (Sandy Bridge) CPU.

mcoumans commented 11 years ago

https://github.com/ValveSoftware/steam-for-linux/issues/524

ghost commented 11 years ago

@mcoumans The issue you referred to is not the same, since you are actually able to play the game.

mcoumans commented 11 years ago

@cumulus007 Yes, but only by stopping all programmes, logging out and logging back into another Desktop environment. Furthermore, the info may help devs to find the core of the problem.

Agmenor commented 11 years ago

Consider this as a "Me too!" post. I have the same symptoms (game loading with sound but screen remains desperatly black) with same hardware, including Intel GMA 4500M integrated graphics card on Ubuntu 12.10.

ghost commented 11 years ago

Can you be more clear with your work around please?

Where do I stick MESA_GLSL_VERSION_OVERRIDE=130

play3man commented 11 years ago

Nothing new guys?

Yulike commented 11 years ago

Update would be nice, maybe the next graphics driver update will update GLSL to 1.3. I'm on Ironlake HD Graphics.

jljusten commented 11 years ago

The related Mesa feature request is at https://bugs.freedesktop.org/show_bug.cgi?id=59187.

Yulike commented 11 years ago

"It should be possible to implement the missing functionality on Ironlake. The code is open source, and the hardware documentation is freely available on the web(*), so in theory, anyone could make progress toward this.

Sadly, our team is extremely busy working on newer hardware and is unlikely to have time to implement GL 3.0 support for Ironlake...at least not any time soon. I sincerely apologize for this; we'd all love to see it happen too."

So that's a "**\ off and buy newer hardware." response?

dos1 commented 11 years ago

Difference is that you can implement it by yourself without fighting with reverse engineering, cause documentation is available. It's highly probable that someone will step up and implement it, but it's hard to say when that will happen.

play3man commented 11 years ago

So, when I have GMA 4500M... I can forget for support?

Yulike commented 11 years ago

Would it be possible to get a word from anyone at Valve? A simple "we wont fix" or "we're working on it" whatever, just a response?

play3man commented 11 years ago

They already said. http://steamcommunity.com/app/221410/discussions/1/882965118606133134/?tscn=1355530489#c846939854098355972

Yulike commented 11 years ago

So neither side are willing to take the blame, then that's a definite no. It will not get fixed.

johndrinkwater commented 11 years ago

Valve are saying: this is a feature of their game (wontfix), nvidia drivers support it, intel & amd drivers need some work… and they do need work. If you own AMD, forward your comments to http://devgurus.amd.com/community/steam-linux

Yulike commented 11 years ago

This bug also, as I expected, effects Counter-Strike: Source...

play3man commented 11 years ago

I thinks CS Source tag on this will be good... So also others Source games will be unplayable... Portal 1/2 :(

davidgomes commented 11 years ago

I can confirm this on Ubuntu 12.10, Intel graphics.

Yulike commented 11 years ago

Is there noway they can implement a fullback mode? CS: Source can run on as low as DX7 so I don't see why OpenGl 3 should be a requirement.

play3man commented 11 years ago

True!

gright6678 commented 11 years ago

Would mucho appreciate this issue to be resolved :)

am1github commented 11 years ago

I can confirm this too for CS:S on a gentoo, 64bit, latest steam, intel gma 4500mhd.

Yulike commented 11 years ago

Seems to affect a lot of people...

am1github commented 11 years ago

I've reported a bug on freedesktop: https://bugs.freedesktop.org/show_bug.cgi?id=60481

play3man commented 11 years ago

Thanks, i hope it will be fixed soon.

Yulike commented 11 years ago

I responded asking for it to be fixed as well. Also it effects Intel HD Ironlake too.

theCapypara commented 11 years ago

Can confirm that, and I'm really hoping for (A) a low-level opengl mode for the source engine (like -dxlevel for DirectX) and/or (B) a driver patch.

katanacrimson commented 11 years ago

Would like to see this change, rather disappointing seeing Valve handling windows & hardware far better than on linux, when they're hoping to draw the market towards linux instead. Kinda pathetic.

am1github commented 11 years ago

Because this is not a Valve-issue and Intel wouldn't fix it, i'm looking for people who has the knowledge in several Linux-forums, such as Gentoo ( http://forums.gentoo.org/viewtopic-t-951050.html ). I hope i would find some people who can patch this. My knowledge about changing drivers is 0% :-1:

Keep pushing in serveral forums an ask for help from Pros. :+1:

play3man commented 11 years ago

Valve created a game which runs in Windows with Intel GPU. Valve ported a game, that same game, which doesn't run in Linux with the same Intel GPU.

(Like a "layman") I doesn't care about Direct X or Open GL (like a "layman") I doesn't know what it is. I just want that game which runs in Windows and it's native ported to Linux, play on Linux! Drivers support OpenGL 2.1, that it's OK. But that game wants something more on Linux, than it's wants on Windows. So, I think, this is Valve issue.

Changing drivers is just workaround, nothing more, I think.

slyon commented 11 years ago

Well, I don't think it's a workarround. Both are valid fixes for this issue. Valve could fix it more easily, but won't do it.. What about some fundraising for someone who implements the missing part in the driver?

MrSchism commented 11 years ago

Can confirm that, and I'm really hoping for (A) a low-level opengl mode for the source engine (like -dxlevel for DirectX) and/or (B) a driver patch.

I think that A is probably the better option and shouldn't be impossible to implement. A better option would be automatic detection of OGL implementation and requirements based on game and settings

(Like a "layman") I doesn't care about Direct X or Open GL (like a "layman") I doesn't know what it is. I just want that game which runs in Windows and it's native ported to Linux, play on Linux! Drivers support OpenGL 2.1, that it's OK. But that game wants something more on Linux, than it's wants on Windows. So, I think, this is Valve issue.

Wikipedia has a good article why certain DirectX doesn't directly equate to OpenGL in features. Valve is not responsible for what features and capabilities the different versions of DirectX and OpenGL are capable of, nor are they responsible for what DirectX/OpenGL version is available for a given driver or hardware device.