Commit graph

144 commits

Author SHA1 Message Date
Bill Currie
057a5cc624 Make BasePortalVis another 17% faster.
I had forgotten to skip the refined tests when the sphere was entirely on
the relevant side of the plane. Now BasePortalVis for gmsp3v2 takes 11s on
my machine (it was 13 with the previous optimization and 15.9 before that).

Also, write some comments describing how BasePortalVis works.
2013-03-14 14:01:26 +09:00
Bill Currie
5d6df082f2 Move the vis stats vars into thread data.
This should make the stats more reliable when running multi-threaded
(chains is still random, but it seems there are set access issues).
2013-03-14 12:52:40 +09:00
Bill Currie
0cae04d71a Alter test_sphere to return -1, 0 or 1.
Representing the side of the plane on which the sphere lies is much more
useful as more complicated tests can be done using just the one call.
-1: the sphere is entirely on the back side of the plane
 0: the sphere is intersecting the plane
 1: the sphere is entirely on the front side of the plane
2013-03-14 09:05:26 +09:00
Bill Currie
b9d71218f6 Use sphere culling in the base vis.
Base vis was done first for testing. Optimized base vis is down to ~12.4s
from ~16s (29% faster?).
2013-03-13 21:32:18 +09:00
Bill Currie
fe55bb678e Set the default level to 4.
It was supposed to be 2, but for some reason I neglected to set it when I
set up the options parsing. However, level 4 is the standard for production
maps, and it happens to be faster than level 2 (at least for gmsp3v2.bsp)
2013-03-09 15:01:54 +09:00
Bill Currie
3232c22795 Implement mightsee updates from tyrutils.
It doesn't seem to make much difference, but I suspect that's my set code
not being optimal for the job.
2013-03-09 14:32:51 +09:00
Bill Currie
d1e65257b6 Implement the cached separators idea from tyrutils.
I think the reason I didn't think of that when I tried to improve qfvis's
performance many years ago is I just simply did not understand
ClipToSeparators. However, the difference caching the separators makes is
phenomenal. Before the change, single threaded qfvis would get stuck on one
particular portal for at least a day (I gave up waiting), but now even a
debug build will complete gmsp3v2.bsp in less than 12 minutes (4 threads on
my quad-core). And that's at level 2! Getting stuck for a day was at level
0.
2013-03-08 22:20:29 +09:00
Bill Currie
dbdfdb6d28 Add support for PRT2 portal files.
These seem to be identical to PRT1-AM but with a different count order in
the header. Taken from tyrutils-0.5.
2013-03-07 18:51:32 +09:00
Bill Currie
0649fd7022 Correct some verbosity levels. 2013-03-07 18:51:23 +09:00
Bill Currie
4e87072d93 Fix a bunch of whitespace. 2013-03-07 14:31:00 +09:00
Bill Currie
4ccb4a4667 Make the test and vis set pointers const. 2013-03-07 14:28:15 +09:00
Bill Currie
281c5f185d Correct the "can see anything new" check.
I had the super-set and sub-set parameters backwards, but that's because I
had misinterpreted the old code.
2013-03-07 14:24:30 +09:00
Bill Currie
81e4d3072c Plug a bunch of memory leaks.
Not that they really matter, but it makes reading valgrind's output a
little easier.
2013-03-07 13:42:19 +09:00
Bill Currie
9b4beaf3f8 Use a set for portalsee.
This removes the hard coding of the size of portalsee, which looks to have
been too small for some maps.
2013-03-07 11:35:08 +09:00
Bill Currie
299ff8f575 Use set functions for qfvis.
While noticeably slower than the previous expanded set manipulation code,
this is much easier to read. I can worry about optimizing the set code when
I get qfvis behaving better.
2013-03-07 11:06:55 +09:00
Bill Currie
f1aefc969d Fix some 64-bit mingw compile issues.
Just one more issue to fix (alloca), but with a hack, QF compiles (no clue
yet if it works: wine doesn't seem to be an option at this stage)
2013-01-22 21:02:49 +09:00
Bill Currie
a37c5465e1 First step for BSP2 support. DOES NOT WORK!
All of the nastiness is hidden in bspfile.c (including the old bsp29
specific data types). However, the conversions between bsp29 and bsp2 are
implemented but not yet hooked up properly. This commit just gets the data
structures in place and the obvious changes necessary to the rest of the
engine to get it to compile, plus a few obvious "make it work" changes.
2012-09-07 16:09:24 +09:00
Bill Currie
a2f2d4d949 "Check" for the availability of pthreads.
Unfortunately, just because the header is there doesn't mean anything will
actually work :(. Also, the check is based on the host vendor/os for now.
Yes, it's rather lame but it will do for now.

With this, QF will build on an almost fresh ps3toolchain install. Only two
"fixes" are needed:
 o  In $PS3DEV/ppu/powerpc64-ps3-elf: ln -s ../include sys-include
 o  libsamplerate cross-built and installed.
2012-08-19 13:40:42 +09:00
Bill Currie
23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie
bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
eefa89e72e Remove the AM_CONDITIONALs from tools.
Now that the tools directories aren't entered when those tools aren't being
built, there's no reason to use AM_CONDITIONAL in there.
2012-02-10 02:50:42 +09:00
Bill Currie
c0f7b4ba37 Fix qfvis for android.
pthread_cancel is not (and will not be) implemented, so rework the thread
finalization to not need it.
2012-02-05 14:29:46 +09:00
Bill Currie
91e65b6c80 Rename mplane_t to plane_t and clean up the mess.
I got rather tired of there being multiple definitions of mostly compatible
plane types (and I need a common type anyway). dplane_t still exists for
now because I want to be careful when messing with the actual bsp format.
2011-11-28 20:54:34 +09:00
Bill Currie
de04e1b602 Lots of win32 (mingw cross) build fixes.
HTTP (curl) support is missing, but everything else builds.
2010-12-23 11:40:16 +09:00
Bill Currie
4ed7290d9f Fix an uninitizized variable. 2010-11-28 15:31:36 +09:00
Bill Currie
49ea878ad9 Slightly more informative progress.
Display per-thread current portal number. Will get messy if there are more threads than the screen width can handle.
2010-11-21 09:56:31 +09:00
Bill Currie
142defe9c0 Parameter consistency fixes.
Make the params for FreeWinding and CopyWinding consistent with those in
qfbsp. This fixes some doxygen warnings while I think about how best to
handle the duplicate code.
2010-10-13 20:52:07 +09:00
Bill Currie
f4042c5b91 Make the bsp disk data structures type size independent.
However, this assumes float is always 32 bits.

Also use size_t for the *size fields in bsp_t and clean up the mess.
2010-10-13 20:52:05 +09:00
Bill Currie
a51e888a1b Nuke MAX_OSPATH and clean up the mess. 2010-08-25 13:31:08 +09:00
Bill Currie
669771681a split up and modernize configure.ac
Most of the guts of configure.ac have been moved to config.d and are then
brought in by m4_include. This will make maintaining configure.ac much easier.

Also drop use of PROGRAM and VERSION, using PACKAGE_NAME, PACKAGE_VERSION, and
on occasion, PACKAGE_STRING instead, and clean out some old files we no longer
need.
2010-08-19 15:01:43 +09:00
Bill Currie
0dfff8fd58 ignore stuff 2010-08-07 10:42:09 +00:00
Bill Currie
997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie
ff132bb536 64bit windows patch from phrosty 2007-04-04 07:48:14 +00:00
Bill Currie
3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
501180aaac gcc-4.0 fixes. even found some bugs :) (names /not/ mangled this time) 2005-06-08 06:35:48 +00:00
Bill Currie
38c5b92086 fix a really stupid error (missing {}s) that caused vis data to basicly get
lost when reading the new portal file format
2004-03-19 02:20:47 +00:00
Bill Currie
9e6be1e029 hopefully handle \r\n endings 2004-03-19 00:41:14 +00:00
Ragnvald Maartmann-Moe IV
527342d80d Whitespace, codingstyle, pouncing shalraths. 2004-02-08 02:53:58 +00:00
Bill Currie
371a0b8e75 support old-style portal files again 2004-02-02 05:44:46 +00:00
Bill Currie
080f6779d4 correct a couple of falsehoods 2004-01-27 05:08:21 +00:00
Bill Currie
0abe875ca0 refer to the correct program 2004-01-18 06:55:47 +00:00
Bill Currie
39c0a0f08d make cluster recursion a warning rather than an error (see how this goes) 2003-09-24 00:59:53 +00:00
Bill Currie
0db01f41fb progress "meter" 2003-09-12 23:13:11 +00:00
Bill Currie
0a8867fde9 replace all VectorSubtract (vec3_origin, ... and
VectorCopy (vec3_origin, ... with VectorNegate (... and VectorZero (...,
respectively. Should be a small speedup.
2003-09-03 22:17:04 +00:00
Bill Currie
abe657ea12 handle file openning issues a little more gracefully 2003-05-21 15:00:23 +00:00
Bill Currie
eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +00:00
Bill Currie
fc553cefbc don't seg if there's no texture data 2003-03-22 04:33:52 +00:00
Bill Currie
3a85d98f83 fix an out-by-one error 2003-03-17 00:52:16 +00:00
Bill Currie
6a687f5e45 rename all the globals in quakefs.[ch] to be QFS_* or qfs_* 2003-02-14 19:46:07 +00:00
Bill Currie
7073afc0a4 port in OQ's detail, hint and skip brush/texture enhancements 2003-02-04 23:26:26 +00:00
Bill Currie
761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
498bdcc406 compile fixes for alpha linux 2002-11-10 02:50:42 +00:00
Bill Currie
df1fdca828 add some notes about the threading of qfvis 2002-10-09 19:33:47 +00:00
Bill Currie
2a56b8f15f go back to the `long way' for the cross product as qfvis was no longer
getting the same results as vis (that may be acceptable, but not yet:)
2002-09-26 03:58:22 +00:00
Bill Currie
d25ee82838 provide a tighter accuracy (but slower) _VectorNormalize for the tools 2002-09-25 21:35:49 +00:00
Bill Currie
e81a0e2095 qfvis and qflight are still copyright Id 2002-09-25 01:51:58 +00:00
Bill Currie
324172414a use the vector math macros from mathlib.h to make the math in
ClipToSeparators clearer and comment on how --level effects the vis
calculations
2002-09-24 21:48:47 +00:00
Bill Currie
5904859cca split the base vis functions out of flow.c, add -D_REENTRANT to the compile
for qfvis and a bunch of whitespace
2002-09-24 02:46:03 +00:00
Bill Currie
ded572b31f various var cleanups 2002-09-23 22:54:28 +00:00
Bill Currie
ee61eaebbb don't do threading if only 1 thread is used and add another state to
vstatus_t for better portal state checking
2002-09-22 21:54:41 +00:00
Bill Currie
528eec1e12 go back to bailing out on errors 2002-09-22 21:32:36 +00:00
Bill Currie
a751e39674 re-enable the break to speed up vis 2002-09-22 04:17:30 +00:00
Bill Currie
c57b395a0f correct a spelling error and make a comment a little clearer 2002-09-22 03:48:16 +00:00
Bill Currie
b6edd778e7 more malloc/memset to calloc 2002-09-21 22:15:57 +00:00
Bill Currie
90b4f5c0ee correct the spelling of FindPassages 2002-09-21 21:42:30 +00:00
Bill Currie
fca84341de more grey space and replace malloc/memset 0 with calloc 2002-09-21 21:35:04 +00:00
Bill Currie
7d7e578b71 white and grey space cleanup 2002-09-21 21:27:38 +00:00
Bill Currie
c1c36f79f5 remove a dead var from flow.c and make the mutex use defaults (not sure if
the thing even works:( )
2002-09-21 21:17:32 +00:00
Bill Currie
35a14572be report on the non-reliability of c_chains when threads are used 2002-09-21 03:51:50 +00:00
Bill Currie
544d4d6ff8 fix the missing LOCK and UNLOCK defs (found by accident:) and use a dstring
for building the compressed vis data
2002-09-20 19:03:06 +00:00
Bill Currie
56843557f6 make _VectorCompare use EQUAL_EPSILON (VectorCompare is still the fast
macro) and use it instead of VectorCompare in the map tools. This (and, it
seems, RINT) fixes qfbsp on spc. Also, jump /all/ entities that get hit
by the filler in qfbsp
2002-09-20 17:02:53 +00:00
Bill Currie
24a9b48127 rewrite bspfile.[ch] so they work off an object rather than global data.
The direct filesystem access is also removed. Fix up qfvis and qflight to
compile with the new bspfile. qfvis seems to work, qflight probably doesn't
2002-09-19 05:35:17 +00:00
Ragnvald Maartmann-Moe IV
e5582a9f2d typo fix 2002-09-19 02:45:57 +00:00
Ragnvald Maartmann-Moe IV
6376ebb253 Whitespace. 2002-09-19 02:37:52 +00:00
Bill Currie
ab421330a9 forgot to update a pointer 2002-09-18 21:35:00 +00:00
Bill Currie
b94fc0bf55 avoid a buffer overflow when the new visdata is bigger than the old 2002-09-18 21:14:24 +00:00
Bill Currie
599fea0edb redo bspfile to use dynamic allocation for the arrays to avoid buffer
overflows. also fix up the verbosity levels in qfvis.c
2002-09-18 06:07:38 +00:00
Bill Currie
91a6dd5272 bah, EXTRA_MANS doesn't work, even though automake doesn't complain :/ 2002-09-17 22:37:32 +00:00
Bill Currie
317c02539b macro-ize --with-{clients,servers} and implement --with-tools using the new
macro
2002-09-17 22:19:14 +00:00
Bill Currie
beb6219072 bring in rvis' speedup. I won't pretend to understand what's going on, so
it's tagged :)
2002-09-12 21:11:52 +00:00
Bill Currie
cd05f96ac6 forgot to uncomment the code that initialized uncompressed when I got
portal loading working
2002-09-12 19:33:17 +00:00
Bill Currie
774b0adc2b get qfvis working, including pthreads 2002-09-12 06:48:05 +00:00
Bill Currie
ec47e08e1c go back to using QFile, quakeio.h and quakefs.h 2002-08-27 07:16:28 +00:00
Ragnvald Maartmann-Moe IV
d855b5199d Whitespace 2002-08-26 23:08:04 +00:00
Ragnvald Maartmann-Moe IV
9b9a68db9e Updated manpages. 2002-08-26 23:02:17 +00:00
Bill Currie
52f183a9a5 more getopt fixes. correct : and - for qflight and fix up the help screens 2002-08-26 16:24:46 +00:00
Bill Currie
4a69ce1877 fix some getopt misconfigurations: missed args markers and "-" isn't needed
because we don't care about option interleave
2002-08-26 16:15:19 +00:00
Bill Currie
5108c3c976 more (believable:) whitespace 2002-08-26 15:05:23 +00:00
Bill Currie
84f04f158e whitespace like you wouldn't believe. s/^M/^J/g 2002-08-26 14:57:42 +00:00
Ragnvald Maartmann-Moe IV
8c3e8cf083 Add manpage for qfvis. 2002-08-25 23:59:11 +00:00
Ragnvald Maartmann-Moe IV
3d9c0b00bb Failed escapee! 2002-08-25 23:18:20 +00:00
Ragnvald Maartmann-Moe IV
fed01ddd3e .gitignores for qf map tools 2002-08-25 23:16:48 +00:00
Ragnvald Maartmann-Moe IV
a3af2d9fa9 Add Hideo's WIP qflight & qfvis. 2002-08-25 23:06:23 +00:00