Commit Graph

218 Commits

Author SHA1 Message Date
Eric Wasylishen 8888506821 qbsp: fix -notex option 2023-11-09 23:57:07 -07:00
Eric Wasylishen a9838d9fc1 tests: fix build 2023-11-08 00:28:14 -07:00
Eric Wasylishen e9532346c7 vis: partly fix perf regression of Oct 2021
- drops usage of winding_storage_hybrid
- makes pstack_t trivially default initializable again (like the C
  original)
- we weren't making use of the unlimited size of winding_storage_hybrid;
  the original vis already has an allowance for if a winding exceeds
  the fixed stack allocation size (24) and we were still applying that
  limit

before:

cmake-build-release\tests\tests.exe -r=xml -sf=*benchmark.cc
Testing started at 1:53 PM ...

|               ns/op |                op/s |    err% |     total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
|               45.15 |       22,149,002.06 |    0.1% |      0.01 | `create pstack_t`
|               47.04 |       21,256,429.80 |    0.1% |      0.01 | `create pstack_t + 1x AllocStackWinding`
|               48.28 |       20,710,594.32 |    0.2% |      0.01 | `create pstack_t + 2x AllocStackWinding`
|              128.52 |        7,780,603.30 |    0.3% |      0.01 | `setup + ClipStackWinding`

Benchmark from: https://www.quaddicted.com/tools/vis_benchmark

cmake-build-release\vis\vis.exe -nostate -nopercent gmsp3v2.bsp

153.31s elapsed

after:

cmake-build-release\tests\tests.exe -r=xml -sf=*benchmark.cc
Testing started at 1:46 PM ...

|               ns/op |                op/s |    err% |     total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
|                1.64 |      610,528,630.06 |    0.3% |      0.01 | `create pstack_t`
|                3.29 |      303,895,535.45 |    0.6% |      0.01 | `create pstack_t + 1x AllocStackWinding`
|                5.20 |      192,172,148.84 |    0.2% |      0.01 | `create pstack_t + 2x AllocStackWinding`
|               66.84 |       14,960,818.66 |    1.0% |      0.01 | `setup + ClipStackWinding`

Benchmark from: https://www.quaddicted.com/tools/vis_benchmark

cmake-build-release\vis\vis.exe -nostate -nopercent gmsp3v2.bsp

141.42s elapsed
2023-11-05 13:58:36 -07:00
Eric Wasylishen 7cb6c6553b tests: add ClipStackWinding benchmark, qvec benchmark 2023-11-03 21:27:29 -06:00
Eric Wasylishen 8362ffa385 qbsp: fix memory/.bsp file corruption if map contains a texture name longer than 31 characters 2023-09-24 19:42:42 -06:00
Eric Wasylishen e6d9605b86 light: fix lightgrid assertion failure if lightgrid gets a nan (separate bug) 2023-09-17 20:27:29 -06:00
Eric Wasylishen ec7b848f76 tests: fix issue where stray bsp's in testmaps/ folder cause false test failures
- typically the CI tests read maps from testmaps/foo.map and write to cmake-build-release/tests/foo.bsp.
- having a stray testmaps/foo.bsp would cause the qbsp part of the test to write to cmake-build-release/tests/foo.bsp
- then the "light" part of the test would prefer to read the bad testmaps/foo.bsp instead of the correct cmake-build-release/tests/foo.bsp
2023-09-17 17:03:42 -06:00
Eric Wasylishen 872f5fe8a0 build: copy + install mingw dll's libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll 2023-09-16 14:28:06 -06:00
Eric Wasylishen 20f7a83efa tests: fix bad expectation for q1_sunlight 2023-09-11 22:11:33 -06:00
Eric Wasylishen 507c315f78 light: fix missing textures accidentally activating "suntexture" feature and breaking sunlight
Fixes #376
2023-09-11 21:44:38 -06:00
Eric Wasylishen f8886b6e60 style: remove all "using namespace std" 2023-08-07 15:28:50 -06:00
Eric Wasylishen a02a4ec316 imglib: fix wad3 loading (thanks to erysdren for the fix)
add a basic half-life test case (box map)
2023-07-18 17:57:51 -06:00
Eric Wasylishen 40a10b2c52 bspinfo: serialize missing textures (offset -1) to json as null
previously, we were writing a json dictionary which was confusing

- bspfile: fix reading a valid texture followed by a missing texture
(offset -1)

