Thanks for the tip, James! Disabling all the debugging had a much bigger impact than I would have expected. I've included my observations and comments below, in hope that they might be of use to the devs working on DX.
The Counter-Strike: Source Video Stress Test is now giving me 15.74fps in 1024x768 windowed mode (vs. 24 in Cedega and 44 in Win98). It's a definite step in the right direction, but still a little too low to prevent you from getting shot by any newb. :) I get the same speed at lower resolutions, which indicates that I'm CPU-limited. I can believe that, since it's pegged-out the entire time I run the test.
I get pretty much the same performance whether I am windowing the game by setting wine to emulate a desktop, or just passing -window to the hl2.exe (15.2fps).
The odd thing to me is: I get the same speed when running in fullscreen mode. This is even the case if I used XRandR to set my desktop to the same resolution before starting Steam, so that I don't end up accidentally scrolling across my virtual desktop when I move the mouse down or to the right. Doing that is also a help because it stops my newsticker from drawing over the top of the game screen, but it seems to have no impact on performance.
Do OpenGL applications typically perform the same in windowed mode as fullscreen mode? My experience programming with DirectX made me expect fullscreen to run faster since the video card only has to flip the backbuffer pointer instead of blitting from one chunk of memory to another. Of course, that all being handled by the video card, I suppose this too is probably just a side-effect of my CPU-limited speed.
Here are the parameters I'm feeding to CS:S by the way, in case anyone's interested: "-heapsize 512000 -fullscreen -width 1024 -height 768". I've tried passing "-dxlevel 70" to the hl2.exe, but don't see much if any performance difference. It is interesting to not that if you don't pass this parameter, you will see little white boxes indicating each light source. These boxes aren't clipped by any object.
Passing "-dxlevel 80" causes the menu screen to come up completely white, making it unuseable. Forcing DirectX 8.1 or 9.0 has the same white-screen effect.
Restarting CS:S without exiting Steam completely can have flaky results. It might be related to the amount of time it actually takes the game to cleanup and exit. I've noticed that right after exiting the game and then exiting Steam, it can take several minutes or longer (of maxed out CPU utilization) before a command prompt returns.
Visually, I would say it looks better than I recall getting from Cedega. The textures on the monoliths were always plain and flat when I was running Cedega. I'm tempted to renew my Cedega subscription to make sure I'm remembering right.
Anyway, it's looking very promising. Keep up the great work!
-Jesse
James Liggett wrote:
I have single player HL2 running decent. Not quite excellent, but playable. Try running steam with this command:
WINEDEBUG="-all" wine steam.exe
And you should get anywhere from 10-30 FPS. It's not the best in the world, but at least you can play. :) I have started a new game, and I am now in the beginning of the car sequence, and aside from some textures being lit up and the flashlight not working, it's pretty nice. But, beware of problems with pixel shaders. The make CS and HL2 deathmatch totally useless (they give a white screen in menu. It's not frozen, but you can't see anything.) I don't see that behavior with single player because of the animated menus. Plus, pixel shaders screw things up big time anyway. It inverts colors and makes it look like NPCs are holding tree trunks. I'll put up some shots up later so you can see what I mean.
James