L3DT development blog
Large 3D terrain generator

July 16

Progress on L3DT 15

Hi Everyone,

It’s been a very long time since I've posted on the progress of L3DT's next stable release. The good news is there have been a lot of bugs fixed recently, and we appear to be on track for a release later this year.

Recent bug fixes

The most recent build, L3DT Pro 15.07 build 2, has fixed what I had considered to be the last of the blocking bugs, specifically:

  1. There was a bug in the mosaic heightfield inflation algorithm that produced empty tiles in the heightfield for specific large map sizes (see bug report by Kulzarn). Surprisingly, this bug had been 'live' and seemingly unreported since 2012, when I added a correction to the heightfield generator to fix an offset with respect to the design map (see here). For heightfields of the order of 50,000 pixels in height or width, a mistake in this correction caused an offset counter to wrap around, resulting in an incorrect coordinate offset that nulled out some tiles.This did not occur at all large map sizes, so perhaps that’s why we’d all missed it until now.
  2. Whilst I was fixing the above bug, I also noticed that when saving mosaic maps at the end of large calculations, L3DT would appear to lock up. It was still running, but the user wouldn’t know that, as the application wouldn’t respond until the save completed, which could have been tens of minutes for large maps. With some digging I realised that this was due to the memory compactor (which runs in the user interface thread) having to wait on a lock held by the mosaic saving algorithm (which runs in a worker thread). Since the user interface thread was stuck and unable to process messages until the save completed, the application would appear to freeze. The fix was to add a flag to abort the memory compactor when long, lock-protected mosaic operations were in progress (mostly saving, exporting). This seems to work nicely, but we really should give it a good run of testing to make sure.
  3. There was a fault in the backup/undo plugin that threw error messages when you use a brush tool. This had been reported sporadically, but could not be reproduced. This time, with a rather late night, some good luck, and most importantly, a log file kindly provided by Kiwi-Hawk, I was able to reproduce, diagnose, and fix the fault. It occurred when the brush radius was larger than 64 and the brush was applied near to the edge of the map, such that the farthest extent of the brush was equal to or more than 64 pixels off the end of the map. Very specific, no?

Status of L3DT 15

With the above bugs fixed, I’m now cautiously optimistic that all the major features of L3DT 15 are now working as intended, including the previously troublesome dynamic memory manager. However, I think it prudent to still run for another few months of community testing to make sure there are no other problems before compiling the release build.

The log of bug-fixes since the last release back in November 2011 is now really huge, so I’d encourage any users still working with v11.11 to give the latest build a try. It should be much more stable and better performing than 11.11, and it will be better still with more users downloading and using it. If you do happen to find any more bugs, please send me an e-mail or post in the forum. Even if it’s only just a little annoyance, I’d love to hear about it. Of course, I am also most grateful to the users who have already reported bugs, especially those who took the time to provide logs or example map files, which have been most helpful in allowing me to reproduce, diagnose and fix bugs.

How to download?

To download this v15.07b2 update, please consult your sales/registration receipt for the download instructions. This is a free update to anyone with a L3DT Pro license purchased since the last release (i.e. after November 2011). If you have an older license, you can always try the new version using a free 90 day trial license.

Fin

Cheerio, Aaron.

2015/07/16 12:33 · aaron
 
blog/2015/07-16.txt · Last modified: 2017/08/31 06:48 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
L3DT Development Blog RSS Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki