[Projekt] BFBC2 Probleme mit nicht genutzten CPU-Kernen beheben!

multimolti

Software-Overclocker(in)
Hallo! Ich wollte hier mal ein Projekt starten, brauche dazu aber ein bisschen Unterstützung von euch...

Problem:
Bei einigen Leuten läuft Bad Company 2 (Frostbite-Engine) nicht so gut, wie es könnte, da die CPU nicht vernünftig ausgelastet wird. Dies passiert bei manchen Quadcores, von denen nur 2 Kerne ausgelastet werden, oder von Prozessoren mit 4 Kernen und SMT/HTT (4 virtuelle Kerne), also 8 Kernen.
Das dürfte eigentlich, laut offizieller Ansage von DICE, nicht passieren:
DICE is very proud of the parallelized engine since 2-8 parallel threads are supported for using full capacity of a Core i7 e.g..
Auch werden bei manchen Spielern mit Dualcore CPUs beide Kerne bei niedriger Grafikeinstellung und FPS-Zahl nur zu 50% ausgelastet. Gleiche Grafikkarten mit Quadcores erreichen deutlich höhere FPS-Zahlen, also scheint die CPU die Bremse zu sein. Warum dann beide Kerne nur zu 50% ausgelastet sind ist die Frage.

Theorie:
Die Frostbite-Engine erkennt beim Start die Anzahl der CPU-Kerne und optimiert dementsprechend die Anzahl benutzter Threads. Da ein i7 aber nur 4 Kerne hat, dank SMT/HTT aber 8 Threads gleichzeitig ausführen kann, erkennt die Frostbite-Engine auch nur 4 Kerne und startet dementsprechend 4 Threads. Somit bleiben die vier virtuellen Kerne ungenutzt.
Wie das Problem mit einem Quadcore und nur zwei ausgenutzten Kernen zustande kommt, wird dadurch allerdings nicht erklärt.

Lösungsansatz 1:
Verschiedene Websites und Foren behaupten, die CPU-Auslastung ließe sich durch den Startparameter "+fullproc" besser auf die Kerne verteilen.
Bei PCGHX-User D!str(+)yer hat dies jedoch nicht geholfen, wie folgender Screenshot zeigt:

Allerdings gibt es bei einem solchen System auch keine nennenswerten Performanceprobleme.

Lösungsansatz 2:
Vielleicht funktioniert die Frostbite-Engine mit nur 2 Threads einfach nicht gut, da sogar die Konsolen mehr Kerne haben (XBox 360: 3, PS3: 6). Daher könnte die Performance eventuell verbessert werden, wenn die Engine dazu gezwungen wird, mehr Threads zu benutzen, als Kerne vorliegen.
Dies würde bei dem Problem mit einem Dualcore und nur 50% Auslastung, einem Quadcore mit nur 2 benutzten Kernen und bei den Quadcores mit SMT/HTT helfen.

Weiteres Vorgehen 1:
Ich habe bisher keinen Weg gefunden, die Engine dazu zu zwingen, mehr Threads zu benutzen als sie selber möchte. Der einfache Versuch, die Umgebungsvariable NUMBER_OF_PROCESSORS zu verändern, scheint keine Wirkung gehabt zu haben, zumindest nicht bei meinem Quadcore (die Engine hat weiterhin 4 Threads benutzt).
Eventuell könnten andere mit i7s oder Dualcores das noch mal überprüfen?

Weiteres Vorgehen 2:
Um die Theorie zu überprüfen, müsste man einen Prozessor mit 8 Threads, aber auch wirklichen 8 Kernen besitzen. Da so etwas bisher nicht für normale Benutzer existiert, habe ich mir einen solchen Prozessor "gebastelt" (Virtual Box + Windows 7 + 8 CPU-Kerne + 2048MB RAM).
Das scheint soweit alles zu funktionieren, sogar die Performance in der VM mit den 8 Kernen ist annähernd bei der des echten Prozessors (1.9% Verlust).

Jetzt müsste ich da Bad Company 2 zum Laufen bringen, um die Theorie zu bestätigen.

Das ist der momentane Status des Projekts, ich würde mich über Infos von Leuten mit Performance-Problemen wegen schlechter CPU-Auslastung freuen, Screenshots und so wären super!
Falls jemand noch Ideen hat, was man versuchen könnte wäre das auch prima!
 
Schön zu wissen, dass wir hier solche "Cracks" als Forenmitglieder haben =). Hoffentlich kannst du den betroffenen helfen!
 
Habe auch nur 50 % CPU Last und max. 50% GPU Auslastung. Ingame hatte ich auch häufig nur um die 35 % :(
Dann kann das auch nicht flüssig laufen ^^

Pic im Anhang ;)
 
Habe auch nur 50 % CPU Last und max. 50% GPU Auslastung. Ingame hatte ich auch häufig nur um die 35 % :(
Dann kann das auch nicht flüssig laufen ^^

Pic im Anhang ;)

