Steam for Linux

Steam for Linux

Jenny of Worms 2012년 12월 5일 오후 2시 13분
HUGE TF2 performance increase
On my computer (AMD e-300 APU) playing TF2 yielded about 1-2 FPS, after decreasing graphics settings all the way, it was at about 3-5 FPS. After adding -dxlevel 80 to the command line, I had it at a playable 10-15 FPS.
< >
15개 댓글 중 1-15개 표시
Clarissa1986 2012년 12월 5일 오후 11시 56분 
dxlevel? I thought it was an OpenGL port? why does your direct x level command work then? Is valve only using emulation of directX through Wine.org like technology? x.x
76561198076225808 2012년 12월 6일 오전 12시 25분 
spantherixGER님이 먼저 게시:
dxlevel? I thought it was an OpenGL port? why does your direct x level command work then? Is valve only using emulation of directX through {링크가 삭제되었습니다} like technology? x.x

It's not like wine. AIUI they effectively translate from directx->opengl in a way that should get near native performance.

Same thing they did on the Mac.
mruuh 2012년 12월 6일 오전 1시 10분 
The dxlevel switch is probably hardcoded deep inside source engine to enable/disable effects corresponding to what various directx versions support. On linux this probably toggles the opengl implementations of these effects.
SinSchism 2012년 12월 6일 오전 1시 30분 
mruuh님이 먼저 게시:
The dxlevel switch is probably hardcoded deep inside source engine to enable/disable effects corresponding to what various directx versions support. On linux this probably toggles the opengl implementations of these effects.

Makes sense. I'll give it a go.
Vomit Spirit 2012년 12월 6일 오전 4시 43분 
My fps did not changed. But TF2 load time reduced to reasonable. No longer hangs after closing settings dialog. Also in-steam browser no longer hangs showing mouse hover texts. Big development.
Jenny of Worms 2012년 12월 6일 오전 4시 48분 
axeolin님이 먼저 게시:
spantherixGER님이 먼저 게시:
dxlevel? I thought it was an OpenGL port? why does your direct x level command work then? Is valve only using emulation of directX through Wine.org like technology? x.x

It's not like wine. AIUI they effectively translate from directx->opengl in a way that should get near native performance.

Same thing they did on the Mac.
Actually it is like wine, wine's translator just isn't as good as source's apparently.
Jenny of Worms 님이 마지막으로 수정; 2012년 12월 6일 오전 4시 57분
play3man 2012년 12월 6일 오전 5시 50분 
So, let set required OpenGL version to 2.1!
Michael 2012년 12월 6일 오전 7시 53분 
brpylko Ubuntu 12.10 64 bit님이 먼저 게시:
Actually it is like wine, wine's translator just isn't as good as source's apparently.

It's not like wine. WIne is running directx and windows dlls in order to run a windows binary.

Steam is running native linux binaries.

If Steam on linux were like wine, they would have just installed the windows version of TF2.

There are similar "run windows programs on Mac" too, which Steam on Mac is not using.
Michael 님이 마지막으로 수정; 2012년 12월 6일 오전 7시 58분
Jenny of Worms 2012년 12월 6일 오전 8시 36분 
Sorry, I should have been clearer, its directx capablity is like how winelib handles directx.
Michael 2012년 12월 6일 오전 10시 28분 
brpylko Ubuntu 12.10 64 bit님이 먼저 게시:
Sorry, I should have been clearer, its directx capablity is like how winelib handles directx.

rbarris worked on the port and posted some info to SPUF at the time.

Unfortunately SPUF is down (actually not sure why that's unfortunate, but ...)

The thread is called "Is Source on OS X really openGL native?" if you want to google later.

Here's some quotes though

In response to someone saying "sounds like wine?"

He said "No. With Wine, a Windows-built .exe is loaded into a UNIX process and then tricks are done to make to able to run.

On Mac Source, all of the source code has been compiled native. Specific modules have been replaced with ones that can drive OS X API's, like graphics and sound. All the OpenGL code lives in a little lib called "shaderapidx9" which is shorthand for "the shading subsystem that can run on dx9-class hardware". That's sort of the grand central station for graphics API traffic coming out of the engine and down into the OS&driver."

And, speaking in general about how it worked he said

"I wrote the native OpenGL module for Source Mac. It presents a DX9 compatible interface to the engine, engine calls me, I call GL, dots appear"

To me that's not like wine, especially not in the context that the question was asked at the top of the thread. YMMV.

But, I'm assuming they've done a similar thing for Linux as Mac. It's not really clear if that's the case from the talks I've watched and blog posts on Valve Linux, but the fact things like dxlevel work suggests they might have.
Moldy Fuzz 2012년 12월 6일 오후 1시 50분 
Everything I've read about it says they are, effectively, converting DX calls into OpenGL calls on the fly. The game is still written using DirectX.
CJ777 2012년 12월 6일 오후 2시 07분 
If you read Faster Zombies! it explains a little about Valves porting techniques.

http://blogs.valvesoftware.com/linux/faster-zombies/
CJ777 2012년 12월 6일 오후 2시 19분 
Here you go;

http://blogs.valvesoftware.com/linux/faster-zombies/#comment-3986

Valve Linux team says:
August 2, 2012 at 3:00 pm
We use a modified abstraction layer (based on the original Mac OS X work) that translates Direct3D calls to the proper OpenGL calls. This layer has received the most work but changes have also been made above this layer that resulted in improved performance.
Kaede Kuroi [黒い楓] 2012년 12월 6일 오후 2시 26분 
Fuzz님이 먼저 게시:
Everything I've read about it says they are, effectively, converting DX calls into OpenGL calls on the fly. The game is still written using DirectX.

That is true. In fact, it probably would have been better if they just wrapped it in Wine, considering the fact that it's just painful to play with a dual core processor.
Hiroghkk 2012년 12월 6일 오후 2시 28분 
I wonder if this abstraction layer is really a dynamic translator or something more like a wrapper of the OpenGL calls...
< >
15개 댓글 중 1-15개 표시
페이지당 표시 개수: 1530 50

게시된 날짜: 2012년 12월 5일 오후 2시 13분
게시글: 15