The online racing simulator
#1 - avih
Low grid framerate: CPU or GFX card?
Hi,

I'm using a bit of an outdated system (in the gaming aspect: AMD Athlon XP 2500+, FX5600 Ultra 128M, 1G ram, Win XP SP1), and while I'm generally pleased with LFS performance on such a system, I was wondering whether the lower framerates that I usually experience at the start of the race (15-25 FPS compared to about 50+ in race) is mostly due to the CPU (many higher resolution physics calculations due to the many near cars?) or mostly due to the limitations of the GFX card (high polygon count because of the many near cars, mirrors etc).

If you feel that the answer is more complex than what I suggested, feel free to elaborate
Any info would be appreciated.
thx.
#2 - dewyl
both of them
Mainly the CPU. You need to get a dual core CPU, then you'll have no problems... GFX is just the second thing...

( On my PC LFS runs about 130fps - 30 at start - Intel Pentium D805 CPU and a crappy old 9600xt. I had no problem at all)
#4 - avih
Quote from dewyl :both of them

Not a good answer...

Quote from Töki (HUN) :Mainly the CPU. You need to get a dual core CPU, then you'll have no problems... GFX is just the second thing...

( On my PC LFS runs about 130fps - 30 at start - Intel Pentium D805 CPU and a crappy old 9600xt. I had no problem at all)

I'd rather conclude that it's the GFX card then, since for 130 FPS in race you need a decent CPU which shouldn't go as low as 30 on the grid. Add the fact that your GFX card is rather old.. and the conclusion is as I mentioned. It's the GFX card.

Any other intelligible remarks?
#5 - Jakg
The start is wholly the CPU, i'm afraid.
#6 - KROM
Don't bother with a cpu, LFS doesn't support multicores one bit, I have a quadcore QX6700@3.2ghz and the game uses one core.
I also have 2x8800GTX in SLI. so GFX are covered.

20 A.I with me back of the grid = 45fps -60fps
20 people online back of grid = 60-75fps


From this we can conclude that the cpu is the limit here, so no matter what graphics card you power this game with, you will always be limited by the fact the game is not threaded for multicores.

The developer has said something about adding a threaded engine, but this is something that would have to come with a new version, as it will require a total re-write of the engine.

Also the A.I is broken if you ask me, they are thicker than a blonde convention, and just love to act like your cars not even there.
Untill then I have to put up with one core being used on my Quadcore and that limiting my frames.

Also worth a shout is the fact that when I go into a game , most times I have slightly poorer performance, if I pause the game with "p" and the Alt Tab out and back in, while watching the frames, it adds a good 40-60fps ?. I do this everytime I boot it.
#7 - avih
Quote from KROM :Don't bother with a cpu, LFS doesn't support multicores one bit, I have a quadcore QX6700@3.2ghz and the game uses one core.
I also have 2x8800GTX in SLI. so GFX are covered.

20 A.I with me back of the grid = 45fps -60fps
20 people online back of grid = 60-75fps


From this we can conclude that the cpu is the limit here, so no matter what graphics card you power this game with, you will always be limited by the fact the game is not threaded for multicores.

The developer has said something about adding a threaded engine, but this is something that would have to come with a new version, as it will require a total re-write of the engine.

Also the A.I is broken if you ask me, they are thicker than a blonde convention, and just love to act like your cars not even there.
Untill then I have to put up with one core being used on my Quadcore and that limiting my frames.

Also worth a shout is the fact that when I go into a game , most times I have slightly poorer performance, if I pause the game with "p" and the Alt Tab out and back in, while watching the frames, it adds a good 40-60fps ?. I do this everytime I boot it.

Thanks for your reply

Not sure how you concluded it's the CPU though..

Let me rephrase my question:
It's a known fact that LFS has a lower framerate when starting the race than in most in-race cases (I'd relate to online races without getting into the CPU of the AI cars for our discussion).

The question is: What changes on the grid compared to in-race?
- Is it much more CPU to handle more physics of cars which are near?
- Is it much more GFX processing due to higher polygon count of the many near cars or of the pits area? If it's the GFX processing, how much is the CPU involved in that increased processing, if at all?

If anyone got data as for the approximated percentage load increase of the CPU and of the GFX card on a full grid compared to a "normal" in-race scenario, I'd like to hear your comments.

Thanks again.
#8 - KROM
I thought I made it clear.

I have the power in GFX to run this game while playing battlefield 2, render those cars? erm My GFX eat them for dinner, example being a full grid on GTR2 is 127fps and the cars have more detail.

