Hi Stefan/Dan,
following a couple of answers.
1) Apparently rendering is not multi-threaded. I've run the process as specified by Stefan and saved std::err on a file. The command grep ":d3d9:" /home/ema/sc2.log.txt | sed 's/:.*//g' | sort -u | uniq -c Produces only one value.
2) Stefan, do you have any hint on where we should start optimizing the calls of D3D -> OpenGL functions? Where do we waste time/CPU cycles?
3) Setting affinity is a "game changer". I have the following FPS on the exact same game replay: - all Ultra, Full HD (with affinity on one core) 20~22 FPS - all Ultra, Full HD (without affinity) 9~10 FPS - all Ultra, shaders Low, Full HD (with affinity on one core) 50~60 FPS - all Ultra, shaders Low, Full HD (without affinity) 20~25 FPS (StarCraft II allows to print FPS in real time pressing Ctrl+Alt+F). Apparently setting affinity makes that core usage (and speed) to 100%. My system is an AMD Phenom II X4 965 BE, nVidia 470 GTX (260.19.06), 8 GB Ram, Ubuntu 10.10 x86-64. Wine is version wine-1.3.11 To set affinity I'm using a simple executable (written in C++), if you want I can share that as well.
Thanks again, Cheers,
Ps. On a side note it appears that the larger the map, the lower the FPS, even if technically speaking the number of objects are supposed to be similar.
On 10/01/11 15:45, Dan Kegel wrote:
emaentra@ngi.it wrote:
If during my tests I set the affinity of the executable (and subsequently all its threads) to a particular core I have to say that core gets fully used and FPS are better than general
That's interesting.
what cpu, gpu, and version of wine do you have, and what is the fps before and after pinning the game to one cpu?
You should use, say, the fps on launching into one of the default scenarios without touching anything so that we can get a reproducible measurement. Tell us what mouseclicks to use to replicate your measurement.
Or, if you think it's needed, right after launch, select all units and have them start moving, and use the lowest fps seen during those few seconds.