Bill Currie
46d41ad9ac
Split up separator finding and winding clipping.
...
Interesting, it makes very little (maybe faster) difference to find all the
separators for levels 3 and 4. This might be due to the higher levels using
most of the planes to fully clip source away. Anyway, it makes the code a
little clearer (one function, one task).
2013-03-15 16:00:39 +09:00
Bill Currie
77c858060d
Add a bunch more statistics.
...
Now I know why sphere culling was a loss: 78% of all tested target portals
were trimmed by ClipToSeparators (50% eventually clipped away entirely).
2013-03-14 19:43:46 +09:00
Bill Currie
8032d1d4d1
Split out the mightsee intersection/subset tests.
...
Having the code in separate functions makes the flow in the main loop a
little easier to follow.
2013-03-14 19:43:46 +09:00
Bill Currie
eec87bd61b
Remove thread from stack_t.
...
It really wasn't gaining anything and made reading the code a little
harder.
2013-03-14 19:43:46 +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
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
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
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
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
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
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
Ragnvald Maartmann-Moe IV
527342d80d
Whitespace, codingstyle, pouncing shalraths.
2004-02-08 02:53:58 +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
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
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
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
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
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
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
Ragnvald Maartmann-Moe IV
6376ebb253
Whitespace.
2002-09-19 02:37:52 +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
ec47e08e1c
go back to using QFile, quakeio.h and quakefs.h
2002-08-27 07:16:28 +00:00
Bill Currie
5108c3c976
more (believable:) whitespace
2002-08-26 15:05:23 +00:00
Ragnvald Maartmann-Moe IV
a3af2d9fa9
Add Hideo's WIP qflight & qfvis.
2002-08-25 23:06:23 +00:00