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. |
||
|---|---|---|
| contrib | ||
| docs | ||
| icons | ||
| include | ||
| libs | ||
| plugins | ||
| radiant | ||
| regression_tests/q3map2 | ||
| setup | ||
| tools | ||
| .cproject | ||
| .gitattributes | ||
| .gitignore | ||
| .patchsets | ||
| .project | ||
| branch-manager | ||
| ChangeLog | ||
| ChangeLog.idsoftware | ||
| COMPILING | ||
| conftest.cpp | ||
| CONTRIBUTORS | ||
| cross-Makefile.conf | ||
| download-gamepacks.sh | ||
| DoxyConfig | ||
| Doxyfile | ||
| generic_cpp.py | ||
| generic_h.py | ||
| generic_module.py | ||
| GPL | ||
| install-dlls-fedora.sh | ||
| install-dlls-msys2-mingw.sh | ||
| install-dlls.sh | ||
| install-dylibs.sh | ||
| install-gamepack.sh | ||
| install-gamepacks.sh | ||
| LGPL | ||
| LICENSE | ||
| Makefile | ||
| Makefile.conf | ||
| merge-from-zerowing.sh | ||
| mingw-fedora-Makefile.conf | ||
| mingw-Makefile.conf | ||
| mingw-Makefile.inc | ||
| mingw-radiantdeps-Makefile.inc | ||
| msys2-Makefile.conf | ||
| README.md | ||
| TODO | ||
| uncrustify.cfg | ||
NetRadiant-custom
The open-source, cross-platform level editor for id Tech based games.
NetRadiant-custom is a fork of NetRadiant (GtkRadiant 1.4→massive rewrite→1.5→NetRadiant→this)
Downloads
Ready-to-use packages are available in the Releases section.
Supported games
Main focus is on Quake, Quake3 and Quake Live.
Though other normally supported games should work too; See unverified game configs.
Features
Development is focused on smoothing and tweaking editing process.
Random feature highlights
- WASD camera binds
- Fully supported editing in 3D view (brush and entity creation, all manipulating tools)
- Uniform merge algorithm, merging selected brushes, components and clipper points
- Free and robust vertex editing, also providing abilities to remove and insert vertices
- UV Tool (edits texture alignment of selected face or patch)
- Autocaulk
- Left mouse button click tunnel selector, paint selector
- Numerous mouse shortcuts (see help->General->Mouse Shortcuts)
- Focus camera on selected (Tab)
- Snapped modes of manipulators
- Draggable renderable transform origin for manipulators
- Quick vertices drag / brush faces shear shortcut
- Simple shader editor
- Texture painting by drag
- Seamless brush face to face texture paste
- Customizable keyboard shortcuts
- Customizable GUI themes, fonts
- MeshTex plugin
- Patch thicken
- All patch prefabs are created aligned to active projection
- Filters toolbar with extra functions on right mouse button click
- Viewports zoom in to mouse pointer
- 'all Supported formats' default option in open dialogs
- Opening *.map, sent via cmd line (can assign *.map files in OS to be opened with radiant)
- Texture browser: show alpha transparency option
- Texture browser: gtk search in directories and tags trees
- Texture browser: search in currently shown textures
- CSG Tool (aka shell modifier)
- Working region compilations (build a map with region enabled = compile regioned part only)
- QE tool in a component mode: perform drag w/o hitting any handle too
- Map info dialog: + Total patches, Ingame entities, Group entities, Ingame group entities counts
- Connected entities selector/walker
- Build->customize: list available build variables
- 50x faster light radius rendering
- Light power is adjustable by mouse drag
- Anisotropic textures filtering
- Optional MSAA in viewports
- New very fast entity names rendering system
- Support 'stupid quake bug'
- Arbitrary texture projections for brushes and curves
- Fully working texture lock, supporting any affine transformation
- Texture locking during vertex and edge manipulations
- Brush resize (QE tool): reduce selected faces amount to most wanted ones
- Support brush formats, as toggleable preference: Axial projection, Brush primitives, Valve 220
- Autodetect brush type on map opening
- Automatic AP, BP and Valve220 brush types conversion on map Import and Paste
- New bbox styled manipulator, allowing any affine transform (move, rotate, scale, skew)
- Incredible number of fixes and options
Q3Map2:
- Allowed simultaneous samples+filter use, makes sense
- -vertexscale
- -novertex works, (0..1) sets globally
- Fixed _clone _ins _instance (_clonename) functionality
- -nolm - no lightmaps
- -bouncecolorratio 0..1 (ratio of colorizing light sample by texture)
- q3map_remapshader remaps anything fine, on all stages
- Fixed model autoclip, added 20 new modes
- Automatic map packager (complete Q3 support)
- -brightness 0..alot, def 1: mimics q3map_lightmapBrightness, but globally + affects vertexlight
- -contrast -255..255, def 0: lighting contrast
- Report full / full pk3 path on file syntax errors
- New area lights backsplash algorithm (utilizing area lights instead of point ones)
- -backsplash (float)scale (float)distance: adjust area lights globally (real area lights have no backsplash)
- New slightly less careful, but much faster lightmaps packing algorithm (allocating... process)
- Valve220 mapformat autodetection and support
- Correct .obj and .mtl loading
- Guessing model shaders paths
