Processor Affinities
#1

hello everyone. Can someone please tell me if any of you have had this problem and also please tell me how you dealt with it.

for some reason, my game crashes at random times when i'm playing '46. whether i'm in the middle of a mission or when i'm selecting something in a menu.

what happens is, it simply freezes for a second. it then goes to a black screen for a second and then white. i see the curser which is the vista's little blue spinning "loading" circle ring thing, but i can't move it. the mouse doesn't respond to it, so i ctrl+alt+del. for a second i see the "program is not responding" window, but then it goes to the "log out", "shutdown", ect option screen.

my computer doesn't do this with any of my other games and has seemed to become more frequent in doing it. i utterly love this game and this is starting to make me mad.

my computer's pretty good.

intel 2 quad core processor
3 gigs of ram
nvidia gt 9800
windows vista home premium

is it my drivers or something?

PLEASE PLEASE PLEASE PLEASE SOMEONE HELP ME!!!!!!
Reply
#2

Two suggestions, rather naive ones, but I'm no Woz and that's a fact.

First, which is probably not going to work, try compatibility settings. Perhaps Vista is the problem. Right click Il-2 exe, compatibility, and try for Win 98, or 2000, etc.

The other thing, which might actually be it, is that you have a quad core processor which Il-2 is not designed to support. I did a quick check on Google and found the following thread:

QUOTE:

Multi Core CPU Tweak for IL2
I got an e-mail from a friend of mine regarding a multi-core CPU fix. Has anyone heard of this for multi-core CPU's:

Ken,

Do you know about this "processaffinitymask" thing?

go into your conf.in, look for the RTS section. Find:

";processaffinitymask=0"

change it to:

"processaffinitymask=3"

both without the quotes, second one with the semi-colen removed.

What this does is changes the way the game runs from one to two processors.

Check it out!

UNQUOTE

Removing the semicolon just before process affinity mask seems to be highly important to make Il-2 work with multi-core processors. I don't know what the 3 does. Should have researched this more carefully before responding. But there's something to try. If I come up with more, I'll let you know.
Reply
#3

Have installed 4.09bmods..

Is there anyway to run it with the old sounds and still use the 4/09bmods?


~S~
FS~Ilenini
Reply
#4

nodlew Wrote:Removing the semicolon just before process affinity mask seems to be highly important to make Il-2 work with multi-core processors. I don't know what the 3 does. Should have researched this more carefully before responding. But there's something to try. If I come up with more, I'll let you know.
To clear this bit up, this is how it works (AFAIK):

removing the semicolon activates the functions:
affinity=0 : OS decides which core(s) to give the job to
affinity=1 : core 0
affinity=2 : core 1
affinity=3 : core 0 + 1
affinity=4 : core 2
affinity=5 : core 2 + 0
affinity=6 : core 2 + 1
affinity=7 : core 2 + 1 + 0
affinity=8 : core 3
affinity=9 : core 3 + 0
affinity=10 : core 3 + 1
affinity=11 : core 3 + 2 + 0
affinity=12 : core 3 + 2
affinity=13 : core 3 + 2 + 0
affinity=14 : core 3 + 2 + 1
affinity=15 : core 3 + 2 + 1 + 0

Just so you know, the OS is pretty good at it, but if you wanna test, go ahead. Try benching each setting with BlackDeath track. Smile Wink
Reply
#5

For what it is worth I have found no advantage in setting processor affinities for IL-2.

With all unnecssary processes shut down (using FSAutostart) I ran the following tests:

