Railworks Poor Performance

General discussion about RailWorks, your thoughts, questions, news and views!

Moderator: Moderators

User avatar
peterfhayes
Very Active Forum Member
Posts: 2155
Joined: Mon Sep 26, 2011 5:07 am

Re: Railworks Poor Performance

Post by peterfhayes »

Steve
I was way off beam when I answered above - my brain got lost somewhere. :oops:
This problem is not so much about the way that TS2012 interacts with a computer system but to do with an issue that has arisen post a hardware change.
As far as I can see your troubles started with a video card change? Your cpu should run TS2012 fine.
That install changed something! What?
Have you tried resetting the BIOS to fail safe/default after installing the new cards? You could then retweak to its previous settings.
The issues there could be driver related but you installed the drivers cleanly so that's out. Other games run OK
However, Have you tried various nvidia drivers and not just the latest. In many games the 275.33 is considered most stable.
Have you swapped the cards over in the PCIe slots? and one card is in the PCIe 16 slot? Not fouling installed RAM.
Motherboard issue ie "damage" inserting new cards- well no! - other games run OK.
The only other thing I could think of would be your psu, in that for some reason it might not be adequate when running TS2012 with the new cards which I believe that a 750w psu is recommended (good brand). That cpu I believe is rated for 125w and I think a single 560 is rated for around 500w.
Did any of the AMD power settings change in the BIOS after the card install? (Dynamic Power management CoolCore Technology)
Did any of the windows power settings change after the video card install.
Just some thoughts on what might cause an issue post a new hardware change.
If I've got this wrong I apologise.
Regards
PeterH
Kariban
Very Active Forum Member
Posts: 4478
Joined: Sun Nov 07, 2010 4:10 am

Re: Railworks Poor Performance

Post by Kariban »

Having been on the end of some ranting and several days of chatting while running tests, I can pretty conclusively say it's not generic hardware - the ONLY piece of software having a problem is Railworks ( and Mass Effect 3, but that I think is because it really is asking for more grunt ). A couple of posts back Steve mentioned swapping just the old gpu back in and getting decent fps in RW, so it looks like ( as I've been wondering from the start ) RW is not seeing a GPU there, especially given the 2% or so GPU use when RW is running.

Why would that be? I can think of three possibilities:

* Driver bug - couple of drivers have been tried.
* Generic DirectX problem
* Railworks is a badly behaved DirectX app that initialises in a non-standard way.

I was considering a 560Ti myself, but this issue is not filling me to the brim with confidence...
My posts are my opinion, and should be read as such.
User avatar
mpnielsen
Getting the hang of things now
Posts: 29
Joined: Thu Dec 30, 2010 9:45 pm

Re: Railworks Poor Performance

Post by mpnielsen »

paulz6 wrote:
shanyiqua wrote:
paulz6 wrote: The helper threads will inevitably take time slices out of the main threads activity. The more cores you have to process these active threads will reduce the chance that the main thread will end up waiting in the run queue. So a hex core will run RW better than on a dual core as the main thread is going to spend less time run queue.
No they don't take time slices from main thread, because since it uses one core at 100% the os will dispatch one core only for that. Other threads work in time slices on other core, but since those have very low cpu usage, those extremely tiny queue times not causing measurable slowdown.
By the way, it's easy to to test how much those more cores helping on rw, by setting core affinity. I've disabled two of the 4 cores for railworks, and the slowdown that i noticed was exactly zero...

Windows surely bounces threads on cores, since the task manager shows equal core usage when i running a test application that i've made, so i'm sure that uses one core and no more ;) http://forums.uktrainsim.com/viewtopic. ... a#p1524105
Someone in some topic linked an article from intel about this windows task manager faked cpu usage graph, and a recommendation for a better system monitor made by intel.
I've got to admit, my knowledge is ancient, and it is over ten years since I looked at a kernel source code. I will ask you this simple question: How does the O/S know what is a main thread, and how does it know that it is better stack helper threads on spare CPU's, and keep the main processing thread on one CPU? In fact, how does an application know it is supposed to be the main processing thread anyway?
Why is windows bouncing threads between cores? I'm sure it does it just for the sake of it. Hey, I'm going to save the state of my registers and pass that along to the next CPU just for the fun of it.
As for process CPU binding, unless you unbind all other process threads from it, you will probably find a spare CPU doing nothing as the main thread cannot use it, and the bound CPU is busy processing some other thread.
Fundamentally, a kernel scheduler sees a number of processes that wish to run. It will allocate a thread based on a priority algorithm to run on the next available core. That thread will either finish its task and give the CPU up voluntary, or it will exceed its timeslice and will be forced off the processor involuntarily for the next prioritised thread that is waiting in the run queue. Some O/S's will even record these statistics so that they can be monitored using various tools.
Like I say, my knowledge is rather ancient and technology moves so rapidly that even the most experienced of people working on multi-processor systems should feel out of their depth.
This.
User avatar
sdark2
Established Forum Member
Posts: 392
Joined: Sun Jan 23, 2011 3:06 am
Location: Newton Aycliffe