On the grid you have all the cars to render and the A.I to compute the A.I load on the cpu is high and the graphics need the cpu to pass tasks, so the GFX cards are needing cycles formt he cpu, that is maxed with A.I

Online this is less as theres no A.I to process and all the cpu does is work with the graphics cards to render and keep track of objects.

However my point and the one that answers you Question,
Even with just online racers, we see a bottleneck in graphics rendered at times, becuase the game is only fully using one core, while my other cores lay around twiddling their thumbs.

SO if I had to say whether this game need a better cpu or graphics to play smooth I would have to say neither, what it needs is multicore support, and even the developers know this.

After all, realtime damage, objects that can move, the timming system, rendering the cars/track, is just getting to much for the way the code uses the cpu.

This is often the case with games that change and adapt and grow.

I can't see what my 8800gtx's are doing with this game, because its being choked by a single core @3.2 , if it was optimized for dual and quad and used multi threads my frames would double, as load was handed to the other cores and the GFX cards could stretch their legs.

Do you understand? whats the point putting in new GFX cards if the engine bottlenecks the cpu anyway, and whats the point of a new cpu , when the engine fails to take advantage of it.

you see my point now, you question is hard to answer, but trust me when I say I run better looking games at much higher frames with ease with my GFX cards, but this game makes my quadcore as useless as a P4HT @3.2ghz.

and running 2x 8800gtx with a single core is cripping, just think of what my 3dmark 06 score would be if it could only use one core.?

Answered? or do we need to chat more?.



- Is it much more CPU to handle more physics of cars which are near? A :nope its the graphics doing more, and the cpu being asked more as they do. understand this?.

- Is it much more GFX processing due to higher polygon count of the many near cars or of the pits area? If it's the GFX processing, how much is the CPU involved in that increased processing, if at all? A: when the graphics on screen increase the cpu load rises as passing the renders is its job. load the graphics, you load the cpu, and in this case thats the issue, the cpu on one core fails to meet my 8800gtx's demands what with it being a packed single core, frames are lost as the wait times climb.
#9 - Jakg
Quote from KROM :but this game makes my quadcore as useless as a P4HT @3.2ghz.

I'm sure we've been through this before - your Quad Core is a MUCH better architecture than a P4 - Each core of yours is twice as fast as a single-core P4 3.2 GHz.
#10 - KROM
you are wrong in saying my core handles anymore data than any other core @ 3.2, why would it?( we process the same data dont we) its just a duo x2 do you have inside info on the way this code uses the current cpu's?. if any its minimal, Im maxing the core most times with SLI on.

OK heres the deal I'm going to run a single 8800gts 640 on a p4 3.2
then im going to run the same card on my Quad, but set the affinity to "0" (one core)

I have already done this, but I will again if you wish to see the results. I gained 590+ points in 06 using the quad


P4 3.2 dell desktop with 8800gts 640 = 6180 in the quad single core =6773

Singlecore quad with single 8800 GTX = 7900!! with 4 cores = 12.500 single card. 4 cores@3.4 dual 8800 = 17,890

So your correct in saying its better than a p4, but hell, thats splitting hairs, and is only something I used as an example in the first place


LET ME END THIS

Buying a new graphics card for my system would gain me no performance increase.
You buying a new quadcore for this game would be stupid (maybe not in the future)
So no-one here has ever seen this game rendered as fast as a dual 8800 whatever can render it, because the way the cpu is used prevents this at present.

there. So untill the code in this game catches up, performance can't be messured over a single cores performance. in other words if it used my pc I could tell you how it really runs.

Jakg is your quadcore running it better than say a dual core, or even a p4 3.8 -4ghz? mine aint.

My GFX cards are being blunted by the way this game uses the cpu, theres no other way of saying it. you try running 8800gtx sli on a single core. its suffers, yet I play this game like that, and it runs ok, if it uses the cpu wow, it would be something else. the full power of my pc would be unlocked.
#11 - avih
I see your point KROM and I understand that on a fast and balanced system, the CPU, or rather, the inability of LFS to use multi-core, is the main bottleneck.

However, my system is few years old and I'm not sure how balanced it is. Other than LFS' slightly lower frame rate at the grid, it suits all my needs, including video processing etc. My CPU is more or less the maximum I can use on my system/board without completely replacing it (to SATA drives, to PCI-E GFX card, etc). I can still put a better GFX card though (i.e. a used 7600GS AGP), for few $$. Do you think it'll improve LFS performance on my system or would it be neglectable?

thanks again.
#12 - KROM
Some of my older tests

P4 3.2ghz with 8800gts = 5904
E6600 dualcore 8800gts = 10,290

