Commit Graph

4222 Commits

Author SHA1 Message Date
Eric Wasylishen 54e7aadda7 vis: revert alloca() back to stack storage in ClipStackWinding
- the MAX_WINDING limit was already enforced
- on Windows, alloca() generates __chkstk calls which adds a bit of overhead

gmsp3v2 benchmark (32 threads, 2 runs per config):

before (with alloca): 58.8s, 59.1s
this commit (no alloca): 56.2s, 56.4s
2023-11-08 22:31:52 -07:00
Eric Wasylishen f1bf0f546d add missing #pragma once's 2023-11-08 21:30:44 -07:00
Eric Wasylishen a9838d9fc1 tests: fix build 2023-11-08 00:28:14 -07:00
Eric Wasylishen c9edf4ddaa vis: huge speedup from fixing false sharing with stat counters
gmsp3v2.bsp, 32 threads 3950x, 157s -> 61s
2023-11-08 00:05:08 -07:00
Eric Wasylishen 7e5ad9a39b lightpreview: add support for Q1 visdata 2023-11-06 22:54:21 -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
Jonathan b83c4a6440 use fold expr instead of for statements in vec3
fix a bunch of clang warnings
2023-11-04 19:01:08 -04:00
Eric Wasylishen 389c89c04d 3rdparty: update fmt to latest release (10.1.1) 2023-11-04 16:11:40 -06:00
Eric Wasylishen 7cb6c6553b tests: add ClipStackWinding benchmark, qvec benchmark 2023-11-03 21:27:29 -06:00
Jonathan 24e0cb0d5c Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2023-11-01 20:14:40 -04:00
Jonathan 7186f411bb fix animation infinite loops 2023-11-01 20:14:36 -04:00
Eric Wasylishen 5229cd6efe decompile: build fix 2023-10-23 19:30:12 -06:00
Eric Wasylishen e84ba4cc68 lightpreview: leaf visualization: draw leaf outlines 2023-10-19 23:58:39 -06:00
Eric Wasylishen d6fbefaf0e lightpreview: decompile hulls for leaf visualization 2023-10-19 00:10:42 -06:00
dependabot[bot] 945f123ac5
build(deps): bump urllib3 from 2.0.6 to 2.0.7 in /docs (#388)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.0.6...2.0.7)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 18:22:27 -06:00
dependabot[bot] ffd20a77d8
build(deps): bump urllib3 from 2.0.2 to 2.0.6 in /docs (#387)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.2 to 2.0.6.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.0.2...2.0.6)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 12:32:16 -06:00
Eric Wasylishen 7abfec9dc2 lightpreview: enable highdpi support, set larger default window size 2023-10-01 18:47:33 -06:00
Eric Wasylishen a287eb0c22 docs: create a stub for the maputil, lightpreview docs 2023-10-01 12:58:39 -06:00
Eric Wasylishen a109dfca28 lightpreview: add "show bmodels" checkbox 2023-09-30 15:18:14 -06:00
Eric Wasylishen 248ed7c614 lightpreview: render Q1 faces with missing textures 2023-09-30 11:41:34 -06:00
Eric Wasylishen f9a9733068 qbsp: fix crash in CheckPlaneAgainstVolume if node->volume is already empty 2023-09-28 20:30:49 -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 91734ac8f6 light: fix gcc9 build 2023-09-17 21:24:04 -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
qruf d189145a01
build: fixes for mingw support (#373) 2023-09-16 13:15:31 -06:00
Jonathan 0509c9a790 fix multiple bounce interaction with lightgrid 2023-09-16 11:55:10 -04:00
Jonathan 147be8f87a some optimizations in indirect lighting code
multiple bounce support
2023-09-16 00:41:05 -04:00
Josh Dowell 04044dd76d
lightpreview: fix texture mips not being generated (#385)
This was happening because allocateStorage allocates space for the texture and its mips up-front, the user of QOpenGLTexture is required
to determine the number of mips required for a texture beforehand.
allocateStorage was allocating space for mip 0 and no others, leading to no additional mips being generated.

This also adds explicit format and type to allocateStorage for only this instance, although it still remains optional.
2023-09-13 23:18:51 -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 dedc524f6a lightpreview: add fixme 2023-09-11 19:35:20 -06:00
Eric Wasylishen 486f63f2d8 bspfile.cc: fix infinite loop 2023-09-11 18:47:56 -06:00
Eric Wasylishen 741b0b77ed lightpreview: fix loading a .bsp failing if there were light options set in the ui 2023-09-09 16:50:05 -06:00
Eric Wasylishen 2859f80465 build: lightpreview is enabled by default 2023-09-09 16:24:56 -06:00
Jonathan 69bc2c04c0 fix crash if projected texture is not found 2023-09-08 10:43:48 -04:00
Jonathan 6baa1243cf allow auto-gamedir to handle subdirectoried maps properly
fix include paths
2023-09-08 08:41:56 -04:00
Jonathan 2e3ed6c0a2 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp
# Conflicts:
#	maputil/maputil.cc
2023-09-07 14:56:00 -04:00
Jonathan 5619e2abef map file separation 2023-09-07 14:55:37 -04:00
Eric Wasylishen f069800015 build: use forward slashes in includes 2023-09-04 00:52:36 -06:00
Jonathan ba532ac0ab Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2023-09-04 02:51:27 -04:00
Jonathan 7d881768fa Revert "Revert "reduce memory usage by only storing VPLs when we need to, and only once""
This reverts commit 2e0e23622b.

Disable rescale by default on sky faces.
Light is now in control of rescales' default value.
Multiply omni light faces by 0.5 to better match qrad3
Remove some asserts to increase perf
2023-09-04 02:51:20 -04:00
Eric Wasylishen 7c124a0538 build: work around gcc wanting member initializers in constexpr constructor 2023-09-04 00:45:45 -06:00
Eric Wasylishen 1924954758 build: fix clang-cl build 2023-09-04 00:42:00 -06:00
Eric Wasylishen 5c285052d1 lightpreview: note some threading bugs 2023-09-03 23:20:36 -06:00
Eric Wasylishen 43c24bc181 Update .gitignore 2023-09-03 23:20:36 -06:00
Jonathan 1262ce3f78 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2023-09-04 00:16:36 -04:00
Jonathan cec120dfc9 maputil starting point 2023-09-04 00:16:23 -04:00
Eric Wasylishen 832d7d0413 lightpreview: add .lit loading 2023-09-03 11:31:41 -06:00