Re: Railworks Poor Performance

Post by sdark2 »

peterfhayes wrote:Steve
I was way off beam when I answered above - my brain got lost somewhere. :oops:
This problem is not so much about the way that TS2012 interacts with a computer system but to do with an issue that has arisen post a hardware change.
As far as I can see your troubles started with a video card change? Your cpu should run TS2012 fine.
That install changed something! What?
Have you tried resetting the BIOS to fail safe/default after installing the new cards? You could then retweak to its previous settings.
The issues there could be driver related but you installed the drivers cleanly so that's out. Other games run OK
However, Have you tried various nvidia drivers and not just the latest. In many games the 275.33 is considered most stable.
Have you swapped the cards over in the PCIe slots? and one card is in the PCIe 16 slot? Not fouling installed RAM.
Motherboard issue ie "damage" inserting new cards- well no! - other games run OK.
The only other thing I could think of would be your psu, in that for some reason it might not be adequate when running TS2012 with the new cards which I believe that a 750w psu is recommended (good brand). That cpu I believe is rated for 125w and I think a single 560 is rated for around 500w.
Did any of the AMD power settings change in the BIOS after the card install? (Dynamic Power management CoolCore Technology)
Did any of the windows power settings change after the video card install.
Just some thoughts on what might cause an issue post a new hardware change.
If I've got this wrong I apologise.
Regards
PeterH
Thanks Peter, before I put the new cards in the machine, I did check the BIOS version of my mainboard. Seems I'm running the latest version (which only seemed to add support for Phenom II AM3 chips). I'm pretty adept at CMOS configuration but I think this board is missing some vital PCIe timing tweaks - aside from that, tweaking the BIOS is the first thing I go through as part of my diagnostics routine (aside from the usual hardware checks). The board itself has 4 PCIe ports, 3 x16 which support dual x16 or triple x8 and 1 x PCIe x1. I currently have the cards installed to Slots 1 and 3 as recommended by ASUS, and I've tried variations on this - swapping the cards over between the slots... putting cards in Slots 1 & 2 (refused to POST), swapped over (refused to POST), Card in Slot1 only, swapped card in Slot1, Card in Slot2 only (refused to POST), swapped card in Slot2 (refused to POST), Card in Slot3 only, swapped card in Slot3... On investigation, Slot 2 is only supported if there are 3 GPUs and the triple SLI bridge connected. I've even bought a new SLI bridge to rule out a potential issue with that too.

I did find a fault with my existing 4GB of ram, which is currently being replaced. I have 4 identical sticks running in ganged mode - currently back to 4GB but another 4GB on the way.

Was actually quite surprised that no-one has even asked me about the PSU until now - when doing any form of diagnostics with any computer, this is the most fundamental component that is often overlooked and is often the cause of many performance related problems. However, in this case, I'm running a 1.2kW ThermalTake PSU that cost me well over £200 when I bought it - has a digital display on the side which tells me the input and output voltages as well as current load. Generally it displays around 800W loading but with SLI, does increase quite dramatically (depending on GPU load) to around 1.01kW.

The somewhat stupid board feature, on a board meant for extreme overclocking, they call Cool'n'Quiet is disabled in the CMOS - in fact, everything relating to power management of things such as fans and the CPU itself are all set to Optimal configuration - meaning they all draw whatever power is required for optimal performance. Insanely, they only give you 4 options for this - Off, Silent, Performance and Optimal. Off switches all the fans off (WHY?!?!). Windows power settings are irrelevant - I put a clean install on but currently they're all set so that they won't be shut down for power saving modes.

