Jump to content
The Dark Mod Forums

DarkRadiant 1.5.0 pre-release sanity check


greebo

Recommended Posts

Can I have that specific map where this is happening?

 

Just got home, so I'm gonna try reproduce it now.

 

BD, I thought I kept forgetting to save my changes, really didnt understand what was going on and how I'd fixed the same wall 3/4 times and never managed to save aftwards. Makes a lot more sense now! :)

Link to comment
Share on other sites

  • Replies 183
  • Created
  • Last Reply

Top Posters In This Topic

Ok, the problem seems to be on map loading, it's skipping the brush(es) during parsing or for some reason excluding them.

 

In 1.40 the same map opens and the brush is placed correctly.

 

This is a texture test map which shows the problem, so if you're not using the svn version everything shows as default textures. The tiled floor infront of the cam, with the lantern bug on it is not there in 1.50 and there in 1.40.

Link to comment
Share on other sites

Ok, the problem seems to be on map loading, it's skipping the brush(es) during parsing or for some reason excluding them.

I could reproduce the problem. This is what I've found so far:

 

- The brush is created in memory, but it's getting placed at the origin with its yz bounds set to a huge/infinite values.

- It doesn't occur in a debug build.

- It occurs in the release build, but only the first time you load the map. If you load the map again without exiting DR the issue is gone.

- It doesn't occur in a VC++ 2008 build, only in builds compiled with VC++ 2010.

- It occurs regardless of whether a debugger is attached or not.

 

So right now, it's specific to the first map load in the session in a VC++ 2010 release build. Hooray, sounds like something is going on at the lower levels.

Link to comment
Share on other sites

My map was missing brushes too.

 

One of my big roof-part dissappeared, i noticed it right after booting radiant , felt like an incompatibility during load, but then i thought i just deleted it accidentally, because i then reloaded the map twice or trice and it was there..

 

But today just as i fired up DR and loaded my map the same exact brush was gone again..

loaded again: still missing

loaded for a third time: it's there and fine..( EDIT: i did quit DR for the second load so thats why it was still missing)

 

EDIT: Yes, the above post systematics of the error is true, it happens only on first load, if reloaded without exiting DR its fine.

 

the brush is a wordspawn brush and its quite complexly clipped., its textured with stone and rooftilings, no special texture. It's a top piece of a tower.

Edited by _Atti_
Link to comment
Share on other sites

After digging into this it seems this is an issue introduced by the compiler's optimisations. When switching off optimisations (/Od) the problem goes away. Looking at the assembly code I see that the compiler is expanding my while loop twice, and somewhere along these lines the stack is messed up (there are a lot of callbacks going on after the first plane is added to the first brush, and when the instruction pointer returns to the parser's frame the plane values do not get assigned correctly anymore. I don't think I've done anything wrong from the C++ code's point of view, so this smells like a compiler issue (although one always needs to triple check before pointing one's finger to the compiler).

Link to comment
Share on other sites

greebo, would you advise me to stop working on my map until this is fixed or does it seem like any lost brushes will automatically recover? I have no way of knowing if I've lost any brushes except by chance.

The brushes definitely won't recover themselves. At this point I can only recommend not to use the pre-release builds for production use and advise to use backups and snapshots extensively - I'm working on a fix in the meantime. I've also been searching the MS knowledge bases for a similar issue as this one, and there are a few user reports about x64 optimisation bugs in VC++ 2010. So far, there's the VC++ 2010 Service Pack 1 (Beta) available, I'm going to give that one a test run to see if it resolves the issue.

 

Failing that, there's the possibility to switch off the compiler optimisation for the mapdoom3 module, or to fall back compiling in VC++ 2008.

Link to comment
Share on other sites

OK, thanks greebo. I'll revert to an earlier save. I have a pretty good idea of all the work I've done with this version I can save out as a prefab and reload. I just need to check which was the last backup with the old version.

 

Thanks Biker but it's not realistic to go through a map this size. Even I wouldn't necessarily notice if a brush was missing.

Link to comment
Share on other sites

Second thoughts. I thought this was a couple of days but it's a week and my backup just before then seems I've done more work than I thought, ie, into the realm of unknown work.

 

I'm inclined to do a rough sanity check for any obvious missing brushes and then chance it and restore any if I find some later. So these brushes can be any old brushes or only new brushes made since this version installed do we know?

Link to comment
Share on other sites

You probably won't notice anything, as during map load the most time is spent on loading the textures and models.

 

There's a new pre-release build with disabled optimisation for the brushDef3 parser.

 

32 Bit: http://www.dramthethief.com/darkmod/files/darkradiant/darkradiant-1.5.0pre12.exe

64 Bit: http://www.dramthethief.com/darkmod/files/darkradiant/darkradiant-1.5.0pre12.x64.exe

 

Can somebody confirm this build is behaving better?

Link to comment
Share on other sites

Is there perhaps a single optimisation you can switch off, for example loop unrolling (if this is what it is doing)?

There are a bunch of optimisations to configure, but I couldn't get it to work unless I switched it off completely. I particularly tried the "favour size over speed" setting, but this didn't work out.

 

It's not a huge deal, I could fix it by disabling optimisation for one single method, and I doubt the difference can even be measured in a real-world environment. I'm rather annoyed having to fix something like that in the first place, and I'm hoping there is no other bug cropping up because of the optimiser.

Link to comment
Share on other sites

I dont know if anyone else hads this with the any of the pre-release versions, but all of the FS in a map Im working on had an erroneous arg added to them

 

"func_static_4:func_static_4"

 

I have just spent the last 2 hours removing all these.....:angry:

 

@Greebo - this was prior to days update..

Edited by Bikerdude
Link to comment
Share on other sites

 

Got another bug, that I have had on 3 different maps.

 

I cant select or unselect items of objects within DR - this effect both items in ortho and menus.

 

1st time: I couldnt unselect an item I have shift-cliked on in ortho.

2nd: pressing escape had no effect on selected items in ortho.

3rd: could click on the light colour button

Edited by Bikerdude
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • nbohr1more

      The FAQ wiki is almost a proper FAQ now. Probably need to spin-off a bunch of the "remedies" for playing older TDM versions into their own article.
      · 1 reply
    • nbohr1more

      Was checking out old translation packs and decided to fire up TDM 1.07. Rightful Property with sub-20 FPS areas yay! ( same areas run at 180FPS with cranked eye candy on 2.12 )
      · 3 replies
    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 7 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
×
×
  • Create New...