Thats the kind of hit from a limited cpu. this game forces that limit on us.

Ok you have an older pc, what are the ingame settings you are useing and what card/cpu etc

Maybe we can get the very best from what you have. Otherwise its best to wait for the coders to try and get this game threaded. and supporting multicores. before even thinking about CPU upgrades.

You may see an increase in frames upgrading the GFX, but I dont see the point unless its cheap and not too much bother, but I would need to know your spec first.

Sorry about typo's etc, I'm stealth typing I'm meant to be working lol.
#13 - avih
The specs are as described on my 1st post. Game settings can be modified as needed to balance between visual quality/details/frame-rate.
#14 - Jakg
Quote from KROM :you are wrong in saying my core handles anymore data than any other core @ 3.2, why would it?( we process the same data dont we) its just a duo x2 do you have inside info on the way this code uses the current cpu's?. if any its minimal, Im maxing the core most times with SLI on.

OK heres the deal I'm going to run a single 8800gts 640 on a p4 3.2
then im going to run the same card on my Quad, but set the affinity to "0" (one core)

I have already done this, but I will again if you wish to see the results. I gained 590+ points in 06 using the quad


P4 3.2 dell desktop with 8800gts 640 = 6180 in the quad single core =6773

Singlecore quad with single 8800 GTX = 7900!! with 4 cores = 12.500 single card. 4 cores@3.4 dual 8800 = 17,890

So your correct in saying its better than a p4, but hell, thats splitting hairs, and is only something I used as an example in the first place


LET ME END THIS

Buying a new graphics card for my system would gain me no performance increase.
You buying a new quadcore for this game would be stupid (maybe not in the future)
So no-one here has ever seen this game rendered as fast as a dual 8800 whatever can render it, because the way the cpu is used prevents this at present.

there. So untill the code in this game catches up, performance can't be messured over a single cores performance. in other words if it used my pc I could tell you how it really runs.

Jakg is your quadcore running it better than say a dual core, or even a p4 3.8 -4ghz? mine aint.

My GFX cards are being blunted by the way this game uses the cpu, theres no other way of saying it. you try running 8800gtx sli on a single core. its suffers, yet I play this game like that, and it runs ok, if it uses the cpu wow, it would be something else. the full power of my pc would be unlocked.

3DMark is a rubbish CPU test - afaik it's not actually multi-threaded, it just gives extra points for Quad Cores. Grab SuperPi - It's single threaded, and see how a 3.2 GHz Core 2 (good for 14 seconds or less) versus a 3.2 GHz P4 (30 seconds +) fares at the 1M run. Core 2's are MUCH better than P4's...
#15 - wien
Quote from KROM :...

I'm sorry? You argue that LFS severely CPU limited, but somehow twist that to mean that a faster CPU is useless? The most important thing of all to get good performance out of LFS is to have a fast processor. How many cores it has doesn't really matter, but it must be FAST. I for instance run a 3GHz Core 2 (Which is a lot faster than any P4, though not twice as fast) and I'm still severely CPU limited with a full grid and full graphics settings. You can argue in favour of multi-threading until you go blue in the face, but the fact is that it isn't implemented and until it is, a fast processor is important.

Of course, the graphics card will take over as the bottleneck in cases of light CPU load (hotlapping for instance) and that is especially true if the graphics card and CPU are mismatched in terms of performance.