One thing I have noticed recently, since installing nVidia's System Monitoring Tool, is that the PCIe ports return strange results: PCIe1 = 5GHz, PCIe2 = 5GHz and PCIe3 = 37.5GHz. I suspect that this is due to the throttling of the cards while not being used but haven't been able to find anything online, nor have had any response from ASUS, with regard to this.

Hope this helps fill in some blanks.

Kr, Steve

EDIT: I forgot to mention drivers. ASUS provide two versions of supposedly "enhanced" drivers for my card and os. 285.66 (Dec 11) and 267.85 (May 11). I tried both of these from the outset (they were the first drivers I tried with the clean os) - the version on the disk accompanying the cards was 285.66. When running Railworks, these drivers gave me an overall average performance of approx 6fps. When I installed the current absolute latest nVidia versions, Railworks frame rate increased to 12-14fps. I think that result is pretty conclusive.

Re DirectX, I downloaded these direct from Microsoft rather than trust any provided with game software but did eventually opt for those just in case they added something specifically required by the game. It made no apparent difference either perceptually or clinically.

Also, I checked the GPU's BIOS just to be sure that they are running the latest version (which only seemed to tweak the fan speeds so they aren't so noisy at rest and unlock user-set fan speeds above 60%) - they are running the current latest available online.
User avatar
sdark2
Established Forum Member
Posts: 392
Joined: Sun Jan 23, 2011 3:06 am
Location: Newton Aycliffe

Re: Railworks Poor Performance

Post by sdark2 »

As a side note, I found particularly interesting, I was playing around with the affinity settings for the Railworks process - setting various configurations for cores seemed to have no apparent effect (except with only allowing 1 core - slideshow). Allowing Railworks to utilise just 2 cores or 4 or 6 had no effect on performance. I've also tried using, as RSC Support suggested, the multicore switch and the framerate limiters - again, no apparent effect. However, with the multicore switch enabled, loading seems to spread evenly over all the cores - without it, cores 2 and 4 climb up to the 80/90% mark.

Something else I found interesting, when testing the various routes - gpu load was consistently low irrespective of the graphical quality settings, the rendered screen resolution and the population of geometry on the route. In otherwords, it made no difference if I was running WCMLN or OxPadd. The only thing that seemed to be affected was the RAM loading - climbing as high as 95% for WCMLN (around Motherwell). Of particular interest was the zero populated route - a blank route with only 100m of track and a Class 37. Frame rate was well in excess of 120fps and gpu load consistent at around 60% - cpu load was quite low, less than 20%.

Bizarrely, just going back to the screen resolution - Railworks ran at identical frame rates irrespective of screen resolution. Other games seemed to run away with themselves at lower resolutions and struggled at some of the higher resolutions - seems Railworks is ignoring resolution as a factor when rendering the graphics - both in windowed and full screen.

Kr, Steve
User avatar
paulz6
Very Active Forum Member
Posts: 2255
Joined: Tue Oct 18, 2005 4:22 pm
Location: Disused Railway Lineside Shack

Re: Railworks Poor Performance

Post by paulz6 »

Something does seem very odd. Screen resolution is one of the biggest dictators of performance for me!

As regards to setting processor affinity, you will not notice a perceivable difference between 2, 4, and 6 cores as RW currently can't really take advantage of it. As you say, limiting it to one core makes RW perform really badly, which is the conundrum RSC will have - they need to ensure RW runs smoothly on systems with differing amount of cores.
If you are running two applications on the same box, and you want to limit the effect of one application getting busy having an adverse effect on the performance of the other application, then setting processor affinities might make sense. In the majority of cases it is used to limit performance, not boost it.
The value of your investments may go up as well as down.
User avatar
holzroller
Very Active Forum Member
Posts: 4421
Joined: Sat Jun 13, 2009 11:00 am
Location: NE Scotland

Re: Railworks Poor Performance

Post by holzroller »

