Commit Graph

610 Commits

Author SHA1 Message Date
Garux af71efc0e6 * no shaderlist.txt or empty one = load all shaders 2020-10-25 09:07:29 +03:00
Thomas Debesse 1cf7b72e6b q3map2/light_bounce: prevent infinite loop on obscure bias compute
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.
2020-08-19 08:32:36 +03:00
Garux 4bcce46a59 q3map2: -onlyents: support *.ent as map file param 2020-06-30 13:15:10 +03:00
Garux d8e8c10849 Add "slime" surfaceparam keyword to game_wolfet q3map2 for Quake 3 map shader compatibility.
#45
2020-06-30 12:55:52 +03:00
Garux ae9fe08159 * support -extlmhacksize N N input for non square lightmaps, for example -extlmhacksize 2048 1024
also enables this for -lightmapsize, legitimacy is questionable here
2020-06-14 15:49:16 +03:00
Garux 8cdce0e07c undo searching for q3map_<surfaceparm> removal in f560e2703b
#43
2020-06-06 12:31:18 +03:00
Garux 49b725a1b2 Fix q3 compatibility bug with lightgrid and only one light.
Correct math requires the ambient component of the lightgrid to be zero
in that case. However, q3 ignores lightgrid cells with all zero ambient
value, EVEN if the directed value is nonzero.

This change sets the ambient value to #010101 if it'd be pitch black. This
should be a minimal change without affecting light hue that fixes
lightgrid rendering. In engines like DarkPlaces, almost no map should
look different from this.

Fixes https://gitlab.com/xonotic/netradiant/-/issues/137
2020-04-18 09:16:57 +03:00
Garux ab80efd198 try to fix MAC compilation #40 2020-04-04 20:46:04 +03:00
Garux 85e5807397 try to fix MAC compilation #40 2020-04-04 19:40:56 +03:00
Garux 1a614efce1 q3map2 * fix: do not affect styled lightmaps by floodlight
port of https://github.com/id-tech-3-tools/map-compiler/pull/12
87b8589a3a
2020-03-25 21:21:07 +03:00
Garux 7fd32180e2 * support misc_model::_remap facility of q3map2
q3map2: fix inconsistency, introduced in d92c32d453
(_remap result could depend on _remap keys order, e.g. remapping src: moo/rock, moo/sand-rock by: rock, sand-rock suffix matches; rock could be used for moo/sand-rock)
2020-03-25 11:53:14 +03:00
Garux b136b1a829 mbspc: * deduce OutputFile path out of input file path in -bsp2map, -bsp2map220, -entlist, -texinfo modes (like for .aas)
* append _decompiled suffix to decompiled map file names
2020-02-29 04:03:12 +03:00
Garux 5a032a991a mbspc: make builtin, html help, command line options consistent
enable -grapplereach: bugged in vanilla engine, but is likely fixed in OpenArena
remove -onlyents doc: doesn't exist in the code (wtf)
2020-02-29 02:05:38 +03:00
Thomas Debesse 4292115ef7 bsp lump write: pad with zeros, not with random unitialized memory data 2020-02-13 05:39:39 +03:00
Garux 065c415839 nullify unused space of bspShaders.shader to write cleaner bsp 2020-02-13 05:12:57 +03:00
Garux 0b1389b5a4 rename entities in AddTriangleModels() for consistency 2020-02-12 23:30:46 +03:00
Garux c956102065 support variable number of key names in entity key value reading functions 2020-02-12 23:21:15 +03:00
Garux aa44982b20 define more architectures in mbspc -> q_platform.h, as we do not define them in Makefile 2020-02-11 18:46:41 +03:00
Garux 64f6b4a4ac fix some warnings 2020-02-07 23:00:19 +03:00
Garux 1805e42582 make C code to compile with -std=c11 (though still many implicit function declarations) 2020-02-07 22:45:06 +03:00
Garux 70b6cc8696 make C code ODR compliant (-fno-common) 2020-02-07 22:41:56 +03:00
Garux a1fe170f38 fix null pointer dereferencing introduced in 80e95ac165 2020-02-07 22:35:58 +03:00
Garux 433b9e776b manage entity key value reading routines 2020-02-07 15:49:29 +03:00
Garux 1f59dac119 manage strstr() use 2020-02-05 19:54:44 +03:00
Garux 325a46a102 wrap 'string empty' logic 2020-02-05 18:20:13 +03:00
Garux 234b0cf1d4 wrap strncmp use 2020-02-04 05:53:30 +03:00
Garux 9048028faa wrap Q_strncasecmp use 2020-02-04 05:08:54 +03:00
Garux c7f1391177 wrap Q_stricmp use 2020-02-04 04:33:58 +03:00
Garux 3409de2cb0 change EPAIR_STRCMP semantics 2020-02-04 03:50:33 +03:00
Garux cf98275ee4 wrap strcmp use 2020-02-04 03:40:27 +03:00
Garux 9485b925ff add common string functions 2020-02-04 03:38:24 +03:00
Garux 416b1f7d54 delete some unused q3 cmdlib stuff
fix q3data -writedir
2020-02-04 02:07:13 +03:00
Garux 0290bd76fe remove NeXT preprocessor conditions 2020-02-03 23:58:43 +03:00
Garux eb70faddc8 use standard C bool type:
get rid of qfalse, qtrue aliases everywhere
replace qboolean in q3map2, q3data
redefine qboolean type in q2 tools, mbspc
2020-02-03 01:15:30 +03:00
Garux e5d040a770 fix simple warnings 2020-02-02 14:53:18 +03:00
Garux b2eb13b049 manage windows only strlwr(), strupr() 2020-01-29 16:42:03 +03:00
Garux 9cb2ab691e del myoffsetof macro 2020-01-29 04:09:12 +03:00
Garux be007466f9 fix [-Wincompatible-pointer-types] in RunThreadsOn() 2020-01-28 21:35:17 +03:00
Garux c7010884b6 manage strlwr, strlower->strLower 2020-01-28 21:33:37 +03:00
Garux e6ce77d031 use capital letter in strClear, strEmpty, strIstr to lessen names collision probability 2020-01-28 21:05:41 +03:00
Garux a258ebf887 fix warning: comparison between signed and unsigned integer expressions 2020-01-28 00:29:53 +03:00
Garux 93eb360104 fix Usage: help strings 2020-01-27 23:41:46 +03:00
Garux 08fee05b37 remove odd closing parenthesis from bsp marker 2020-01-27 21:30:10 +03:00
Garux 25d94dbd2f add and use path_set_extension()
fix -bsp crash with .bsp sent as map path
	* fix: qer_editorimage, q3map_lightImage etc work with file names, containing period
(i.e. 'file.name.ext' names; don't StripExtension() twice in ImageLoad() for that)
2020-01-27 01:22:10 +03:00
Garux 80e95ac165 refactor paths related codes 2020-01-26 19:01:57 +03:00
Garux 437004713f fix q3data warnings 2020-01-24 17:02:46 +03:00
Garux 3a95f8bb53 use StripExtension() in q3data 2020-01-24 04:20:04 +03:00
Garux 09953b82be minor tweaks 2020-01-24 03:48:13 +03:00
Garux 854eb14a69 use path_get_extension() 2020-01-24 03:20:17 +03:00
Garux ba26c2d02b add common functions:
strempty
	strclear
	path_is_absolute
	path_get_filename_start
	path_get_filename_base_end
	path_get_extension
simplify functions:
	DefaultExtension
	StripFilename
	StripExtension
	ExtractFilePath
	ExtractFileBase
	ExtractFileExtension
2020-01-23 21:55:43 +03:00