Why do some have CTDs and Others do not?

Many changes were made to the code, requiring more things to be written correctly by developers. Also, a number of options were required that were not required previously. If devs were at all “sloppy”, or misunderstanding, or didn’t get the memo on the changes, this introduced new CTD possibilities that were not in previous versions.

So it could also be a reservation which has been passed to soon. I’m expecting within the graphics pipeline they are using/have created it does not matter what the source is. An asset is an asset, despite how being loaded/unpacked/etc…

network
            \
             -- (handle, handle) -> pipeline graphics card
            /
File system

Nope, you shouldn’t, there should be proper handling of non existing data. But because this thread became quite technical fast, i thought i jump in with a plausible scenario.

I must say that my beautifull schematics are more abstract then abstract would allow :slight_smile:

I know i said graphics card, which is obiously wrong. I tried to generalize.

This was from the same offset?

DX12 has not been implemented in MSFS.

1 Like

With all due respect, this is not what we are discussing, as we clearly have a DEMONSTRATABLE CODE issue here, not a THEORY about a bad or unstable Power supply

3 Likes

Fixed It For You (dam I hate the dam 10 character limit)

2 Likes

I was under the impression the xbox version utilised 12 (if i remember correctly)

1 Like

Not yet. It is coming, though, eventually (early next year I imagine).

1 Like

Ops, sorry, my english is not well and I did not got this when I read. I just tried to help giving a simple way to solve that, instead of change codes and NASA things to fix. As you know, adding a fan is easier for 90%of people here than try rewrites code

1 Like

That throws my theory partly out of the door :joy:.

1 Like

Yes, that is the idea! If fixed TO ME, maybe it could help other too

2 Likes

Or the read thread is not ready providing full information. e.g. textures will be decompressed in order of MIP (LOD level). The smaller levels - very coarse textures - you downloaded and decompressed already, they are seen on a distance. The detailed ones you want to see when you fly over are not filled in yet (not downloaded, or not decompressed completely), which is indicated with a null pointer. Proper handling in this case is to show the coarse textures again… keep the existing resource… and wait for the next x frames. This causes photogrammetry popping. Detail is delayed for some reason. When no texture LOD level available at all, you get the null pointer situation. I think addins can cause this, if there is an error in the textures. Server issues could cause it too, but that would be handled differently. Default (off-line) textures are used instead.

2 Likes

Edit: They’re claiming later this year DX12 will be implemented in the Development log.

https://www.flightsimulator.com/wp-content/uploads/2021/08/Slide1-2.jpg

1 Like

I’m one of the lucky ones who almost never have CTDs. Yesterday, I thought I’d enjoy a change of scenery, so I loaded in some previously-unselected scenery content, three new planes, and some other bells and whistles using the Addon Linker. I started with the Longitude, and when I selected the Standby Power Switch, boom - CTD. I tried again, same result. I went back and de-selected everything, and all was well again.

I looked at flightsim.to and didn’t see anyone else complaining about the CTDs on those mods, so all I can figure is that my system was teetering on the edge, and those seven or eight selections were too much. That’s the biggest reason I think we need a logging system. Maybe there was only one that caused it, but at that time I didn’t want to go through the elimination process to figure out which one it was.

i9-10850 3.6 GHz, 32 GB RAM, RTX 3070, Windows 10

So, yeah… but, shouldn’t this be handled in the code so as not to try to send null data in the first place?
Like a simple “hmm, does this exist, oh, better do this then” check? Instead of just “la dee, dah, here ya go, what do you mean I didn’t give you anything?”

2 Likes

Oh god, so much this :point_up_2: ( i’m pointing to Why do some have CTDs and Others do not? - #32 by ArcanePython931) i think. It makes a lot of sense now you are saying it.

Well, world map and generic loading could be “not ready data”.

When in flight, it could be both newly loaded and the culling could be so aggressive it also marks “backup” resources to be removed, hence not reachable anymore causing these errors.

Passing the “new” and the “backup” textures would probably use the same code path to the renderer, hence these CTD’s.

Edit: I type to slow, pointing to 4 posts back.

Edit 2:
It’s still is all second guessing, but it is making a lot of sense.

Well, maybe it was a choice, render nothing or a CTD.
Sorry, bad joke.

This could mean, in case of photogrammetry, you would see a generated building instead of a photogrammetry one if the texture is not available as a possible solution they could pick, if, big if, this is the case.

2 Likes

That is indeed proper handling of the null pointer. It also depends how these sections were maintained. Take into account some testing could have been removed when the module was optimized for performance.

In any case, a intended null pointer most times indicates missing data. Intended null pointers often don’t invoke exceptions or CTD’s, the rendering pipeline could miss handcraft scenery, show buildings without texture, invisible aircraft, missing shadows, glitches, blocked patterns, etc. But it won’t crash. Unintended null pointers result from multithreading (like scriptkid explained) or bugs in the program, they give these unhandled exceptions and crashes.

The main issue is

(1) Under some circumstance, Null Pointer (or -1) can get created (for whatever reason) – lets say due to unexpected data – or whatever

(2) The Problem here is, there is missing Testing of these Pointers before they are used, that results in the CTD if they are invalid ( 0 or -1)

The issue therefore is a lack of Correct and Sufficient Error Handling - simple as that … as shown 100% in the Code sample I posted earlier, with it’s -1 handle that cause the CTD that was exposed in the analyzed in the CrashDump.

NOTHING to do with Power Supplies or Fans

2 Likes

An Instant like from @Crunchmeister71 is always welcome :sparkling_heart:

1 Like

In my case, the best solution was to turn off the Windows Firewall before starting the Sim. It never fails me and I have never experienced a CTD again.

Fixed it for you…

There are clearly CTD’s associated with overdriven PSU’s and Graphics Cards and SSD’s and…

too.