Bill Currie
aebd9288cd
Force thread count to 1 when pthreads is unavailable.
...
Don't want the thread count being misreported.
2018-09-09 13:41:22 +09:00
Bill Currie
fa1514798b
Print the number of threads used by qfvis.
2018-09-09 13:41:00 +09:00
Bill Currie
06ab36de3d
Slight cleanup of winding allocation.
...
It seems gcc doesn't care if the & is present when calculating field
offsets, but it not being there bothered me very much and might as well use
our "standard" macro anyway.
2018-09-09 13:38:32 +09:00
Bill Currie
c71eccfb10
Remove MAX_THREADS.
...
This fixes a buffer overflow with more than 4 threads.
2015-08-14 10:57:51 +09:00
Bill Currie
d7c1bc8d02
Correct a comment.
...
I had gotten confused between figuring out the windings and writing the
comments, I guess.
2013-03-19 16:23:47 +09:00
Bill Currie
8938870e46
Make the default output a little nicer.
2013-03-19 13:07:44 +09:00
Bill Currie
88e5adcec6
Make the base vis multi-threaded.
...
Now multi-threaded qfvis is on par with tyrutils vis (differences usually
<1s, sometimes more, sometimes less).
2013-03-19 11:42:09 +09:00
Bill Currie
32b6d15931
Use a sorted queue for portals.
...
qsort is used to sort the queue by nummightsee. At ~4ms for 20k portals, I
think it's affordable. Using a queue rather than scanning the portal list
each time loses the dynamic sorting when mightsee gets updated, but it
seemed to shave off 4s anyway (~207s to ~203s (maybe, yay random times)).
Another step towards threaded base-vis.
2013-03-18 21:14:12 +09:00
Bill Currie
7e40981dcd
Move the LeafThread setup to its own generic function.
...
This is for threading base-vis.
2013-03-18 21:11:46 +09:00
Bill Currie
cb096c601d
Use a per-portal rwlock for portal updates.
...
This should make qfvis scale a little better with cpu count.
2013-03-18 15:03:11 +09:00
Bill Currie
c824e668ed
Rework some of the pthread stuff.
...
Init/uninit is now separate from portal vising.
The global lock has a better name and is now a rwlock.
Use a separate lock for the stats.
2013-03-18 14:26:52 +09:00
Bill Currie
134381f79b
Reduce the locking in the portal completion code.
...
It doesn't seem to make much difference, but the less room for contention,
the better.
2013-03-18 13:45:19 +09:00
Bill Currie
ffb6d628bd
Simplify the pthreads detection macros.
2013-03-18 13:31:35 +09:00
Bill Currie
1c20a49dba
Use the recursive set allocator for mightsee.
...
This completely removes the lock used to protect the set allocation code
while keeping the use of the set api clean.
2013-03-18 13:30:50 +09:00
Bill Currie
9b10304c2f
Make CopyWinding const-correct.
2013-03-15 19:25:24 +09:00
Bill Currie
5a2ee06787
Reverse the winding for backside portals.
...
This is part 1 of another optimization from tyrutils vis. It seems that
just reversing the winding gives a tiny speedup.
2013-03-15 19:22:57 +09:00
Bill Currie
f80ae52828
Make vis's ClipWinding const-correct.
2013-03-15 15:28:25 +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
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
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
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
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
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
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
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
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
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
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
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
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
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