- add missing texture testcase
2023-07-18 00:17:24 -06:00
Eric Wasylishen f93a36c295 qbsp: don't write 0 size textures
write them as offset -1 in dmiptexlump_t::stream_write()
2023-07-17 23:32:38 -06:00
Eric Wasylishen aa74b76815 common: add qmat::transpose() 2023-07-06 17:13:14 -06:00
Eric Wasylishen 1c85bb882a light: minimize includes 2023-06-26 01:19:54 -06:00
Eric Wasylishen 3cfe9aeb67 build: fix build with PCH disabled 2023-06-25 14:52:01 -06:00
Eric Wasylishen 51def3282c tests: disable currently failing tests 2023-06-19 22:12:43 -06:00
Eric Wasylishen 010fbe5a3b tests: restore "sky gets an optimized lightmap" test
now that it's fixed
2023-06-19 21:59:06 -06:00
Eric Wasylishen 9a4f27a0de light: fix sky emitting light, disable test 2023-06-19 00:39:30 -06:00
Eric Wasylishen 8034215b3a tests: add "minlight doesn't bounce" test 2023-06-10 16:36:17 -06:00
Eric Wasylishen 502a490e5b light: hack around surface lights getting a black spot when a luxel lines up with a surflight emission point 2023-06-06 22:29:51 -06:00
Eric Wasylishen d38ef2d8af qbsp: allow _litwater/_splitturb as a bmodel key
supports both opt-in and opt-out
2023-05-28 23:44:57 -06:00
Eric Wasylishen f6d5e6e24d qbsp: fix test failure in last commit (stale pointers in map.hashedges) 2023-05-28 16:51:20 -06:00
Eric Wasylishen 731bafd9fe qbsp: fix edge reuse causing software renderer artifacts with liquids
fixes q1_liquid_software.map in tyrquake
thanks to Mankrip for reporting this
2023-05-28 16:28:33 -06:00
Eric Wasylishen 2533e7e40d qbsp: support _mirrorinside 0 in Q1 mode
to disable mirroring water surfaces
2023-05-28 14:00:08 -06:00
Eric Wasylishen 31ab43a181 tests: add q1_liquid_software.map (renders badly in tyrquake) 2023-05-28 11:37:35 -06:00
Eric Wasylishen fa890456f6 qbsp: don't merge faces across sky boundaries 2023-05-27 23:42:33 -06:00
Eric Wasylishen c649e3a0c8 tests: add ExportWad test 2023-05-27 17:05:41 -06:00
Eric Wasylishen 896da81bd6 bsputil: refactor into a static lib 2023-05-27 13:45:45 -06:00
Eric Wasylishen 9c466dd813 tests: add q1 hull1 failure example 2023-05-20 19:17:59 -06:00
Eric Wasylishen f14f327a9a common: more robust hexen2 detection
Fixes  #355
2023-05-13 00:46:02 -06:00
Random c6ea63ba95
made CMake relative for use as a sub-project within other CMake projects (#356) 2023-05-10 19:45:51 -06:00
Eric Wasylishen a73075234e light: fix inheriting worldspawn _minlight_color by bmodels 2023-05-08 00:24:53 -06:00
Eric Wasylishen d9e16a943a qbsp: add -noextendedsurfflags flag to suppress .texinfo writing (for testing/debugging) 2023-05-07 23:56:30 -06:00
Eric Wasylishen c9e41ab4db style: remove GLM_ prefix (no longer using glm) 2023-05-07 21:44:29 -06:00
Eric Wasylishen 3e446e6ea6 qbsp, light: fix inheriting minlight from worldspawn
Update q2_light_group.map to support this
2023-05-07 21:44:29 -06:00
Eric Wasylishen cfd3336644 test: lightmap artifacts on a low luxel scale 2023-04-30 17:53:19 -06:00
Eric Wasylishen 5f7e08d0ef light: CalcPoints: fix check for luxels being too far from the face to be visible 2023-04-29 19:52:31 -06:00
Eric Wasylishen fa7da0b4a2 tests: add test where CaclPoints + low luxel scale fails 2023-04-29 17:14:43 -06:00
Eric Wasylishen bc7f08abe5 test: add broken case where func_detail_wall generates splits 2023-04-25 23:48:09 -06:00
Eric Wasylishen 50d97321d7 qbsp: add -bmodelcontents flag 2023-04-22 19:15:55 -06:00
Eric Wasylishen a2d89e3307 qbsp: q1: fix visportals being created to solid leafs
fixes crash on ej3_cc.map
2023-04-17 23:42:00 -06:00
Eric Wasylishen cd2926534f qbsp: q1: fix so just DETAIL is considered is_empty 2023-04-17 21:10:28 -06:00
Eric Wasylishen ed756bd602 common: add support for writing .rst documentation from settings 2023-04-16 14:55:43 -06:00
Eric Wasylishen e069d7b9b8 style: update settings api to follow current coding style 2023-04-16 11:55:38 -06:00
Eric Wasylishen 984d00c5a9 tests: mark q1_lightignore as mayfail until it's investigated 2023-04-16 11:43:24 -06:00
Eric Wasylishen 93f985a9e5 tests: add q1_lightignore.map test 2023-04-12 00:04:56 -06:00
Eric Wasylishen ac21db8722 common: add png loader test 2023-04-10 14:06:35 -06:00
Eric Wasylishen addc6e922b tests: add test case for culling of surface lights in the void 2023-04-09 12:39:19 -06:00