Steam for Linux > Γενικές συζητήσεις > Λεπτομέρειες θέματος
8 Dimensional Octagon 5 Δεκ, 2012 @ 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.
Εμφάνιση 1-15 από 15 σχόλια
< >
spantherix 5 Δεκ, 2012 @ 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
axeolin 6 Δεκ, 2012 @ 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 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.
mruuh 6 Δεκ, 2012 @ 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.
[Linux] MrSchism 6 Δεκ, 2012 @ 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.
Systematic Chaos 6 Δεκ, 2012 @ 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.
8 Dimensional Octagon 6 Δεκ, 2012 @ 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.
Τελευταία επεξεργασία από 8 Dimensional Octagon; 6 Δεκ, 2012 @ 4:57πμ
play3man 6 Δεκ, 2012 @ 5:50πμ 
So, let set required OpenGL version to 2.1!
yabba 6 Δεκ, 2012 @ 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.
Τελευταία επεξεργασία από yabba; 6 Δεκ, 2012 @ 7:58πμ
8 Dimensional Octagon 6 Δεκ, 2012 @ 8:36πμ 
Sorry, I should have been clearer, its directx capablity is like how winelib handles directx.
yabba 6 Δεκ, 2012 @ 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.
Fuzz 6 Δεκ, 2012 @ 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.
Yulike 6 Δεκ, 2012 @ 2:07μμ 
If you read Faster Zombies! it explains a little about Valves porting techniques.

http://blogs.valvesoftware.com/linux/faster-zombies/
Yulike 6 Δεκ, 2012 @ 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.
Reisen Udongein Inaba [因幡] 6 Δεκ, 2012 @ 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 6 Δεκ, 2012 @ 2:28μμ 
I wonder if this abstraction layer is really a dynamic translator or something more like a wrapper of the OpenGL calls...
Εμφάνιση 1-15 από 15 σχόλια
< >
Ανά σελίδα: 15 30 50
Ημ/νία ανάρτησης: 5 Δεκ, 2012 @ 2:13μμ
Αναρτήσεις: 15