Kariban wrote:......I was considering a 560Ti myself, but this issue is not filling me to the brim with confidence...
As noted earlier I am running a single MSI 560 TI with good results, although I am getting very high gpu use, regardless of route. Any change seems to be pretty much a gamble at the moment, my setup didn't work well under XP 32 bit, but seems to work fine so far under Windows 7 64 bit. Have noted Ram at 80% on Northern Europe and WCML, currently using 23% as I write this, steam seems to take it up to around 27%. I have 8gb ram. CPU usage seems fairly evenly spread with some fluctuation. I am using an Asrock motherboard, as I have had good results to date, was planning an upgrade later, but I think I will leave well alone for the moment. Don't know if this helps anyone, but well and good if it does.
User avatar
sdark2
Established Forum Member
Posts: 392
Joined: Sun Jan 23, 2011 3:06 am
Location: Newton Aycliffe

Re: Railworks Poor Performance

Post by sdark2 »

Ok, appear to be getting somewhere. Following Peter's earlier post about the CMOS settings - I thought it a good idea to double check these. Instead of allowing the mainboard to automatically set the cpu core frequencies and voltage - I opted to set these manually using a list of values kindly provided to me by ASUS this morning. This had no noticeable effect on performance, however perceptually, there was a definite improvement in overall game performance from Railworks - less stuttering when loading in tiles (frame rate was still the same however).

I've since revisited the CMOS and increased the core clocks of my cpu, as well as ever so slightly increasing the voltage. This has essentially increased the overall clock speed by some 600MHz. Result? MASSIVE improvement. Frame rates are up 50%, cpu and gpu loads are identical to before - which still strikes me as particularly odd for a graphic intensive application not to be even remotely interested in using all the horsepower available from the gpu.

I'm going to push the CPU a little harder and raise the clocks by another 200MHz (I daren't go any higher) - see what result that gives me.

Irrespective of the above, I still think that Railworks is falling way short of where it should be...

Kr, Steve
shanyiqua
Been on the forums for a while
Posts: 262
Joined: Tue Dec 20, 2011 11:48 am

Re: Railworks Poor Performance

Post by shanyiqua »

paulz6 wrote:I've got to admit, my knowledge is ancient, and it is over ten years since I looked at a kernel source code. I will ask you this simple question: How does the O/S know what is a main thread, and how does it know that it is better stack helper threads on spare CPU's, and keep the main processing thread on one CPU? In fact, how does an application know it is supposed to be the main processing thread anyway?
It knows from the resource hungriness? if a thread have significantly higher cpu requirement than other and others don't have core usage more than 30% together than it's logical that the resource hungry thread will run on one core, and the others on the other.
paulz6 wrote:Why is windows bouncing threads between cores?
to make the heating of the cpu more equal maybe? Who knows what would happen is one core runs at 100% for hours, and the others doing nothing.
As for process CPU binding, unless you unbind all other process threads from it, you will probably find a spare CPU doing nothing as the main thread cannot use it, and the bound CPU is busy processing some other thread.

The fact is, windows task manager shows unreliable per core usage information, for why is not known, but it does. And that if a fact too that RW don't get any advantage with more than 2 cpu cores.
User avatar
holzroller
Very Active Forum Member
Posts: 4421
Joined: Sat Jun 13, 2009 11:00 am
Location: NE Scotland

Re: Railworks Poor Performance

Post by holzroller »

Interesting Steve as my cpu is overclocked by 570mhz. But as you say RW shouldn't really need it.
User avatar
sdark2
Established Forum Member
Posts: 392
Joined: Sun Jan 23, 2011 3:06 am
Location: Newton Aycliffe

Re: Railworks Poor Performance

Post by sdark2 »

Ok 802MHz over base and have a rock steady 16fps (except OOC where it nose dives to 10fps) on the Chasing Yellows scenario. WCMLN north of Carstairs was unplayable - in fact was around 4fps at Polmadie Depot - now 10fps solid, 15fps in Glasgow.

So I think this is pretty conclusive, cpu is/was the limiting factor here... what do you think?

Kr, Steve
nigeltouatievans
Established Forum Member
Posts: 439
Joined: Thu Nov 05, 2009 9:58 am

Re: Railworks Poor Performance

Post by nigeltouatievans »

sdark2 wrote:Ok 802MHz over base and have a rock steady 16fps (except OOC where it nose dives to 10fps) on the Chasing Yellows scenario. WCMLN north of Carstairs was unplayable - in fact was around 4fps at Polmadie Depot - now 10fps solid, 15fps in Glasgow.

So I think this is pretty conclusive, cpu is/was the limiting factor here... what do you think?