To conclude avih. Low performance on the grid but good performance elsewhere is solved mostly by upgrading the CPU (more GHz, number of cores doesn't matter right now) and turning on dynamic LOD reduction. You're still not guaranteed excellent framerates witout upgrading the graphics card as well, as the upgrade probably will shift the bottleneck onto the graphics card in most cases, but just upgrading the graphics card will do absolutely bubkis to help framerates at the grid when you're already that CPU limited.
#16 - KROM
"I'm sorry? You argue that LFS severely CPU limited, but somehow twist that to mean that a faster CPU is useless? The most important thing of all to get good performance out of LFS is to have a fast processor. How many cores it has doesn't really matter,"

Thats my point, to upgrade the CPU would be pointless ATM because theres a trend of selling multicore low "clocked" cpu's of which this game fails to use correctly.

Yes higher clock speeds is great higher the better, and this leads me to what I was trying to say about my Q being like a p4 3.2 <--- its erm 3.2 and using a single core, "may as well be a p4@4ghz then.

I'm not here to get into a fight over this, Just making the point that the new cpu's arent really as important to this game, as they are often slower clocked with more cores, and the way this code works is not taking advantage of that.

My stock clocks on both Quads was 2.66ghz I have one clocked @3.2
And the craziest thing is I'm overclocking my other @3.4 so LFS runs better, and it does add 10fps over the 3.2.

I'm not upset about no mulitcore support, I only bought the game last month, knowing fullwell it didn't support it, I don't care, it runs great, I have no issue.

Was just here to try and find the magic tweak for the OP, so his current hardware performs at it best. and trying to get across my point that if he's thinking about an upgrade, CPU/GPU then he would understand the bottlenecking in this game often comes from the CODE its-self.

Ok I'm cr*p at explaining anything.......... give me a break.
#17 - wien
Quote from KROM :Ok I'm cr*p at explaining anything.......... give me a break.

Fair enough. In the case of the OP a new CPU will most definitely help though. Even a low clocked Core 2 Duo will murder his current Athlon XP 2500+ (I know, I've had a few Athlon XPs through the years). That's why I reacted to your post.
#18 - KROM
Avih

FX5600 Ultra 128M , you would see an improvement changing this card for something with a little more grunt for sure.

like you say theres alot of cars at the start grid and eitherway you cut it, they need rendering, and a good card cant hurt that. I don't know much about your cpu, I'll do some reading, see if I can find people getting good results on games with your cpu and a different (newer) card.
Don't want to go putting in something that is limited by the cpu too much, I'll see if I can find what card you can have without losing too much performance.

AGPx8 yes?

The x850xt PE 256mb is cheap on ebay and would cope on that cpu nice.
Maybe Im wrong I'll go do some reading.

Tweak you graphics from the back of a fullgrid, it doesn't matter if you getting 2000fps driving a hotlap, for a race you need a fairly smooth start. (overclock maybe)

So new card new cpu.... or tweak to the limit and enjoy what you get.

A full grid on this game on any cpu , leaves the A.I with the brains of a knat. (or is that the code...doh)
A few weeks ago I upgraded from an Athlon X2 4400+ to a 6400+, and the difference at the start of a race, with 19 AI, was huge. 20-30 fps before, never below 50 now, avg 50-75 ,(at start, above 200 after that) same video card, all settings maxed, it's certainly the cpu.

Also, from experience, plus what I see on paper, a newer dual/quad core cpu, core for core, is far superior to older, single core systems. Many of us would notice this behavior, most software isn't multithreaded, and this software wouldn't run any better on a X2 system.

To OP: Myself, I would upgrade the processor, or wait and build/buy a newer system, good luck.
I've recently upgraded my computer, so I'll share my experience.

I was running an AMD Sempron 3000 (1.6 GHz, 64 bit) and Nvidia 6150 onboard graphics. My system has 1 Gb of DDR2 533 MHz. At a resolution of 1360x768, this system ran at 25-30 fps at South City when racing alone. It was unplayable with a full grid.

First I replaced the CPU with an AMD Athlon X2 4400 (2.3 GHz, 65 nm). This got me a 10 fps increase in the same situation, running now at 35-40 fps.

Two days later I bought a medium graphics card, an Ati 3650HD. With this card and the new CPU, LFS runs at 160 fps in the same situation.

I'm not sure I would have got such a boost in performance should I had not upgraded the CPU, though. My guess is the CPU isn't that important when it comes to gaming.


EDIT: When online with a full grid, I got 10-12 fps at start (graphics toned down) with the old system, now I get 40-50 fps (full detail), which is enough.
#21 - avih
Thanks for your replies guys, it has become an interesting and informative discussion, at least for me

By what I understand from your data and descriptions, It seems that everyone's oppinion/conclusion about the lower framerate on the grid is that it's NOT more physics but rather the graphics subsystem. That includes CPU cycles for "preprocessing" and GPU cycles for rendering. It could be that the "preprocessing" also includes more implied physics CPU cycles, but I guess that only Scawen can answer that.

Which brings me to a conclusion that separating the graphics subsusyem into it's own thread/core could be relatively easy to achieve (relatively because.. well.. software usually is never easy to modify much) and might give a nice gain on multicore systems.

Is there a way to understand on a specific system whether the limit is the GPU or the CPU, per situation in the game? I was thinking of a tool that would record the following 3 values, say, once a sec:
1. current FPS
2. theoretical FPS with current CPU and blazingly fast GPU system
3. theoretical FPS with current GPU and blazingly fast CPU

I'm quite sure that near 100% of the graph, graph #1 will either equal graph #2 or equal graph #3. If graphs 2 and 3 are quite similar, then the system is well balanced.

If 1 equals 2 most of the time, then the bottleneck is definatly the CPU
If 1 equals 3 most of the time, then the bottleneck is definatly the GPU system

If 1 equals 2 most of the time but on the grid it equals 3, then a better GPU system will benefit mostly the grid scenario and so on...

Should be an interesting tool

btw, now that I think of it, is there a tool that can show a graph similar to 1/2/3 but that displays poligon count? if excluding FSAA, AF etc, it might give a pretty nice info for that kind of benchmark...
#22 - wien
Quote from avih :By what I understand from your data and descriptions, It seems that everyone's oppinion/conclusion about the lower framerate on the grid is that it's NOT more physics but rather the graphics subsystem.

That is indeed true. A high percentage of the CPU load in LFS is dedicated to telling the GPU what to do. LFS does a lot of calls to the D3D8 API to tell it what to draw and where. This API overhead can be quite significant in (technically) older games like LFS as they were constructed for GPUs far slower than the modern monsters we're running. Back then the API overhead wasn't that much of a concern as the GPUs weren't fast enough to outrun the CPUs as thoroughly as today.

Reducing this API overhead is incidentally one of the main goals of D3D10 and eventually OpenGL 3. Using these you can tell the GPU what to draw with less actual calls into the API, and that lightens the CPU load related to graphics considerably. LFS could stand to see massive improvements to FPS by an API change, but the work required to restructure the entire renderer in such a way isn't exactly trivial.

Quote from avih : Which brings me to a conclusion that separating the graphics subsusyem into it's own thread/core could be relatively easy to achieve (relatively because.. well.. software usually is never easy to modify much) and might give a nice gain on multicore systems.

I wouldn't say "easy" as it's quite a big task to separate physics and rendering completely and designing a way to transfer "frames" (scene state, positions and rotations of all objects etc.) between the two without them stepping on each other's toes. It's still probably easier than changing the API though, so it's the most likely path for LFS to take to "lighten" the CPU load. (even though it in reality would just be spreading the load around.)

Quote from avih :Is there a way to understand on a specific system whether the limit is the GPU or the CPU, per situation in the game?

You usually do this by changing the load on the graphics card without changing CPU load and observe what happens to the FPS as you do so. The best way to do this is to take a measurement in a low resolution with AA/AF off. Then you up the resolution and/or AA/AF and see what happens to the FPS. If it stays roughly the same, you're CPU limited. The CPU can't keep up with the GPU basically. If FPS goes down, you're GPU limited meaning the CPU is outrunning the GPU.

Note that as you go up in resolutions and AA/AF levels you will shift the bottleneck from the CPU to the GPU and even if you were CPU limited at a low resolution you may end up GPU limited once you go high enough. You basically just have to experiment and see how it reacts.
#23 - KROM
I can monitor the sli usage and cpu usage while playing the game, I can monitor fps at all times and record it.

I have found that @ the start of the race with 19 A.I my sli is hardly working much, but the cpu is 80-90% on one core and as we set off the cpu is near max constant and the A.I act like total lemons.

Overclocking the cpu does help a little, but Im asking the cpu to support 2x 8800 and on one core that is painfull , I just can't explain enough how crippled my system is on one core.

Infact I tested lastnight with a single 8800gtx none sli card and got lower cpu usage and infact gained some frames in places. odd but true. and showing the cpu up as the current bottleneck.

I would like to add the fact My game runs great with any settings.

EDIT :Just ran the game @ higher res to force more GPU and lost 20% on cpu usage. one other sign is the fact I can run 16AA 16AF without touching frames one bit. same either off or on.

I could do with the high res texture pack really, . whats the best ones?.
I have an Intel Dual Core running @2.66Ghz. I run LFS in a window and watch the CPU usage. It's around 35% on both cores at the back of a ten car grid. It stays at 35% for most of the race.

I have a benchmark replay I use and at the front of the grid I get 45FPS and at the back I get 32. That tells me that it is in fact the graphics card choking.

I'm using an old Geforce 6800 which is still surprisingly fast at 1920x1200. I usually race using 2xFSAA and it rarely drops below 60FPS unless it's at the start of a big race.

My old single core Athlon 3000 showed 100% CPU use in my LFS benchmark so the mobo/cpu upgrade made sense for me.

(Ridiculous performance trick - if you switch to windowed mode (shift+F4) and then back to full screen your FPS could nearly double - at least they do for me)
#25 - KROM
(Ridiculous performance trick - if you switch to windowed mode (shift+F4) and then back to full screen your FPS could nearly double - at least they do for me)

This the case with me also.
1

FGED GREDG RDFGDR GSFDG