Hmm, bei dir sollte so ein Problem nicht bestehen. Bei meinem Quadcore habe ich auch dauerhaft auf 4 Kernen 45% Auslastung, oder wenn ich es nur auf zweien laufen lasse, auf den beiden eben 90% und auf den anderen 0%.
Das mit der GPU-Last habe ich auch festgestellt, meine GTX 260 gammelt ingame bei 60% rum und liefert trotzdem nur 35 FPS, ist also nicht so, dass die unterfordert wäre.
 
Hi,
habe jetzt auch mal ein paar Screens zur Auslastung gemacht. Allerdings ohne die GPU-Auslastung zu protokollieren. (10-15% sind für das ScreenCapturen abzuziehen)

Hab die Screens komprimiert damit es net zu viel wird.

Bei mir werden alle 4 Kerne gleichmäßig angesprochen, der RAM-Verbrauch ist auch ganz gut.

Hier die Auslastung bei, Laden der Demo:

attachment.php


So sieht es beim Serverconnect aus :

attachment.php


Beim ServerJoin geht die Auslastung bis zum Druck des "Join-Buttons" auf 100% hoch:

attachment.php


In Game ist eigentlich alles wieder beim Alten, die Demo verbraucht die ganze Zeit über relativ gleichviel Ressourcen:

attachment.php
 
D!str(+)yer probier mal +fullproc und nicht - bei mir hat das gefunzt bei meinem Bruder auch dagegen mit - nich.
Zum vergleich: Links mit - und rechts mit +
 
Achso habs mir im Sammelthread net genau durchgelesen. Muss es wohl auf die Vollversion warten wobei ich selbst da mit den besseren Texturen nicht glauben kann dass ein i7+HT voll ausgelastet werden kann.
 
D!str(+)yer probier mal +fullproc und nicht - bei mir hat das gefunzt bei meinem Bruder auch dagegen mit - nich.
Zum vergleich: Links mit - und rechts mit +


Hatte ich probiert, hat keine Auswirkung ;)

Ich wollt nur eben anmerken, ich habe keine Performance Probleme, lediglich habe ich festgestellt das die HTT Einheiten bei mir nicht genutzt werden :D
 
Hm musste grade festellen dass es bei mir laut den Screens von mir mit - eine höhere Aulastung gab wobei ich die Ergebnisse nichtmehr rekonstruieren kann jetzt ists auch bei mit mit + und mit - gleich...
 
Also bei mir ists so :

Ich hab ein Intel Core i7 720Q
und ne GTX 260 M
Dazu hab ich noch 4GB Ram
und Windows 7
das ganze ist Laptop Hardware und ist im einem Alienware M15x Laptop verbaut also müsste meiner Meinung nach gut zusammenpassen.

Ich habe auch das Problem das mein CPU während ich BFBC2 spiel nur auf 20% Leistung läuft obwohl ich eine Niedrige Framerate habe (sogar auf Low Settings;ist auf low aber fast spielbar ca 20- 25 FPS) In Den Screens sind alle Settings auf High außer AAx1 und AFx1
Man kann sehen dass Core 1 und 3 auf ca 60% laufen und Core 2 und 4 auf ca 20 % rumgammeln .
Die Turbo Funktion der Cores ist bei Core1 Minimal aktiviert bei Core 2 auf ca 20 % und bei 3 und 4 garnicht aktiviert .

Bei Screen 2 Kann man das selbe erkennen. Die Spitze Die bei allen 8 Abteilungen zu sehen ist kam beim Drücken des Join Now Knopfes zustande .

Ich frage mich jez auch wie Ich mein CPU dazu bringe die Leistung zu bringen die nötig ist um das Game flüssig darzustellen. Weil er ja offensichtlich nicht unterfordert ist.

Freue mich wenn ihr eine Lösung zu dem Problem habt oder mir so schon en Paar Tips geben könnt was ich machen kann damit das Spiel besser läuft. Hoffe mit dem Release kommt noch mal ne Besserung der Performance :)

Freundliche Grüße und Danke im Vorraus

RaGe

http://img153.imageshack.us/img153/1258/cpuauslastung2.jpg
By de_ at 2010-02-17

http://img153.imageshack.us/img153/974/cpuauslastung.png
By de_ at 2010-02-17
 
also ich habe eine theorie...

der netzwerk code scheint das problem zu sein. geht mal in den serverbrowser und wählt nen server mit gutem pin(15 oder so) und 0 spielern aus. ich habe alles auf high 4xAA und 16AF und habe in wirklich jeder situation locker 50fps und mehr.
gut da hab ich auch weniger grafischen aufwand da keine personen gerendert werden aber trotzdem ist der performance schub sehr auffällig.

in einem gefecht mit vielen spielern habe ich zwischen 30 und teilweise schlimmstenfalls nur 20fps.
glaube das hier optimiert werden muss und da das problem liegt.
 