No Processor affinities
Black Death Track
End Results 32.34.75.11 and 35.34.74.12
(run twice, at beginning and end, in case of any caching issues with run #1)

IL-2 only set to core 0 (ProcessorAffinty=1)
Black Death Track
End result 35.33.76.9

IL-2 set to core 0 and everything else possible set to core 1 (I used setaffinty.exe)
Black Death Track
End Result 32.34.74.10

As you can see the results were virtually identical.

Given that the BDT will return results for the same setup varying by 1 or 2 fps I'd say that there's no point in setting affinities, at least not on a dual core processor.

My rig:
ASUS A8N32 deluxe SLi mobo
AMD 64x2 3800+ CPU
2 x XFX 7800GT SLi 256Mb
2Gb Corsair low latency RAM 2-2-2-5
450w PSU
Windows XP SP2
Samsung 226BW 22" Widescreen 1680 x 1050
Saitek X52 HOTAS and Rudders
TrackIR4 and Pro Clip
Medusa surround sound headset

klem
Reply
#6

Just a word of warning about this affinity setting. You would be wise to do a frame rate test before and after you change the setting. I tried it recently and it cut the frame rate in my test mission from 325 down to 85!

Personally, I don't know anyone who uses it. You will see people once in a while post that it works (whatever that means) for them. However, I'm very skeptical about it. In any event, it actually HURT my system, so I set it back to the default.

Aviar
Reply
#7

check your drivers for your video card. I was having the same problem with my rig until I updated my drivers.
Vista has a known problem with Nvidia's current OpenGL driver and hasn't quite fixed it yet. In Microsoft's defense, this is a pretty old game and we need a vista patch for it from Oleg for the OpenGL portion as well as some other issues introduced by Vista.

Though I fly through the valley of death, I will fear no evil.....
For I am the meanest SOB in the valley!

[Image: JollySignature.jpg]
Reply
#8

I use ProcessAffinityMask=2 because imho its an advantage if your game got its own core to run on.
Reply
#9

nodlew Wrote:Multi Core CPU Tweak for IL2
I got an e-mail from a friend of mine regarding a multi-core CPU fix. Has anyone heard of this for multi-core CPU's:
I've heard, I am using AMD Dual core Optimizer Didn't have any improvement in performance but it sure help for game which have bad problem with dual core
For example run to fast or have LAG's
http://support.microsoft.com/default.as ... spid=11920 This is something similar for VISTA I think
I found it on this site http://www.nvnews.net/vbulletin/showthread.php?t=116865
But b4 you screw your system with this update read what ppl says bout it, not everyone like it.
nodlew Wrote:Do you know about this "processaffinitymask" thing?
go into your conf.in, look for the RTS section. Find:
";processaffinitymask=0"
change it to:
"processaffinitymask=3"

vpmedia Wrote:I use ProcessAffinityMask=2 because imho its an advantage if your game got its own core to run on.
Well I have made some comparison.
AMD Dual core 64x2 4000+, Nvidia8500GT, 2048 Ram.
When i make this test i played black death track usually I use this track often to compare performance between different settings i use it so often that i remember where and what FPS I've had.
During this test there was no performance boost at all regardless of core affinity.
I've had as usual 50 FPS at the beginning 28 FPS at second explosion 25 FPS when il2 shoot rackets at plane and building and the lowest FPS 15 when there was moment with friendly fire and collision in the mid air.
Almost forgot Il 2 settings everything maxed out except
"trees=0"
"water=0" its still in perfect mode so its using shaders (means its not so simple as directX)
"Efect=1"
"Landshading=2"(in perfect mode this will leave landshading as it is but will remove shadows from trees and buildings which is mean huge fps boost over palms during attack on pearl harbour and allow you to fly over Berlin very low at decent fps Big Grin)
"LandGeom=3"(for new dll which improve quality coastlines and visibility distance but cost something about 5 fps damn worth it Big Grin)

[Image: 20778749d9cfbda0.png]
While doing it i played "Black death track" And I Didn't notice any performance improvement.
But notice how high is load on single core when you set affinity to only one core. (image in the middle)
I am pretty sure that this is no good for long time. I mean its quite high load on 1 core only.
I don't know can processor work like this for long period or not. Someone more knowledgeable could take a part in discussion.

For now My advice is turn off Vsync OR force tripple buffer with Vsync.
And this is mandatory for multi cores DISABLE MULTITHREADING
Reply
#10

I posted a big segment on this a few months back.

This is the way the ProcessAffinityMask value works in IL2.

If it is commented out the OS will decide which cores to use. ie All cores.
"IL-2 is not a ,multithread application." True
IL-2 only uses 1 core" False.
so PAF....

=1 - core 0
=2 - core 1
=3 - core 0+1
=4 - core 2
=5 - core 0+2
=6 - core 1+2
=7 - core 0+1+2
=8 - core 3
=9 - core 0 + 3
=10 - core 1 + 3
=11 - core 0 + 2 + 3
=12 - core 2 + 3
=13 - core 0 + 2 + 3
=14 - core 1 + 2 + 3
=15 - core 0 + 1 + 2 + 3

commented out - all cores

If a core is enabled, it does NOT mean that core will be performing 100% while the other cores that are not enabled do nothing.
The enabled core needs an active thread to perform,
The disabled cores will be assigned tasks by the OS if needed.
There is only one way to switch off cores - the power switch - meaning all or nothing lol.

There was an long thread at SimHQ some time back exploring this(end 2005/beginning of 2006).

a '1' bit will enable the core, a '0' bit disables it.
Actual activity of cores can be checked through TaskManager. Keep in mind in general Windows OS runs hundreds of threads at the same time IL-2 runs.

A substantial part of IL-2 is written in Java which can use in excess of 100 threads. (source: Sun Microsystems) Shift-Tab opens the Java console in-game Yep that's where all those white messages come from.

Bitmask: 00000000000000000000000000000000 = Decimal 0
Processor affinity is off, and the load is distributed across all available processors.

Bitmask: 00000000000000000000000000000001 = Decimal 1
Processor 1 selected. The process will only run on processor 1.

Bitmask: 00000000000000000000000000000010 = Decimal 2
Processor 2 selected. The process will only run on processor 2.

Bitmask: 00000000000000000000000000000011 = Decimal 3
Processors 1 & 2 selected. The load is distributed across both processors, effectively the same as setting 0 above for Dual cores.

Because 0 puts the load across all processors and 3 puts the load on processor 1 and 2, they are essentially the same thing for Dual core CPUs.

For Quad core CPUs you can use more values:

Bitmask: 00000000000000000000000000000100 = Decimal 4
Processor 3 selected. The process will only run on processor 3.

Bitmask: 00000000000000000000000000001000 = Decimal 8
Processor 4 selected. The process will only run on processor 4.

And any combo between 0 and 15, for example:

Bitmask: 00000000000000000000000000000101 = Decimal 5
Processor 1 and 3 selected. The load is distributed across processor 1 and 3.

Bitmask: 00000000000000000000000000001111 = Decimal 15
Processor 1, 2, 3, and 4 selected. The load is distributed across all processors, 1, 2, 3, and 4.

Get the picture?



Basically, using a multi core processor in IL-2 has no real performance gain when you're talking about just the game, but........
If you use a multicore processor and assign different programs to each core, you get incredible results.

ie. I use an AMD Phenom 9850 quad core with the following settings.

IL-2 is running on Core 4
TS is running on Core 3
HL is running on Core 2
Windows uses Core 1

This is what processor affinity will do for you. Take the load off of the core that you're using for the game by assigning the game to use a core that isn't normally used. Windows, by default, will always try to use the first core (Core 0).

Hope this helps a bit.

Though I fly through the valley of death, I will fear no evil.....
For I am the meanest SOB in the valley!

[Image: JollySignature.jpg]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)