The Blurries
One of the topics that comes up a lot on the forums regarding Flight Simulator is that of “The Blurries”. There has been a lot of speculation regarding the cause of this, some of it close to being correct, some of it just plain wrong.
So what are the blurries? Well, they are just one aspect of the problem of resource starvation, most obviously manifesting itself as blurry terrain.
The interesting thing about this issue however, is that the resource we are running out of is time1.
In order to understand the issue, I need to explain a little of the inner workings of Flight Simulator. Although it might be surprising to some, the application actually has a lot to do other than just render triangles as fast as possible. In order to render those triangles, we need to know what to render where and what to texture it with.
There’s a lot of data to process at runtime (as you’re flying at potentially 500 knots over the landscape). The terrain system needs to load source textures; composite them based on land class data; render roads and other vector features into the composited textures; light the terrain taking into account features such as valleys; figure out where auto-generated buildings and trees are to be placed; exclude some of those due to placed features such as the Space Needle; burn the shadows of the buildings into the textures; and much, much more.
There are also many other systems doing similar things, systems such as AI, ATC and weather.
The way that Flight Simulator handles these tasks is to divide all these tasks into much smaller jobs and then use a form of cooperative multitasking called fibers to schedule them. This system allows us to schedule exactly how much time all this processing gets in order to maintain a consistent frame rate. Without fibers, each system would need to be developed to play extremely nicely with other systems and would need to know how to suspend itself and maintain it’s state - we can’t have a particularly complex task run without interruption for hundreds of milliseconds.
So in summary, fibers allow us to write complex tasks without stalling the application.
But therein is the issue.
The fiber system needs time to run, so where does it get it from?
It’s a bit more complex than this, but basically the main loop in the application keeps track of how long a frame takes to run and it has a target frame rate. The time left over is given to the fiber system. If there isn’t any time left over, the fiber system is given a minimal amount of time to run so that some work gets done, but it ain’t gonna be pretty.
This is what happens when you set your target frame rate in the settings section to “unlimited” on a system that can’t cope.
When running with an unlimited target frame rate (or any target that your system cannot achieve), the fiber system is starved of time, work items take a long time to finish and you end up with a blurry terrain until (if ever) the system finally catches up.
If you’re flying at 500 knots and your system is not capable of keeping up with the processing needed, the fiber system may never catch up.
So what’s my recommendation? Drop the “lock to frame rate” slider to a level that the system can maintain.
Then drop it a little bit more. Give the system some time to do something else other than just render triangles as fast as possible.
1 Caveat - video memory starvation can also cause blurry textures, but the issue described above is the main culprit.
4 TrackBacks
Listed below are links to blogs that reference this entry: The Blurries.
TrackBack URL for this entry: http://www.steve-lacey.com/cgi-bin/mt/mt-bar.cgi/627
The pun may be a bit of a stretch, but nonetheless, lots of ground to cover, dear reader… Item... Read More
It looks like the topic of The Blurries spurred a lot of conversation - it was my highest hit post in the shortest amount of time, and definitely the most commented upon and cited. So I’d like to start some... Read More
In a similar vein to The Blurries, stuttering, or hitching (as it is commonly known in the first person shooter communities) is another topic of interest and frustration amongst Flight Simulator users. Stuttering is similar to the blurries, in that... Read More



