[Bug 30821] New: braid: turning AlwaysOffscreen on results in severe FPS drop

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jun 2 03:50:17 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=30821

             Bug #: 30821
           Summary: braid: turning AlwaysOffscreen on results in severe
                    FPS drop
           Product: Wine
           Version: 1.5.5
          Platform: x86
               URL: steam://install/26810
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: directx-d3d
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: mooroon2 at mail.ru
                CC: hverbeet at gmail.com, stefan at codeweavers.com
    Classification: Unclassified


Demo version of the game is also affected (may be downloaded free-of-charge on
Steam; it is also available for direct download in a number of places, for
example here: http://news.bigdownload.com/2009/04/10/download-braid-demo/ ). 

Reproducing this bug with the demo version is somewhat hard as its built-in
resolution validator fails to start the game up in fullscreen mode using higher
resolutions (1680x1050, 1920x1050, 1920x1200) resulting the game starting up in
1280x1024 mode. FPS drop in low resolutions could be observed as well, but it's
not that noticeable due to games built-in FPS limiter that caps FPS at 60.

Bug summary pretty much describes the problem: on my PC there is a non-minor
performance drop in Braid when I edit registry and set "AlwaysOffscreen" to be
"enabled". My PC is equipped with AMD FX 8120 CPU, 8GB of RAM and GeForce GTX
550 Ti GPU with 1GB VRAM, so it's not hardware that is incapable of handling
the game well, it is a bug in Wine (or in GPU drivers) that causes huge FPS
drop when offscreen FBO's are being used as a main render target.

Game has built-in FPS limiter which is usually set to 60 FPS (can be forced to
always be 60 FPS using command line parameter) thus it is hard to tell what
could the FPS be whith ao=disabled, but as least it stays at stable 60 FPS no
matter the resolution I use (tested up to 1920x1200 for "fullscreen" mode).
With ao=enabled I've got FPS dropped down to around 25-30 for fullscreen
1680x1050 and down to around 20-25 for fullscreen 1920x1200. With "windowed"
mode things are a little bit strange: in case ao=disabled and I start the game
up in 1680x1050 windowed mode - FPS is ~30, but if I switch the game into
fullscreen mode and then back to windowed mode by pressing ALT+ENTER twice -
FPS increases up to 60 (i.e. to the cap level) and stays there no matter how
much times I switch between fullscreen and windowed modes by pressing
ALT+ENTER.

Long things short: higher resolutions like 1680x1050+ plus ao=enabled always
results in too low FPS for game to be playable; ao=disabled plus higher
resolutions plus the game started up in fullscreen mode results in playable FPS
capped to 60 by built-in in-game FPS limiter.

============ Start of "How to reproduce" section ==============

a) Create a new Wine prefix, install native d3dx9_39 or d3dx9_36 into it as
Braid crashes with Wine's implementation of this lib.

b) Configure prefix to use virtual desktop sized 1680x1050. This step is
optional but it is convenient in case you have multi-monitor setup and don't
want Wine to mess up your desktop resolution.

c) Start the game up with the command line like this:

# wine [path to game install folder]\braid.exe -width 1680 -height 1050 -60fps
-no_vsync

d) As soon as game start up and displays staring location - press "0" on your
keyboard. It would activete in-game FPS counter. Notice that the resulting FPS
is capped at around 60 with the default prefix registry settings.

e) Quit the game and edit the registry to set "AlwaysOffscreen" into "enabled".
Start up the game once again with the same command line, activate FPS counter
and notice that this time FPS is around 30. Try moving your character and
notice that it moves way slowly than it should.

f) Quit the game, edit the registry once again to set ao=disabled. Start up the
game again and make sure FPS is back to normal (capped at 60). Quit the game
and re-start it using following command line:

# wine [path to game install folder]\braid.exe -width 1680 -height 1050 -60fps
-no_vsync -windowed

Activate FPS counter and notice that FPS is again way lower than it should be,
around ~30. Press ALT+ENTER to switch the game into fullscreen mode. Notice
that the FPS is back to being capped at around 60. Press ALT+ENTER once again
to switch the game back into using windowed mode. Notice that the FPS remains
what is should capped at around 60.

============ End of "How to reproduce" section ==============

This bug isn't "major" ATM as default prefix settings do not trigger low FPS in
this game, but it would change as soon as AlwaysOffscreen rendering mode would
be switched to be default in Wine - and I've seen discussions on wine-devel
about making it default in near future. 

I have no idea if it is an expected for FPS to drop from "more than 60" down to
"around 25-30" for AO render mode but if that's the case it should be
considered not to make it default in near future. On the other hand, if it's
the problem in current wined3d implementation - it should be addressed. If this
one is a GPU dirvers bug - it would be better for up all to isolate it and
report no nVIDIA.

P.S. Had tested for this bug to happen with several nVIDIA GPU drivers
versions, starting from stable 275.09.07 and up to beta 302.11. Bug happen in
all tested versions.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list