Jump to content
Sign in to follow this  
Mace

FSX Design Priorities Flawed

Recommended Posts

Guest AirbusFlyer

There have been many threads regarding the poor framerates of FSX, as well as a few concerning dual core CPUs and the promises of DX10. I have read them all, including tdragger's now famous blog regarding (the lack of) dual-core support.Although I respect their accomplishments, I am shocked that the ACES team's design priorities did not include multi-core support. If the only improvement in FSX over fs9 was support for multiple cores, FS flyers would have been overjoyed. I suspect that if the sim had two main threads (simulation and display), FSX could have gained as much as a factor of 2 improvement in framerates (depending on GPU speed).Yes, it would not have had all of the new eyecandy that MS has provided (that most current and future CPUs can't handle anyway). But third-party developers would have had a field-day with the extra headroom available to them. And fs11 could have followed with DX10 support and all of the eyecandy (and more) that is currently coded into FSX.But without this architecture change, FS is likely at a dead-end. Unless a miracle happens (knock wood), CPUs will not be appreciably faster in the near future. And third party developers will be stymied because their addons will further reduce framerates and increase user dissatisfaction.Although I will certainly buy FSX (have it on preorder), I am truly disappointed with this development.Frans Kes

Share this post


Link to post
Share on other sites
Guest AirbusFlyer

Considering that the usage of the second core is barely noticeable, the ACES response seems to reinforce the concept that multi-core usage was not designed into FSX. It rather seems an after-thought during the code optimization phase.Frans Kes

Share this post


Link to post
Share on other sites
Guest nem

>for multiple cores, FS flyers would have been overjoyed. I>suspect that if the sim had two main threads (simulation and>display), FSX could have gained as much as a factor of 2>improvement in framerates (depending on GPU speed).There already is a dedicated core for "display". You even mention it. (Hint: it's the third acronym in the quote above.)Regards,http://www.bremmekamp.com/img/misc/avsim.jpg

Share this post


Link to post
Share on other sites

>There have been many threads regarding the poor framerates of>FSX, as well as a few concerning dual core CPUs and the>promises of DX10. I have read them all, including tdragger's>now famous blog regarding (the lack of) dual-core support.>>Although I respect their accomplishments, I am shocked that>the ACES team's design priorities did not include multi-core>support. If the only improvement in FSX over fs9 was support>for multiple cores, FS flyers would have been overjoyed. I>suspect that if the sim had two main threads (simulation and>display), FSX could have gained as much as a factor of 2>improvement in framerates (depending on GPU speed).Complete and utter conjecture. Are you a game programmer?I've compared the single and dual core (and the 32 and 64 bit) versions of Far Cry on my machine and you guys are just massively overestimating how much of a performance gain is actually to be had from this stuff.You can't just split a program into "threads for simulation and display" as if it's some simple task - there are only certain types of processes within the code that will benefit from multi-threading. You can't just take any piece of code and go "run on two CPUs" and have it work. A very simple example: process X running in code feeds its output into process Y as its input variable - what happens if you put this sort of sequential processing on two different cores but then X finishes before Y needs it or vice versa? Now you're actually slowing things down by having things sitting there idle.People really need to start trusting what the ACES team posts - a new version of FS is never going to run at a high framerate maxed-out on current hardware at the time of release. It was the same for every single previous version and FSX is no different. If there was a way to do that's so easy that armchair developers on AVSIM have it all figured out, don't you think they'd have done it already?


Ryan Maziarz
devteam.jpg

For fastest support, please submit a ticket at http://support.precisionmanuals.com

Share this post


Link to post
Share on other sites
Guest SilverCircle

Sorry, but...It seems you don't have the slightest idea of how complex these things can be from the programmers point of view. Multithreading and all its side effects is always one of the most complex things when writing good software and its even harder when developing a game or other application which MUST (or at least, SHOULD) deliver steady performance, at least in one of its threads (the thread which does all the rendering and is responsible for the visible frame rate).Read the thread which was posted here in #1 reply as this has some very good points and explains quite nicely, why a dualcore CPU won't just magically "double your frame rate".I'am sure that the devs have taken multithreading into account where it does make sense and maybe there is room for future improvements. But saying they didn't care is just plain wrong.BTW: There is no such thing like "dual core support". Its just a matter of writing robust multithreaded code w/o screwing up with the overhead needed for synchronization and other evil things. This sounds simple, but can really give you a big headache.The rest will be done by the operating system as its job is to distribute the load among the available resources.

Share this post


Link to post
Share on other sites
Guest JohnEGPF

I,m no programmer but Why Have Intel and AMD invested in Dual core technology if it brings little to the table performance wise?.Just one point when I bought FS9 at time of release I got single Digit FPS on my mid range AMD PC, the next week I upgraded my PC to a new shiny Northwood CPU@3 gig I at least doubled the performance in FS9..still using the same PC today ( apart from the GPU).Times have changed,can I do the same for FSX next week?Will the new Dual core CPU's say with a 7900GT let me spend my way to double FPS increase? please say yes:). I'm not blaming ACES or MS ( FSX is Probably the biggest change graphics and sound wise I have seen over the years, the work involved especially in composing and making the new 1M textures fit and look right must have been immense ,a true work of art). Perhaps Dual core can be utilized more in the future or DX10 will come charging over the hill to save us.. exciting times:).John

Share this post


Link to post
Share on other sites

>I,m no programmer but Why Have Intel and AMD invested in Dual>core technology if it brings little to the table performance>wise?.>Because AMD and Intel have "hit a wall" where with current manufacturing processes, (90nm, 65 nm, etc.) you can only clock the chip so high before failure and heat bring you down.The solution? Put two cores on one die. Put four cores on one die.Until there is some major advance in architecture, or a major change in the way chips are made (lower process, or even radical developments like photronic processors, or laser processors) you will NOT see any major raw speed improvements in CPU's. This is the reality we face for the next 1.5 to 2 years. You'll see speedier cpus due to architecture (mem bus, cores, etc.), but not raw speed.RhettAMD 3700+, eVGA 7800GT 256, ASUS A8N-E, PC Power 510 SLI, 2 GB Corsair XMS 3-3-3-8, etc. etc.


Rhett

7800X3D ♣ 32 GB G.Skill TridentZ  Gigabyte 4090  Crucial P5 Plus 2TB 

Share this post


Link to post
Share on other sites
Guest SilverCircle

>I,m no programmer but Why Have Intel and AMD invested in Dual>core technology if it brings little to the table performance>wise?.Well, who says it doesn't?It really depends on the task. If you have 2 separate processes or threads which can do their jobs independently from each other, a dual core (or dual CPU) system will give you (almost) factor 2.Many applications will benefit from multiple cpu cores. Image processing, sound processing, 3d rendering - all that stuff can benefit a lot, because it is possible to divide such a job into predefined sections and then use a single thread per task to do the job.All kind of server applications (web servers, database servers) are also good candidates for seeing huge improvments from multicore processors. Unfortunately, games are a different thing, because they are required to deliver steady performance (means: a constant framerate). Nobody really cares, when the thread #20 of a webserver needs 100 microseconds longer to server a request than the thread #10 needs to do the same job.But the renderer (the entity which renders the images of a game) runs in a single thread. It is basically a loop running forever and rendering a single image per pass and doing all the "gameflow" calculations required. In a multithreaded environment, the #1 rule is that you cannot assume anything. When you offload work to a second thread which may (or may not) run on a different cpu or core, you cannot assume that this thread will have finished its work (e.g. loading a set of textures) when your main thread has to render the next frame. Other processes running on the system can "steal" cpu time, low memory conditions could generate a lot of pagefaults which would in turn slow down the thread, another process may access the harddisk, slowing down I/O and many more things.So, a game can only offload low priority things, that is, things which would not hurt the gameflow when they complete later than they actually should. It's simply not possible to divide that running games into independent sections and let each of these sections run on a single cpu core.The "blurries" are a good example what happens when the background thread was not able to complete its job in time. It simply means, that it wasn't able to load the hires textures needed by the main thread to render the frame in all its glory, so the renderer will use lower res textures. It's annoying and somewhat disturbing, but it's not going to destroy the game.If you offload other things (e.g. calculating flight paths of AI traffic) - things would be different. An AI airplane may just "disappear" or stop in front of you, because the background thread wasn't able to complete its job and calculate the new position for that plane, so the renderer would still have to use the old position.

Share this post


Link to post
Share on other sites
Guest 2002cbr600f4i

>>I,m no programmer but Why Have Intel and AMD invested in>Dual>>core technology if it brings little to the table>performance>>wise?.>>Well, who says it doesn't?>>It really depends on the task. If you have 2 separate>processes or threads which can do their jobs independently>from each other, a dual core (or dual CPU) system will give>you (almost) factor 2.>>Many applications will benefit from multiple cpu cores. Image>processing, sound processing, 3d rendering - all that stuff>can benefit a lot, because it is possible to divide such a job>into predefined sections and then use a single thread per task>to do the job.>>All kind of server applications (web servers, database>servers) are also good candidates for seeing huge improvments>from multicore processors. >>Unfortunately, games are a different thing, because they are>required to deliver steady performance (means: a constant>framerate). Nobody really cares, when the thread #20 of a>webserver needs 100 microseconds longer to server a request>than the thread #10 needs to do the same job.>>But the renderer (the entity which renders the images of a>game) runs in a single thread. It is basically a loop running>forever and rendering a single image per pass and doing all>the "gameflow" calculations required. >>In a multithreaded environment, the #1 rule is that you cannot>assume anything. When you offload work to a second thread>which may (or may not) run on a different cpu or core, you>cannot assume that this thread will have finished its work>(e.g. loading a set of textures) when your main thread has to>render the next frame. Other processes running on the system>can "steal" cpu time, low memory conditions could generate a>lot of pagefaults which would in turn slow down the thread,>another process may access the harddisk, slowing down I/O and>many more things.>>So, a game can only offload low priority things, that is,>things which would not hurt the gameflow when they complete>later than they actually should. It's simply not possible to>divide that running games into independent sections and let>each of these sections run on a single cpu core.>>The "blurries" are a good example what happens when the>background thread was not able to complete its job in time. It>simply means, that it wasn't able to load the hires textures>needed by the main thread to render the frame in all its>glory, so the renderer will use lower res textures. It's>annoying and somewhat disturbing, but it's not going to>destroy the game.>>If you offload other things (e.g. calculating flight paths of>AI traffic) - things would be different. An AI airplane may>just "disappear" or stop in front of you, because the>background thread wasn't able to complete its job and>calculate the new position for that plane, so the renderer>would still have to use the old position.Also a programmer here... (Java primarily...) I write multithreaded code all the time. And everything you said here is certainly true. Writing multithreaded code IS difficult. Debugging it is even MORE difficult. Most importantly, the problem that you're coding a solution to must be something that can work in a highly discrete parallel nature to really take advantage of multithreaded approaches. Also, as was stated earlier, the x86 processor market really has hit a bit of a wall. The "free ride" of quick easy improvements to x86 processors are over. We saw a period of explosive performance growth between 1990 and 2005 because of the combination of smaller fab processes, but more because of architectural improvements such as superscalar architectures, out of order execution, etc. All of those "easy" advances have been done. All the improvements on the books to the core designs will have small effects, not large ones like we've seen. Finally, consider this - Dual core processors have only been out for a little over a year. Now, if you take into account the number of PC's sold in the past 3 years (which would cover most of the machines people on this board use right now) only like 5% of what's out in the wild are dual core processors (that number will change drastically over the next 2 years, but right now, it's a small %.) As a game developer, are you going to taylor your game to be optimal on 5% of the population's machines or on the other 95%? And let's not forget, the more threads you add into a program that you try to run on a single core machine the more you're going to kill performance. You either code for single threaded or multithreaded. You don't get good performance on both.Personally, I expect to see FS11 to be highly multithreaded. But it certainly didn't make sense for ACES to go that route with FSX.--2002cbr600f4i

Share this post


Link to post
Share on other sites
Guest JohnEGPF

Would like to see some benchmark to see what impact dual core CPU's have in FSX, Maybe someone could disable one core and compare results if that's possible?.John

Share this post


Link to post
Share on other sites
Guest SilverCircle

>Would like to see some benchmark to see what impact dual core>CPU's have in FSX, Maybe someone could disable one core and>compare results if that's possible?.It almost certainly will. Not only because FSX itself will be able to distribute its load somewhat better, but also because other processes (and possibly add-ons) won't steal as much time from FS as they do on a single core CPU. The exact numbers are probably not easy to figure out, but I'am sure we are gonna learn them at some time. I would be suprised, if the actual improvement would be more than 20% though (if a 2nd core would improve it by more than 20%, then I would say the devs have done a very good job).I still think that the fastest single core CPU available may run it better than a moderate dual core processor, simply because such a processor will run the most important main thread faster. When I look at many FPS results for FS9, I always figure that my slightly more than 2 years old Northwood P4 EE can hold up surprisingly well (it still is one of the fastest single core pentiums).

Share this post


Link to post
Share on other sites

>>I,m no programmer but Why Have Intel and AMD invested in>Dual>>core technology if it brings little to the table>performance>>wise?.>>>Because AMD and Intel have "hit a wall" where with current>manufacturing processes, (90nm, 65 nm, etc.) you can only>clock the chip so high before failure and heat bring you>down.>>The solution? Put two cores on one die. Put four cores on>one die.>>Until there is some major advance in architecture, or a major>change in the way chips are made (lower process, or even>radical developments like photronic processors, or laser>processors) you will NOT see any major raw speed improvements>in CPU's. This is the reality we face for the next 1.5 to 2>years. You'll see speedier cpus due to architecture (mem bus,>cores, etc.), but not raw speed.>>>Rhett>>AMD 3700+, eVGA 7800GT 256, ASUS A8N-E, PC Power 510 SLI, 2 GB>Corsair XMS 3-3-3-8, etc. etc.so..Basically Flight sim has no hope of putting all the sliders to the right. Now or in the next few years?What about Piling on Addons like we did in FS9?:)


Manny

Beta tester for SIMStarter 

Share this post


Link to post
Share on other sites

>Would like to see some benchmark to see what impact dual core>CPU's have in FSX, Maybe someone could disable one core and>compare results if that's possible?.>>>John>>You can see it in the task manager... core 2 is used around,...2%? while Core 1 is used 98%?


Manny

Beta tester for SIMStarter 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...