Steam for Linux

Steam for Linux

Solution to Black Screen in TF2
I just wanted to share my solution to the black screen problem in TF2. I'm using Xubuntu 12.10 64-bit with 310 series Nvidia drivers (GPU = GTX460M).

1) Open a terminal and type: sudo nano /usr/bin/steam
2) Add the following lines after "#! /bin/bash":
export LANG=C
export LC_NUMERIC=POSIX
3) Save (CTRL-O + Enter + CTRL-X)
4) Launch Steam

Just "export LANG=C" alone didn't help me, but for some it has done the trick. I got my idea from Limited Beta section, but since I'm not in the beta, I can't contribute there. I hope this workaround helps those who have this problem.
< >
Affichage des commentaires 1 à 15 sur 88
Thanks for your contribution, however this doesn't work for Intel HD 2000. I gave it a shot anyway and though I would give my input. TF2 works fine on Windows with the HD 2000. Can someone explain how changing files to do with Steam will effect TF2?
Hi! I'm not sure if HD 2000 is (yet) supported by Steam for Linux. But I sure hope it will, if it works on Windows.

EDIT: Also, if you launch TF2, does the in-game chat-overlay-thingy work?
Dernière modification de Teisei; 19 nov. 2012 à 2h06
Yeah that's what I expected, yes the Steam-Overlay works, occasionally the Overlay will "overwrite" the textures, in games like World of Goo. This even happens after your "fix". Killing Floor works flawlessly though.
That's strange. Maybe it's game specific after all ...
Didn't help me :*(
I'm using a Radeon 5850
It doesn't work for me either.
/home/iamoverrated/Steam/SteamApps/iamoverrated/Team Fortress 2/hl2.sh: line 72: 3156 Segmentation fault (core dumped) ${GAME_DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@" Game removed: AppID 440 "Team Fortress 2", ProcID 3156 processpipe_posix.cpp (371) : Assertion Failed: CCrossProcessPipe::BWrite wrote too few bytes: 32 (Broken pipe) Assert( Assertion Failed: CCrossProcessPipe::BWrite wrote too few bytes: 32 (Broken pipe) ):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/processpipe_posix.cpp:371

That's what its spitting out.
I got this.
Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; centroid varying vec4 oT2; varying vec4 oT4; //SAMPLERMASK-83 //SAMPLERTYPES-ffff3ff0 //HIGHWATER-31 uniform vec4 pc[31]; uniform sampler2D sampler0; uniform sampler2D sampler1; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 63 vec4 r0; vec4 r1; vec4 r2; vec4 r3; r2 = texture2D( sampler0, oT0.xy ); r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler1, oT2.xy ); r0.w = -oT4.z + pc[10].z; r1.w = 1.0 / r0.w; r3.xyz = gl_SecondaryColor.xxx * ( r1.xyz - r2.xyz ) + r2.xyz; r0.w = -oT4.z + pc[11].y; r1.xyz = r3.xyz * gl_Color.xyz; r0.w = r1.w * r0.w; r0.w = clamp( r0.w, 0.0, 1.0 ); r0.xyz = r0.xyz * pc[12].xyz; r0.w = r0.w * oT4.w; r0.xyz = r1.xyz * r0.xyz; r0.w = r0.w * pc[11].w; r0.w = clamp( r0.w, 0.0, 1.0 ); r1.w = pc[30].x; r1.xyz = r0.xyz * -r1.www + pc[29].xyz; r1.w = r0.w; r1.w = clamp( r1.w, 0.0, 1.0 ); r1.xyz = r1.xyz * r1.www; r0.xyz = r0.xyz * pc[30].xxx + r1.xyz; gl_FragData[0] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; centroid varying vec4 oT3; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-89 //SAMPLERTYPES-ffff3f3c //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler3; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 64 vec4 pd0 = vec4( -2.0, 3.0, 0.25, 0.699999988079 ); vec4 pd1 = vec4( 0.43643578887, 0.87287157774, -0.218217894435, 0.0 ); vec4 r0; vec4 r1; vec4 r2; vec4 r3; r0.x = oT3.z; r0.y = oT3.w; r2 = texture2D( sampler3, r0.xy ); r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r2.w = r2.x + r2.y; r2.w = clamp( r2.w, 0.0, 1.0 ); r1.w = -r2.x + r2.y; r1.w = clamp( r1.w, 0.0, 1.0 ); r2.w = r2.w + -r1.w; r1.w = -r1.w + gl_SecondaryColor.x; r2.w = 1.0 / r2.w; r2.w = r1.w * r2.w; r2.w = clamp( r2.w, 0.0, 1.0 ); r2.x = oT5.z; r1.w = r2.w * pd0.x + pd0.y; r2.y = oT6.z; r2.w = r2.w * r2.w; r2.z = oT7.z; r1.w = r1.w * r2.w; r3.x = dot( r2.xyz, pd1.xyz ); r2.xyz = r1.www * ( r1.xyz - r0.xyz ) + r0.xyz; r2.w = r3.x * pd0.z + pd0.w; r0.xyz = r2.xyz * gl_Color.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r2.www * r0.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-81 //SAMPLERTYPES-ffff3ffc //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 72 vec4 pd0 = vec4( 0.25, 0.699999988079, 0.0, 0.0 ); vec4 pd1 = vec4( 0.43643578887, 0.87287157774, -0.218217894435, 0.0 ); vec4 r0; vec4 r1; vec4 r2; r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r2.x = oT5.z; r2.y = oT6.z; r2.z = oT7.z; r2.x = dot( r2.xyz, pd1.xyz ); r2.w = r2.x * pd0.x + pd0.y; r2.xyz = gl_SecondaryColor.xxx * ( r1.xyz - r0.xyz ) + r0.xyz; r0.xyz = r2.xyz * gl_Color.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r2.www * r0.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-81 //SAMPLERTYPES-ffff3ffc //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 76 vec4 pd0 = vec4( 0.25, 0.699999988079, 0.0, 0.0 ); vec4 pd1 = vec4( 0.43643578887, 0.87287157774, -0.218217894435, 0.0 ); vec4 r0; vec4 r1; vec4 r2; r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r2.x = oT5.z; r2.y = oT6.z; r2.z = oT7.z; r2.x = dot( r2.xyz, pd1.xyz ); r2.w = r2.x * pd0.x + pd0.y; r2.xyz = gl_SecondaryColor.xxx * ( r1.xyz - r0.xyz ) + r0.xyz; r0.xyz = r2.xyz * gl_Color.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r2.www * r0.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; centroid varying vec4 oT3; varying vec4 oT4; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-89 //SAMPLERTYPES-ffff3f3c //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler3; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 80 vec4 pd0 = vec4( 2.200000047684, -2.0, 3.0, 1.0 ); vec4 r0; vec4 r1; vec4 r2; r0.x = oT3.z; r0.y = oT3.w; r2 = texture2D( sampler3, r0.xy ); r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r2.w = r2.x + r2.y; r2.w = clamp( r2.w, 0.0, 1.0 ); r1.w = -r2.x + r2.y; r1.w = clamp( r1.w, 0.0, 1.0 ); r2.w = r2.w + -r1.w; r0.x = log2( r0.x ); r1.w = -r1.w + gl_SecondaryColor.x; r0.y = log2( r0.y ); r2.w = 1.0 / r2.w; r0.z = log2( r0.z ); r2.w = r1.w * r2.w; r2.w = clamp( r2.w, 0.0, 1.0 ); r0.xyz = r0.xyz * pd0.xxx; r1.w = r2.w * pd0.y + pd0.z; r2.x = exp2( r0.x ); r2.w = r2.w * r2.w; r2.y = exp2( r0.y ); r1.w = r1.w * r2.w; r2.z = exp2( r0.z ); r0.xyz = r1.www * ( r1.xyz - r2.xyz ) + r2.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r0.xyz * gl_Color.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; r0.x = oT5.z; r0.y = oT6.z; r0.z = oT7.z; gl_FragData[1] = r0; r0.xyz = oT4.xyz; gl_FragData[2] = r0; r0.xyz = pd0.www; gl_FragData[3] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; varying vec4 oT4; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-81 //SAMPLERTYPES-ffff3ffc //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 88 vec4 pd0 = vec4( 2.200000047684, 1.0, 0.0, 0.0 ); vec4 r0; vec4 r1; vec4 r2; r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r0.x = log2( r0.x ); r0.y = log2( r0.y ); r0.z = log2( r0.z ); r0.xyz = r0.xyz * pd0.xxx; r2.x = exp2( r0.x ); r2.y = exp2( r0.y ); r2.z = exp2( r0.z ); r0.xyz = gl_SecondaryColor.xxx * ( r1.xyz - r2.xyz ) + r2.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r0.xyz * gl_Color.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; r0.x = oT5.z; r0.y = oT6.z; r0.z = oT7.z; gl_FragData[1] = r0; r0.xyz = oT4.xyz; gl_FragData[2] = r0; r0.xyz = pd0.yyy; gl_FragData[3] = r0; } Compile of "lightmappedgeneric_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; varying vec4 oT4; varying vec4 oT5; varying vec4 oT6; varying vec4 oT7; //SAMPLERMASK-81 //SAMPLERTYPES-ffff3ffc //HIGHWATER-13 uniform vec4 pc[13]; uniform sampler2D sampler0; uniform sampler2D sampler7; void main() { // trans#0 label:ps-file lightmappedgeneric_ps20b ps-index 2359488 ps-combo 92 vec4 pd0 = vec4( 2.200000047684, 1.0, 0.0, 0.0 ); vec4 r0; vec4 r1; vec4 r2; r1 = texture2D( sampler7, oT0.xy ); r0 = texture2D( sampler0, oT0.xy ); r0.x = log2( r0.x ); r0.y = log2( r0.y ); r0.z = log2( r0.z ); r0.xyz = r0.xyz * pd0.xxx; r2.x = exp2( r0.x ); r2.y = exp2( r0.y ); r2.z = exp2( r0.z ); r0.xyz = gl_SecondaryColor.xxx * ( r1.xyz - r2.xyz ) + r2.xyz; r1.w = gl_Color.w * pc[12].w; r0.xyz = r0.xyz * gl_Color.xyz; r0.w = r0.w * r1.w; gl_FragData[0] = r0; r0.x = oT5.z; r0.y = oT6.z; r0.z = oT7.z; gl_FragData[1] = r0; r0.xyz = oT4.xyz; gl_FragData[2] = r0; r0.xyz = pd0.yyy; gl_FragData[3] = r0; } Compile of "Downsample_vs20" Failed: //GLSLvp #version 130 //ATTRIBMAP-00-50-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx attribute vec4 v0; // 80000000 900f0000 attribute vec4 v1; // 80000005 900f0001 //SAMPLERMASK-0 //SAMPLERTYPES-ffffffff //HIGHWATER-52 //HIGHWATERBONE-0 uniform vec4 vc[52]; uniform vec4 vcscreen; varying vec4 oT0; varying vec4 oT1; varying vec4 oT2; varying vec4 oT3; void main() { // trans#0 label:vs-file Downsample_vs20 vs-index 0 vs-combo 0 vec4 vTempPos; oT0.xy = v1.xy + vc[48].xy; oT1.xy = v1.xy + vc[49].xy; oT2.xy = v1.xy + vc[50].xy; oT3.xy = v1.xy + vc[51].xy; vTempPos = v0.xyzx * vc[0].yyyx + vc[0].xxxy; gl_ClipVertex = vTempPos; vTempPos.z = vTempPos.z * vc[0].z - vTempPos.w; // z' = (2*z)-w vTempPos.y = -vTempPos.y; // y' = -y vTempPos.xy += vcscreen.xy * vTempPos.w; gl_Position = vTempPos; } Compile of "downsample_nohdr_ps20b" Failed: //GLSLfp #version 130 varying vec4 oT0; varying vec4 oT1; varying vec4 oT2; varying vec4 oT3; //SAMPLERMASK-1 //SAMPLERTYPES-fffffffc //HIGHWATER-1 uniform vec4 pc[1]; uniform sampler2D sampler0; void main() { // trans#0 label:ps-file downsample_nohdr_ps20b ps-index 0 ps-combo 0 vec4 pd1 = vec4( 0.25, 0.0, 0.0, 0.0 ); vec4 r0; vec4 r1; vec4 r2; vec4 r3; vec4 r4; r0 = texture2D( sampler0, oT0.xy ); r3 = texture2D( sampler0, oT1.xy ); r2 = texture2D( sampler0, oT2.xy ); r1 = texture2D( sampler0, oT3.xy ); r4.x = log2( r0.x ); r4.y = log2( r0.y ); r4.z = log2( r0.z ); r4.xyz = r4.xyz * pc[0].www; r4.x = exp2( r4.x ); r4.y = exp2( r4.y ); r4.z = exp2( r4.z ); r0.x = dot( r0.xyz, pc[0].xyz ); r0.xyz = r4.xyz * r0.xxx; r4.x = log2( r3.x ); r4.y = log2( r3.y ); r4.z = log2( r3.z ); r4.xyz = r4.xyz * pc[0].www; r4.x = exp2( r4.x ); r4.y = exp2( r4.y ); r4.z = exp2( r4.z ); r3.x = dot( r3.xyz, pc[0].xyz ); r3.xyz = r4.xyz * r3.xxx; r0 = r0 + r3; r3.x = log2( r2.x ); r3.y = log2( r2.y ); r3.z = log2( r2.z ); r3.xyz = r3.xyz * pc[0].www; r3.x = exp2( r3.x ); r3.y = exp2( r3.y ); r3.z = exp2( r3.z ); r2.x = dot( r2.xyz, pc[0].xyz ); r2.xyz = r3.xyz * r2.xxx; r0 = r2 + r0; r2.x = log2( r1.x ); r2.y = log2( r1.y ); r2.z = log2( r1.z ); r2.xyz = r2.xyz * pc[0].www; r2.x = exp2( r2.x ); r2.y = exp2( r2.y ); r2.z = exp2( r2.z ); r1.x = dot( r1.xyz, pc[0].xyz ); r1.xyz = r2.xyz * r1.xxx; r0 = r1 + r0; r0 = r0 * pd1.xxxx; gl_FragData[0] = r0; } Loaded program cache file "glbaseshaders.cfg", total keyvalues: 266, total successfully linked: 266 Could not load program cache file glshaders.cfg Could not find user GL shader cache file Precache: Took 12768 ms, Vertex 928, Pixel 1367 Game.so loaded for "Team Fortress"
Okay everyone. This is a problem with locales obviously. I'd guess it has to do with different number-formats in different regions. Like the decimal point being a comma outside English speaking countries.

That said, you can set this behavior as the threadstarter said. You can also just run the game like this:

LC_NUMERIC=POSIX steam steam://rungameid/520

My question now: Where do we report bugs? Are the forums for reporting bugs or is there a bugtracker where we can report them?
It's not only locale related. It could be that you are running the game on an unsupported intel video card.
I tried to launch TF2 with radeon open source drivers, but all I get is black screen with playing music. In terminal I get this: radeon: The kernel rejected CS, see dmesg for more information. Any solution for this?
dakira a écrit :
Okay everyone. This is a problem with locales obviously. I'd guess it has to do with different number-formats in different regions. Like the decimal point being a comma outside English speaking countries.

Yes. They call functions this way: doSomething(float x, float y, ...). Now you can probably see the problem, they read the decimal point from somewhere (probably to create correct output for messages like errors or documentation). If its point then the function call looks like doSomething(3.14, 2.7) which is correct. If its comma the call is doSomething(3,14, 2,7), as you can see now they call 4 parameters instead of 2 and that causes errors.

That's actually a pretty dumb bug. I've already seen something like this in a CAD lib...
I take it if the HD 2000 is unsupported they're not even going to bother fixing this bug? Looks like I'll be keeping a Windows install after all. :/ Will this bug happen with every Source game? The HD 2000 is good enough to play TF2, CS:S, and GMod so I don't know why they don't fix it.
Having the same issue on a 680 GTX
dakira a écrit :
My question now: Where do we report bugs? Are the forums for reporting bugs or is there a bugtracker where we can report them?

You can't. That's the point of the limited beta. Only those 1000 people can report bugs. Don't worry, they have found this one already.
< >
Affichage des commentaires 1 à 15 sur 88
Par page : 1530 50

Posté le 19 nov. 2012 à 1h41
Messages : 88