Thank you!
Thanks for the explanation Steve!!! Much appreciated :-)
This may be alright in theory. I've been a programmer for over 40 years and a pragmatist.
I created an FS Navigator flightplan flying at 240 knots at 3000ft over photographic scenery for the UK with custom autogen. With fps set to unlimited, the average fps was recorded at 50+ and blurring lasted a few seconds at most. Repeating the flightplan with fps locked at 15, blurring occurred within a few minutes and lasted minutes.
Any comments Steve?
George
Sorry, I should have mentioned my setup. It's a 3.02GHz Xeon with 1Gb memory, two SCSI drives and an FX6800 Ultra 256Mb graphics card.
George
Interesting and helpful article Steve. Now we know why. I find capping fps at 30 works well on my system. [with the exception of a few payware aircraft that use too many textures.]
P4 3.4 2GB, 6800 Ultra 256mb
Hi George - yes there is another issue at play here.
The terrain system will only complete one terrain tile per frame. What this means that if your system is powerfull enough so that the fiber system is not starved of CPU cycles, and is therefore able to keep up with the production load, then the faster the framerate, the more tiles become available per second.
This can also manifest itself as a windowed versus fullscreen issue.
If "unlimited" works for you, then windowed should be better as it is not locked to the refresh rate of the monitor, therefore more frames and quicker throughput for the terrain tiles, whereas in fullscreen mode the system will be locked to the refresh rate of the monitor (or whatever you set in the display settings) and exhibit potentially lower terrain production throughtput.
Does that make sense?
As with all things, unlimited may work for some people, and not for others, because due to their settings for weather, AI, etc... the fiber system might be busy doing other things other than just terrain work.
Overall, the general recommendation is still not to use unlimited, but if it works for you, go for it.
Thanks Steve. That is the one thing I didn't mention, as I run a dual monitor system, I always run in windowed mode.
So when I limit the frame rate to a lowly 15fps it will only process 15 tiles per second? No wonder it results in blurred textures.
In the above test I had 50 AI aircraft in the vicinity with a single layer of cloud and visiblity of 30 miles.
George
Steve, great blog, and very interesting topic.
I've been of the mind that the two solutions (minimum acceptable FPS and unlimiting) solve two different problems. This has been validated by you, IMO.
First, those who are asking the sim to render too much detail, or render it too quickly, benefit most from setting a fixed minimally acceptable FPS.
Second, those who need to overcome a hardware bottleneck (such as low video memory or GDI resources) benefit from most from unlocking the FPS - by analogy, "forcing" the polygons to get rendered.
My question is this - Is it possible to define a specific type of scenery detail that would lead to the blurries of one type or another? What I am really asking is do highly detailed LWM/VTP polygons or lines with many vertices use more memory or resources irrespective of texture? Or, do highly vertexed polygons/lines just take more CPU cycles for the sim to render?
Thanks again!
Best,
Scott Gridley
I have many colleagues who have very different performace results between windowed and full-screen mode, and I have never really understood why ... until now. Excellent post, Steve.
Owen
Steve
First of all, can I say many thanks for posting this vital information, and for following up George's comments above with such a detailed reply. As the creator of VFR Photographic Scenery for England & Wales way back in 2002 (which as a self-confessed Englishman you will hopefully be aware of), this is a topic which has naturally occupied a lot of my time and attention over the past few years, and it has been frustrating to have been unable to deliver the "definitive guide to the blurries" which I rather naively promised in the early days of my investigations.
Your description of the main terrain rendering loop, the fiber based co-operative multitasking system, and the single tile per frame limitation all make perfect sense, and fill in so many vital details that myself and some of my fellow scenery developers have been pondering all this time. I cannot tell you how welcome your post is!
However, I am still having a problem reconciling some aspects of how a such as VFR Photographic Scenery (i.e. a custom terrain texture scenery covering the complete landscape) performs in practice compared to what might be predicted. Rather than clog up your blog with lengthy comments, perhaps I can refer you to this current discussion on the Visual Flight forums:
http://www.visualflight.co.uk/forums/topic.asp?TOPIC_ID=4659#25746
I hope none of the above discussion comes across negatively in any way
- it certainly isn't intended to. The information you've given in this post
is fantastically useful and much appreciated. I'm just wondering if
perhaps there isn't some additional detail or clarification which might be
useful in explaining
some of what I'm seeing, and that I may finally be able to deliver that elusive
"definitive guide" after all. :-)
Thanks once again
John
Visual Flight
http://www.visualflight.net
Hi Steve
Great blog.
re: the Blurries
I fully understand/accept what you're saying for a moving viewpoint,
can you please explain what's happening in the following situation -
Whilst sat as an observer at an airport watching AI,
(without moving, or changing view mode, orientation/zoom or anything else),
why a building who's texture is initially pin-sharp
would then become blurred,
taking maybe 1 min plus to reinstate itself to sharpness again ?
i.e.
Why, having been sharp, would it become blurred at all ?
Is this a case of video memory starvation ?
ATB
Paul
Hi Steve
Mean't to add a couple of qualifiers & questions.
Could you please give a definitive on the following related points -
This particular airport scenery is quite complex, a bit of a frame hog and is compiled as a single bgl.
i.e. a large planar surface with lots of widely separated, complex and many textured protrusions.
The viewpoint quoted previously is only looking at a very small sector/percentage of this airport area.
(It's also a startup situation, so haven't been panning round the whole area previously.)
Would the rendering engine handle the visuals better
if the scenery was split into multiple bgls ?
i.e.
the planar ground surface as one bgl
each building being compiled in its own independent bgl
each building having its own texture.bmps, (rather than many shared across many).
ATB
Paul
Scott - Anything that increases the complexity of what the terrain engine has to do in order to generate a terrain tile is going to impact the time it takes to generate the tile.
I.e. the simpler the better. A lot of vector data can be simplified without losing visual quality, though it can be hard (colinear lines, etc...). But if all that optimization is already being done at author time, then it obviously really comes down to a visual quality versus load time balance on the part of the creator.
Hope this helps!
- Steve
Paul - the first issue you mention, that of a texture becoming blury and popping back in a second later indeed sounds like video memory starvation.
When video memory is full, we must still have a texture for everything in video memory so we will drop the top level mips of textures until everything fits. After a short while, unused textures will age out of the cache and more video memory will become available, allowing us to reinstate the requested (i.e. top level) mip.
As for your second set of questions, multiple bgl files make no difference, but putting as much as possible on as few textures as possible does.
Fewer textures mean less work, less overhead in internal structures, and less video memory fragmentation. It also allows us to draw more in a single call rather than having to change state and draw in multiple calls.
- Steve
John - I'll be checking out your site, but I'll probably be posting a response back here to keep all the good information in one place ;-)
Btw, thanks everyone for your great comments so far!
- Steve
Hi Steve
Cheers for your reply.
What your saying is understandable in a changing state.
This is steady state viewing over a long period, when the blurring suddenly occurs.
Could it be a non-mipped AI A/C passing through the field of view that causes the blurring ?
re BGLs
I understand the fewer textures position.
I must admit I'm surprised at the single very complex bgl,
being an equivalent performer to several simple bgls, (especially when the majority are not in view).
I guess this is whole environment modelling related.
Many thanks for your time.
Paul
Paul - Regarding AI non-mipped AI traffic. Absolutely this could be an issue. We've seen multiple cases where aircraft are non-mipped (and non-LOD'd for that matter) causing issues.
Steve - I spotted a couple of places in my forum post where edits had left it not making a lot of sense - not too helpful in the circumstances. I've just corrected the errors, so if you you've already read it and wondered what I was on about, please feel free to revisit if necessary - John
John - After some consultation, I believe this will explain what you're seeing.
In FS9, lower resolution (but geographically larger) tiles of photographic scenery take a disproportionately long time to build compared with the higher resolution (but geographically smaller) tiles. When you cross a lower resolution tile boundary, requests for new low resolution tiles block the texture production queue and delay processing of the higher resolution tiles as, in FS9, the tiles are produced serially (first in, first out).
This goes back to the "give the fiber system more time" issue.
Using "unlimited" may work for you in most cases, but you're now hitting a trade off when sometimes, the fiber system may need a lot more time to do it's work. By starving it when the terrain system needs to build those large low resolution tiles, the processing of the high resolution tiles gets delayed until finally they're processed and they all pop in.
Theoretically speaking, pushing out the LOD radius may help on high performance systems, but I've not tested this directly to find out.
- Steve
Steve
Many thanks for your continued feedback. I'm sure everyone appreciates the time you're putting into this.
I'm a little confused about the distinction you're making between "lower resolution (but geographically larger) tiles of photographic scenery" and "higher resolution (but geographically smaller) tiles". The only tiles involved in rendering the photographic scenery as far as I'm aware are standard custom terrain textures (if that's not a contradiction in terms!), i.e 256x256 mip-mapped DXT1 bitmaps - the same as are used in all similar photo/satellite sceneries covering large areas. I'd appreciate it if you could clarify this so I can put the rest of what you're saying into context.
Pushing out the LOD radius (by which I assume you mean TERRAIN_DEFAULT_RADIUS) is the standard recommendation from all developers of this type of scenery and similar, and in fact is something we identified during beta testing of the photo scenery with FS2002. A tool on the VFR Photographic Scenery CDs allowed this to be tweaked by non-technical users, and a later tool, FSConfig, is available for download from the Visual Flight web site for anyone interested who has not yet tried this tweak.
Apart from that, I don't think there's any combination of factors which hasn't been tested, and although many people can achieve satisfactory, blurry free performance even at high flying speeds, there's always a feeling that getting the balance right hangs on a knife edge. Getting more of an idea what's actually going on will allow us to identify the important elements of the setup, and hopefully give better advice, allowing a much wider range of users to achieve a satisfactory set up. Any additional information you can provide will be most welcome.
Thanks again
John
John,
I *think* I understand what you're asking here in the first part. It's possible I've misunderstood you, so if I have, please excuse.
Terrain textures in FS9 are built from 256 X 256 textures that at their highest resolution (4.8 meters per pixel)represent a 1km X 1km section of the earth.
Those textures are built in what is basically a ring around the highest resolution section.
The textures in the distance are rendered by taking lower resolution versions of the high res 1km textures and munging them into a single 256 X 256 pixel image-- like 4 128 X 128 textures are combined in one 256 X 256 texture to create a 4km X 4km area.
This ring contains ever more 1km X 1km textures at lower and lower resolutions until we stop compositing them and draw the "mega" texture instead.
Hope that helps,
Jason
Precisely. Thanks Jason for making that clear. When I talk about tiles, I've been talking about the output from the terrain engine. A single output tile may be comprised of many source input tiles.
So the generation of a low resolution tile you see in the distance, still 256x256 but covering a large geographical area, may require the reading and processing of many source high resolution tiles.
hi guys,
to sharpen a photoscenery fast depends a lot of the cpu, if you have a single core one or dual core.
i tested on 2 pcs the same fs9 configuration. on my left hand with intel p4 3.0 gig (overclocked 3.4 gig) and on right hand an amd fx57.
the intel was much more better in sharpening against the amd. when i deactivated hyperthreading in the p4 i had the same bad sharpening as with the amd.
so i think, fs9 needs always 100% for its own. in single core fs9 must share the cpu power with system processes and other processes. this are mostly just 1 or 2 or 3 percent. but these percents will fs9 have for sharpening fast according my tests.
in dual core fs9 have always 100% in the first core and all other processes are running on the second core. so in this configuration photosceneries become much mor faster sharp against single core.
i tested this for a long time and everyone who has a p4 can test this too with photoscenery with and without hyperthreading.
i have wrote a lot of my tests and this phenomen in german forums but will not do this again in english hehe.
regards
dieter
Jason and Steve
Many thanks for the clarification and further explanation. Yes, I understand that perfectly now. I'm going to have a play with this new-found knowledge, though I think there are still possibly some anachronisms to explore.
John
Hi All!
Actually I have a 128Mb video card.
I assume that if I have a 512Mb Video Card I can maximize the TERRAIN_DEFAULT_RADIUS parameter in fs9.cfg in order to obtain more sharpen textures in photo sceneries. Can PCI-Express interface optimize the speed of the process that load high definition textures into the simulator?
About Dieter tests: do you think really that P4 HT can speed up the loading of high definition textures? I don't think so.
Best Regards,
Maurizio
Hi Steve!
I'm asking if the hard-disk performances weights to the speed of updating photo scenery textures. It is so?
Best Regards and very compliments!
Maurizio
Maurizio - Yes, hard disk performance will definitely help. It will make the textures available to the system faster, but any processing is still going to be dependant on the amount of time available to process it, and the thoughput of the system as described above.
- Steve
I have a weird issue. When I just with scenery on in my view my FPS are fine 20ish. When an airport comes into view, I get this glitch that happens every 2 or 3 seconds. Almost like it drops down to 5-10 FPS. But with Shift-Z My FPS still are 20ish and don't really change for either times. Any suggestions. I am running all stock with no add-ons at this moment. It is on a laptop but runs pretty good for its power.
Thanks for any help.
Please respond to my email.
gregmbranch@hotmail.com
Thanks
Hi Steve,
I read your post on the Blurries. I experienced them for quite some time. I tried all the tweaks in the cfg file and everything else thrown out there. Well I built a new machine with a E6800 Duel core, Geforce 8800 GTX, 2 GB of ddr2 ram and a Nvidia 680i motherboard and 2 wd raptors. I installed everything and guess what I still have the blurries. They are exactly the same as it was with my AMD 3000 system with 1 gb of ram and a 7800 gs agp card. I locked the frame rate very low and still get the blurries with texture popping. It happens at altitude and down low flying airliners. Why would this happen to a machine with alot more horsepower than my previous one with the same addons? I use Active Sky 6.5 FSUIPC 3.72, GE Pro and Ult. Terrain and traffic. I no addon sceneries and everything is shutdown upon starting FS.
Thanks,
Jeff
Jeff, I have the same situation you just described; 680i/E6600/8800gtx/2GB/500gb RAID (before XPPro now Vista Ult.)...OK, I had blurries with my old pentium 2.4, and they are about the same now with the power rig. No matter what sort of tweaks in FS9,cfg I try, they always creep in. It happens with stock scenery, with Ult.Terrain, GE, Megascenery... However, I loaded SoCal v2 MEGA into FSX and it appears that FSX deals with terrain better - I don't use the fiber parameter, it just makes things worse. FSX seems to be way less prone to blurries which makes me think that the FS9 engine is just flawed and can't deal with scenery well at all over longer period of flying time. I see people claiming "no blurries" and then they post screenshot and it's all wrong with poor texture visible in the background of their shots. I wish I knew how to get crisp AND s u s t a i n e d textures in FS9. I may just switch to FSX because terrain engine can actually keep up with textures better.
Dave
Steve- Related a few hundred years ago? Lacy, Lacey, DeLacy? Posting here in case your email doesn't get this.
I thought I would drop you a line to see if you had any ideas on this. Here goes:
FS9 installed years ago, no appreciable problems. ATI Radeon 9600 video card, 128 mem. 1.5 gig mother board, Intel W845DN (old by now), front bus speed is 400 if I remember correctly. Settings in FS9 are fairly conservative, scenery – all sliders are at normal, clouds- simple. Frames locked at 20. Display- 1024x728x32 (think those are the numbers). 1.4 memory, Windows XP with SP2.
When in flight, regardless of aircraft flown, no third party scenery in view or even out of view default trees, mtns, etc slowly go blurry- takes about a minute or so. I do a refresh screen and all comes back. The redraw seems to be in quick successions rather than all at once. At this point I’m fine for another minute or so when this all repeats. During all this frame rates show right around 17.5 or so.
Any slight third party scenery seems to drop my frames like a rock. Some objects may show up grey then correct themselves as if FS9 is looking for the applicable bmps. Default beacon towers at night may show grey cones instead of the lights. Screen refresh corrects this.
All this occurs regardless of where I fly. If on the ground I don’t believe I get the blurry problem until I get aloft.
I can’t really say when this all started. All seemed to be fine about a year ago, I believe. About that time or earlier I started to do my own designing, then purchased FSDS to do my own objects. Uploaded much of my work under Robert Lacy at Avsim and Flightsim.com. during this time I did very little flying, if any.
Recently started flying with friends again and noticed this problem. The sceneries developed for our flying region are all mip mapped and dxt1 bmps. There are a few objects that are frame rate heavy, which I personally took out for my own benefit.
I have tried to reinstall FS9. This did not solve the issue.
My power supply is only 250, but as I stated I had no problems a few years ago. Could the power supply be getting tired? Could the video card be getting tired. I believe I have the latest driver for the video card. Could it be dust in the machine? I cleaned out all the dust, unplugged the video card and rubbed an eraser on the contacts and reinstalled. Hard drive is only an older 60 gig. Hard drive getting tired?
Took out all the XP security patches which sped up my machine but did nothing for FS9 problem. I have the FS9 update patch. During reinstall of FS9 I did uninstall the patch first then FS9 itself. Before adding back many sceneries (I have about 80) I tested for the problem. It was still there.
For scenery arrangement I have addon scenery\lens easy scenery\scenery with all pertinent bgls. And \texture with all pertinent bmps for my objects.
For sceneries- example… addon scenery\kgtf\scenery, with no texture sub folder. Addon scenery\scenery has very little in it. Once in a great while some bmps might not show. I move those to fs9 texture which solves the problem.
I have followed tips from David (Opa) Marshal and have beta tested some of his work, and he has helped me greatly on a number of items.
So that’s the basic story. Also- a different issue- at Lewisaire.com we have a very nice kneeboard to fly with, which is connected to the website. It is done in html except for one item (hdg\dist calculator) which is done in htm. Everything works on that kneeboard except for this one calculator. This happened a couple of months ago. I run IE 7. Used to have IE 6 and upgraded. I think this is my fault. I was cleaning out some old files and noticed some of IE 6 still hanging around. I got rid of it. Since then I cannot run that htm calculator. This is my best guess as to cause and effect. There may have been some file in IE 6 which Is not in IE 7 which I now do not have.
If you have any ideas on all this your expertise would be most appreciate. Robert Lacy (Bob)
i have quad core 2.6 GHZ,1333 FSB,3.25RAM,nvidia 260GTX 856memory,and i still geting blurry FPS locked to 24fps i'm geting stedy 23.5 programs runing squab3,active sky6,and WILKO boeing 737.about 40-55 if FPS unlimited. so i still dont understand it's my PC or FS2004 game just bad created.