eb5fe5bce9
New code produces same result without loop at all, so it cannot fall in infinite loop, and it is faster in use cases requiring more than one loop in previous code. The Unvanquished vega map is known to trigger the bug: https://github.com/UnvanquishedAssets/map-vega_src.dpkdir I reproduced it multiple time on various hardware (8 core FX-9590, 12 core/24 thread Ryzen 9 3900X) with commit af40508 and using final compilation profile edited to use -fastbounce instead of -fast option. The symptom is simple, q3map2 stucks there: --- Radiosity (bounce 1 of 8) --- --- RadCreateDiffuseLights --- 0...1...2...3.. Or somewhere else in that progression bar given your hardware and the amount of core your CPU has. When stuck, all the CPU cores are running 100% but the thread never returns (a strace can reveals it, a gdb backtrace too). Thanks to @slipher for the precious advices and improving my first attempt to fix it. For more information on the issue, I asked: > which negative value never can become positive > when incremented infinitely? slipher said: > for a double, any value less than -2^53 would have this property > don't know for float off the top of my head But then, it means that's theorically verified this loop was able to run forever in some case. I don't know what this code is doing anyway, but at least we can keep the behaviour without requiring to understand it. |
||
---|---|---|
apple | ||
contrib | ||
docs/manual | ||
include | ||
install | ||
libs | ||
plugins | ||
po | ||
radiant | ||
regression_tests/q3map2 | ||
tools | ||
.cproject | ||
.gitignore | ||
.gitmodules | ||
.project | ||
.pydevproject | ||
BSD | ||
config.py | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
GPL | ||
GtkRadiant-build-commands.json | ||
GtkRadiant.srctrlbm | ||
GtkRadiant.srctrldb | ||
GtkRadiant.srctrlprj | ||
install.py | ||
LGPL | ||
LICENSE | ||
makeversion.py | ||
prepare_archive.py | ||
radiant.pot | ||
radiant.sln | ||
README.md | ||
SConscript.lib | ||
SConscript.module | ||
SConscript.q3data | ||
SConscript.q3map2 | ||
SConscript.q3map2.urt | ||
SConscript.radiant | ||
SConstruct | ||
TRANSLATING | ||
uncrustify.cfg | ||
utils.py |
GtkRadiant
GtkRadiant is an open-source, cross-platform level editor for id Tech based games. It comes with some map compilers and data authoring tools.
Downloads
Ready-to-use GtkRadiant packages are available on the Downloads page on GtkRadiant's website. Some installation instruction may be useful.
Useful links
Supported games
GtkRadiant provides level editing support for Quake, Quake2, Quake III Arena, QuakeLive, Quetoo, Return to Castle Wolfenstein, Star Trek Voyager: Elite Force, Star Wars Jedi Knight: Jedi Academy, Unvanquished, Urban Terror, Wolfenstein: Enemy Territory.
How to build
You can find more complete instructions to build on Windows there and to build on Mac OS there.
# get the source
git clone "https://github.com/TTimo/GtkRadiant.git"
# enter the source tree
cd GtkRadiant
# build everything
scons
You can build a specific part like this:
# only build the GtkRadiant level editor
scons target="radiant"
# only build the q3map2 map compiler and the q3data tool
scons target="q3map2,q3data"
Level editor binary (radiant
) and tools (like q3map2
) will be found in install/
directory.
The build process automatically fetches gamepacks.
Getting in touch
The #radiant channel at QuakeNet is the official GtkRadiant IRC channel. Come and chat about level design, development or bugs, you're welcome. Bugs can be submitted on the GitHub issue tracker.
Legal
GtkRadiant source code is copyrighted by id Software, Inc and various contributors and protected by the General Public License v2.