Kr, Steve
Wouldn't be surprised at all - I think it is fairly well established that RW is incredibly CPU-heavy.
User avatar
paulz6
Very Active Forum Member
Posts: 2255
Joined: Tue Oct 18, 2005 4:22 pm
Location: Disused Railway Lineside Shack

Re: Railworks Poor Performance

Post by paulz6 »

shanyiqua wrote:
paulz6 wrote:I've got to admit, my knowledge is ancient, and it is over ten years since I looked at a kernel source code. I will ask you this simple question: How does the O/S know what is a main thread, and how does it know that it is better stack helper threads on spare CPU's, and keep the main processing thread on one CPU? In fact, how does an application know it is supposed to be the main processing thread anyway?
It knows from the resource hungriness? if a thread have significantly higher cpu requirement than other and others don't have core usage more than 30% together than it's logical that the resource hungry thread will run on one core, and the others on the other.
I am guessing by the question marks that you are trying to logically guess this one through.
The fact is, by doing what you logically describe could actually be detrimental. The O/S does not know exactly what the software threads are doing. Dependent on the nature of the software, the main thread may be dependent on the helper threads. I would think we are too far off from having the embedded AI that would be required in the scheduler, and any processing time in the scheduler is processing time not spent running the application!
shanyiqua wrote:
paulz6 wrote:Why is windows bouncing threads between cores?
to make the heating of the cpu more equal maybe? Who knows what would happen is one core runs at 100% for hours, and the others doing nothing.
As for process CPU binding, unless you unbind all other process threads from it, you will probably find a spare CPU doing nothing as the main thread cannot use it, and the bound CPU is busy processing some other thread.
A process never sleeps, it is busy do nothing, running the idle process! Advanced CPU's may boost the performance of one core when the other core is running idle, as the idle operations generates less heat. They may also reduce the clock speed to reduce power consumption. That really is more of a hardware function than on O/S one. The fact is that there is a performance hit in migrating a thread from one processor to another, so I doubt it would be done for the reasons you describe. CPU's are designed to run all cores flat out, and the recent clock speed boost developments would run contrary to your thermal thinking.
The value of your investments may go up as well as down.
User avatar
RichyV
Well Established Forum Member
Posts: 658
Joined: Tue Oct 21, 2008 10:32 am

Re: Railworks Poor Performance

Post by RichyV »

Kariban wrote:I was considering a 560Ti myself, but this issue is not filling me to the brim with confidence...
Probably not particularly helpful but, as you can see from my sig, I have a 560Ti and it runs RW fine here..! :)
Intel Core i5 4670K @ 4.4GHz # Gigabyte G1.Sniper Z87 mobo # Samsung EVO 840 SSD # MSI Nvidia GeForce GTX 970
# 16GB Corsair 1600MHz RAM # OCZ ModXStream Pro 600W PSU # Corsair H80i CPU Cooler # MS Windows 7 Ultimate 64-bit
User avatar
peterfhayes
Very Active Forum Member
Posts: 2155
Joined: Mon Sep 26, 2011 5:07 am

Re: Railworks Poor Performance

Post by peterfhayes »

Steve
Interesting about the overclock.
I run 2 systems for TS2012.
1. is an i7 860 at 3.4GHz with a 1GB GTX560TI - this runs TS2012 quite wll but I never get frame rates much above 30 (set at 60 in TS2012) and sometimes around the 20 mark.
2. an i7 2600K with a 2GB GTX560TI but I didn't see any great performance increase until I overclocked the cpu to 4GHz. It is now at a stable 4.8GHz and runs TS2012 on all routes around the 30+ mark. But if I try to run 2 WCML routes one after the other I can get a SBHH error on the second run.
Both have 8GB RAM running Win 7 64-bit. All sliders in TS2012 to the right. SSAA 2 x 2, 8AF. Multicore ticked, 60fps, TSX and with video card set adjust image settings with preview and let the 3d application decided ticked - this gives the best results on either rig.
I would bet that, for best performance, you need to get up around 4GHz before you start seeing some great improvemrnt.
I still see drops in fps on both systems but in the main both run smoothly.

I wonder with your rig if we are seeing a clash between the FERMI architecture in the 560 (It would be interesting to try a GTX480/470 - different FERMI) an AMD cpu and an/or an ASUS mobo. I wonder how an ATI 7970 would do?

Hope you get this fixed.
PeterH
Locked

Return to “[RW] General RW Discussion”