also ich habe eine theorie...

der netzwerk code scheint das problem zu sein. geht mal in den serverbrowser und wählt nen server mit gutem pin(15 oder so) und 0 spielern aus. ich habe alles auf high 4xAA und 16AF und habe in wirklich jeder situation locker 50fps und mehr.
gut da hab ich auch weniger grafischen aufwand da keine personen gerendert werden aber trotzdem ist der performance schub sehr auffällig.

in einem gefecht mit vielen spielern habe ich zwischen 30 und teilweise schlimmstenfalls nur 20fps.
glaube das hier optimiert werden muss und da das problem liegt.

Das wäre eine Idee. Schau mal, wie deine CPU-Auslastung hochgeht, wenn du auf den Server Browser gehst und er die Liste aktualisiert, das bestätigt die Theorie.
 
habe gerade auf die version 517403 geupdatet und ich kann schon einen krassen performance anstieg wahrnehmen...

cpu und gpu auslastung ist viel viel besser geworden und auf nem vollen 32 spieler server habe ich nun zwischen 50 und 70fps :daumen:

also braucht sich glaub ich keiner mehr sorgen machen... :)
 
Zuletzt bearbeitet:
Also ich hab jez auch gepatcht und meine CPU ist jez von 20% Leistung auf 40% Hochgegangen das langt anscheinend aber immer noch net -.-

hab heute ingame mit nem Kerl geredet der en i7 920 hat und genauso Probleme hat wie ich. (kann eig net sein dass man mit i7 920(auch allgemein i7 ) probleme hat das spiel flüssig zu spielen. Ich hab mir heute mal Speedfan gezogen weil mir aufgefallen ist dass meine Lüfter nicht richtig angehn wenn der CPU auf 40 % läuft. der war dann bei 70°C. Nachdem ich Speedfan drauf hatte hat sich die Temperatur wieder auf normale 60° gesenkt im Spiel kams mir etwas flüssiger vor.
Jetzt kommt das komische an der Sache :
Als ich während ich BFBC2 gezockt hab aufn Desktop bin ist die Prozessorleistung durch verschieden Offene Programme auf über 60 % gestiegen (hatte ich noch nie aber soll ja eig so sein wenn BFBC2 läuft. Als ich dann wieder zurück zum Spiel bin hatte ich "akzeptale" FPS (25-30) und konnte endlich mal flüssig zocken. Der ganze Spaß ging aber nur ca 10-15 sekunden danach isses wieder auf 15 eingebrochen und blieb da auch. Das ganze hat sich wiederholt wenn ich aufn Desktop bin. Jez Frag ich mich warum sich das Spiel nicht die Prozessor Leistung nimmt die es braucht . Ingame ist die Leistung auf 30-40% . Warum muss ich mit 15 FPS zocken wenn mir noch so viel Leistung zur Verfügung steht ?
Naja fest steht das alle Core2Duo Core2Quad und AMD Prozessoren gut laufen das spiel ist flüssig
und einige (vllt ja alle) i7s geben einfach kein Gas und man guckt nur zu wie man dauernd gekillt wird weil das aimen unmöglich ist :P
hoffe das kriegen die hin. Hab ja jez gemerkt dass mein Prozessor das Zeug hat das Spiel Flüssig laufen zu lassen auf 50% Leistung (Obwohls ja net ganz optimiert ist das Game denk ich mal )

bin aber eig ziemlich zuversichtlich :P

Ich Will Das Zocken :) Das Spiel gefällt mir ohne Ruckler sehr gut . Bin BF fan :)

Würde mir wünschen das Mein CPU schön auf 100% hochgeht wie beim Poster oben drüber dann würde das gut laufen und net nur auf low :)

EDIT: Hab grad mal alles auf HIGH gestellt also alles an und 16xAF 1xAA is komischerweise geblieben aber egal . Auf jedenfall hat ich nurn FPS verlust von ca 10 und die Prozessorleistung ist wieder auf 25% GEFALLEN obwohl ich die Settings drastisch erhöht hab. Teilweise liefs recht flüssig aber manchmal nu unter 10 frames. Naja wenn der Prozessor iwann mal auf die Tube drückt dann geht auch High :)

Wenn ihr mir Tips geben könnt wie ich die Leistung hochbekomm oder von Dice was kommt dann bin ich sehr dankbar :)

LG RaGe
 
Zuletzt bearbeitet:
Ihr habt mich neugierig gemacht.. hab des auch kurz ausprobiert, ich muß nun zeigen das er alle Kerne gut verwendet. Wusste gar nicht ..das Game hatte nen Update...

Zu der Leistung muß ich sagen, ist die sehr viel besser geworden..ich hatte ja auch nen Ruckeln.. mit i7 920-3,8ghz und ner gtx285.

Kann aber nicht weiter probieren da ich erstmal AvP zocken muss, das läuft nun endlich doch^^
 
Zurück