Commit graph

56 commits

Author SHA1 Message Date
Randy Heit
f824fe7a86 - Use CMake build system for ZDBSP.
SVN r2393 (trunk)
2010-06-30 04:40:47 +00:00
Randy Heit
6111d84c1b - Added a vectorized SSE2 version of ClassifyLine. Since compiler support for SSE intrinsics
pretty much sucks, this is slower than the unvectored version I get when I let the compiler
  compile the regular function with SSE2 instructions. It will have to be converted to assembly,
  and then it ought to be a bit faster. Since more than half of ZDBSP's time is spent in this
  one function, it will hopefully be a measurable speedup.

SVN r2392 (trunk)
2010-06-29 03:32:10 +00:00
Randy Heit
594e1fd562 - Bumped ZDBSP version to 1.16.
- Fixed: ZDBSP stored seg vertices in 16-bit words, so it failed to write proper nodes for
  maps that ended up with more than 65536 vertices after node building, even though it can
  write formats that could support it.
- Sync debugging output between ZDBSP and ZDoom's internal node builder.

SVN r2388 (trunk)
2010-06-27 20:05:28 +00:00
Randy Heit
b486edd60e - Simplify some inline assembly so that clang can compile ZDBSP. (Linking is failing for me
because MinGW's GCC 4.5.0 made some seemingly-dumb-to-me changes to their default link
  settings, so I've removed all traces of GCC 4.5.0 and am currently rebuilding clang to see
  if that fixes it.)

SVN r2387 (trunk)
2010-06-25 03:55:18 +00:00
Randy Heit
983dcc08d4 - Version bump to 1.15.
- Documentation bump for -X option.

SVN r2365 (trunk)
2010-06-12 03:58:16 +00:00
Randy Heit
54ff73a07f - Reformat usage information to fit an 80-column terminal window without wrapping.
SVN r2364 (trunk)
2010-06-12 03:54:46 +00:00
Randy Heit
43abbcc965 - Don't force static linking for non-Windows hosts.
- Making profile collection builds should delete leftover gcda files by doing a cleanall,
  not just a clean.

SVN r2363 (trunk)
2010-06-12 03:43:56 +00:00
Randy Heit
28e30fbb7b - Fix GCC warning:
warning: converting to non-pointer type 'int' from NULL
- Force static linking to libstdc++ and libgcc, because MinGW GCC 4.5.0 wants to do it
  dynamically.

SVN r2362 (trunk)
2010-06-12 03:37:16 +00:00
Randy Heit
c9406fbd45 - Fixed: FProcessor::WriteGLVertices() used the normal vertices array instead of the GL one.
SVN r2335 (trunk)
2010-05-25 02:38:41 +00:00
Christoph Oelckers
478ecd5178 - fixed GLv2 nodes writing.
SVN r2290 (trunk)
2010-04-18 20:12:12 +00:00
Christoph Oelckers
5a5aafcce9 - Fixed: ZSBSP did not calculate the lump length for uncompressed extended nodes.
(Apparently ZDoom never checks this lump's length.)


SVN r2289 (trunk)
2010-04-17 22:57:15 +00:00
Christoph Oelckers
b6c764a94b - added new option to ZDBSP to write an uncompressed version of the compressed node format.
SVN r2286 (trunk)
2010-04-17 20:47:09 +00:00
Randy Heit
5d67514b9c - Fixed: FWadReader::MapHasBehavior() needs to call FindMapLump(), not FindLump(), or it will
think that if any maps in a wad are in Hexen format, then they all are.

SVN r2132 (trunk)
2010-01-24 21:55:00 +00:00
Randy Heit
df16c7b3fb - Bump ZDBSP version to 1.14.
- Fix a few GCC warnings.

SVN r2130 (trunk)
2010-01-24 21:31:50 +00:00
Randy Heit
6f4e5f01ce - Remove SelectVertexClose() uniqueness failure compensation code, since it can produce nodes
that violate the GL node spec and thus cannot be saved. ClassifyLine() looks like the right
  place to handle this, but I'd prefer not to touch it unless somebody produces a map that shows it's
  absolutely necessary, since this single function is responsible for the vast majority of the time
  spent by the nodebuilder.



SVN r2093 (trunk)
2010-01-03 01:02:11 +00:00
Randy Heit
fdaa6547f6 - Fixed: A splitter that cannot properly divide a seg into two pieces because it is too close
to an endpoint to produce a unique vertex must be rejected.



SVN r2090 (trunk)
2010-01-02 23:38:49 +00:00
Randy Heit
635603e210 - Fixed: The scoring of splitters too close to the end of a seg used the wrong anti-weight
for penalizing them. They can no longer produce negative scores, either.



SVN r2088 (trunk)
2010-01-02 22:05:33 +00:00
Randy Heit
050be5fe76 - Fixed version string output for VC++ builds of ZDBSP.
SVN r2087 (trunk)
2010-01-02 21:39:21 +00:00
Randy Heit
c512b642a8 - ZDBSP update:
* Fixed: Polyobject detection was disabled for UDMF maps due to an incorrect
    namespace check.
  * Fixed: The polyobject spawn type PO_SPAWNHURT_TYPE (9303) was not recognized
    as a valid spawn spot, so split avoidance would not be enabled for any polyobjects
    that used them.
  * Added a -c (--comments) command line option to write entity numbers in comments
    next to each entity in UDMF maps (ala the upcoming Doom Builder 2).

SVN r1702 (trunk)
2009-07-04 00:12:14 +00:00
Randy Heit
5649bdb356 - Version bump ZDBSP to 1.12.
SVN r1675 (trunk)
2009-06-23 01:46:40 +00:00
Randy Heit
7d79fa81fb - Fixed: ZDBSP had debugging output left in when parsing comments in TEXTMAPs, but
the output file was never initialized.

SVN r1674 (trunk)
2009-06-22 23:09:52 +00:00
Randy Heit
2ce8b28235 - Version bump ZDBSP and add x64 configuration to the VC2005 project.
SVN r1495 (trunk)
2009-03-22 01:35:41 +00:00
Randy Heit
a7fc2fc96c - Fixed: ZDBSP wrote broken VERTEXES lumps.
SVN r1484 (trunk)
2009-03-17 03:33:04 +00:00
Randy Heit
034d7ab10a - Added ZGL2 output support to ZDBSP for maps with more than 65534 lines.
- Fixed some GCC warnings.



SVN r1483 (trunk)
2009-03-17 02:02:58 +00:00
Christoph Oelckers
bf47221046 - UDMF implementation for ZDBSP.
SVN r1482 (trunk)
2009-03-15 12:18:25 +00:00
Christoph Oelckers
9f300f1b06 - Started implementing UDMF support for ZDBSP: Fixed all data structures to hold UDMF data.
SVN r1466 (trunk)
2009-03-07 20:35:13 +00:00
Randy Heit
cd38e62b37 - Make sure people know this ZDBSP isn't from 2006.
SVN r1340 (trunk)
2009-01-01 05:11:50 +00:00
Randy Heit
2bb9246cc3 ZDBSP: Changed GetPolyExtents() limitter to count down instead of up.
SVN r1339 (trunk)
2009-01-01 04:29:30 +00:00
Christoph Oelckers
ba25ef01f6 - ZDBSP fix: The program could hang on badly set up polyobjects. Now it aborts when the
loop iterates NumberOfSegs times.


SVN r1337 (trunk)
2008-12-31 09:13:54 +00:00
Randy Heit
1d692748f0 - Changed "afxres.h" to "winresrc.h" to allow building on the Express Edition compilers.
SVN r961 (trunk)
2008-05-11 00:56:11 +00:00
Randy Heit
d975a01709 ZDBSP fix: ShoveSegBehind needs to check for a positive result from Heuristic, not non-zero.
SVN r335 (trunk)
2006-09-23 02:32:22 +00:00
Randy Heit
6858d9b1c7 Woops. nodebuild_classify_sse1.cpp was missing from the repository.
SVN r229 (trunk)
2006-06-27 20:44:30 +00:00
Randy Heit
c51e49f02f For ZDBSP:
- Fixed the OrgSectorMap generation in FLevel::RemoveExtraSectors().
- Added a version of ClassifyLine compiled with SSE (but not SSE2) optimization
  for people with Pentium 3/Athlon XPs to use.
- Added ClassifyLine backpatching for the GCC Windows build. The first time a
  function calls ClassifyLine, it has to check which version to use and jump
  to the appropriate one. After that, it calls the desired one straight away.

SVN r227 (trunk)
2006-06-26 20:39:57 +00:00
Randy Heit
50b17f8af6 I thought I already added these.
SVN r177 (trunk)
2006-06-06 23:21:01 +00:00
Randy Heit
fbe02ed494 - Updated ZDBSP documentation for new switches.
SVN r176 (trunk)
2006-06-06 22:56:24 +00:00
Randy Heit
d225072692 - Wow. Just having an #include <iostream> without even using
anything from it made the executable twice as large.

SVN r175 (trunk)
2006-06-06 22:47:38 +00:00
Randy Heit
06d1bf0354 - Added a reject fixer to correct the reject when sectors are removed instead
of just throwing it away.

SVN r174 (trunk)
2006-06-06 22:38:27 +00:00
Randy Heit
6a1a0e007a - Added runtime detection of SSE2 so that ZDBSP can select either the regular
ClassifyLine routine or a version compiled with SSE2 optimizations. This
  pretty much removes any reason to do a separate SSE2 build, since most of
  the time is spent in ClassifyLine, so using SSE2 in just that one function
  helps the most.

SVN r172 (trunk)
2006-06-06 19:15:39 +00:00
Randy Heit
0d37e97f13 - Nodebuilding is a little faster if we inline PointOnSide.
SVN r171 (trunk)
2006-06-06 05:31:53 +00:00
Randy Heit
4ce1df4aeb - Rearranged tests in ClassifyLine, making it slightly faster.
SVN r170 (trunk)
2006-06-06 05:19:32 +00:00
Randy Heit
cf0d73b128 - Changed FEventTree into a regular binary tree, since there just aren't enough
nodes inserted into it to make a red-black tree worthwhile.
- Added more checks at the start of ClassifyLine so that it has a better chance
  of avoiding the more complicated checking, and it seems to have paid off with
  a reasonably modest performance boost.

SVN r169 (trunk)
2006-06-06 05:00:46 +00:00
Randy Heit
738eabc6be - Fixed: The vertex selectors returned the vertex block number instead of the
vertex number. Oops. The vertex map also didn't work for maps larger than 32767
  units on a side.

SVN r168 (trunk)
2006-06-06 03:27:24 +00:00
Randy Heit
6d799f0a1c - Added a "vertex map" for ZDBSP's vertex selection. (Think BLOCKMAP for
vertices instead of lines.) On large maps, this can result in a very
  significant speed up. (In one particular map, ZDBSP had previously
  spent 40% of its time just scanning through all the vertices in the
  map. Now the time it spends finding vertices is immeasurable. Now 68%
  of its time on that map is spent inside ClassifyLine--because that
  routine is called more than 16 million times, which suggests that even
  a minor speedup in that routine should have a big impact--if I could
  just think of how that might happen.) On small maps, this won't make
  much of a difference, because the number of vertices to search was so
  small to begin with.

SVN r167 (trunk)
2006-06-06 02:45:48 +00:00
Randy Heit
30436092ed - Slight performance tweak to ClassifyLine, since a significant portion of
the runtime is spent in that function. I should probably write a faster
  vertex finding routine, since I currently just do a linear search through
  all the vertices. That ought to help speed up SplitSegs, the second most
  time-consuming routine. I also tried storing vertices as doubles instead
  of fixeds, but that made performance drop across the board, so that's a
  change that didn't make it in.

  Ironically, the GCC compiled version is noticeably faster than the VC
  version for x87 math, but VC produces a marginally faster SSE2 version.

SVN r163 (trunk)
2006-06-03 04:12:33 +00:00
Randy Heit
dd6f2eab90 - Fixed writing of v5 GL segs in ZDBSP.
- Fixed ZDBSP compilation under Linux, including support
  for 64-bit architectures.


SVN r162 (trunk)
2006-06-01 17:32:32 +00:00
Randy Heit
21aeec0e3a - Added support for creating v5 GL nodes to ZDBSP.
SVN r159 (trunk)
2006-06-01 01:05:24 +00:00
Randy Heit
8617f499d5 - Added code to explicitly handle outputting overlapping segs when
building GL nodes with ZDBSP, removing the check that discarded
  them early on.

SVN r157 (trunk)
2006-05-31 23:17:26 +00:00
Randy Heit
938f25e39b Added a Makefile for building ZDBSP with GCC and SSE configurations for VC.
SVN r156 (trunk)
2006-05-31 20:25:20 +00:00
Randy Heit
1a979de350 ZDBSP fixes:
- AddIntersection() should convert to doubles before subtracting the vertex
  from the node, not after, to avoid integer overflow. (See cah.wad, MAP12
  and MAP13.) A simpler dot product will also suffice for distance calculation.
- Splitters that come too close to a vertex should be avoided. (See cata.wad.)
- Red-Black Tree implementation was broken and colored every node red.
- Moved most of the code for outputting degenerate GL subsectors into another
  function.
- Removed forgotten debugging file dump from WriteSSectors2().
- Enabled reference optimization and COMDAT folding in the linker for a slightly
  smaller executable.

SVN r155 (trunk)
2006-05-31 15:39:58 +00:00
Randy Heit
3128c11fd1 ZDBSP fixes:
- MapSideDef.sector was declared signed but treated as unsigned.
- Degenerate (one-dimensional) subsectors could throw away segs when
  output for GL nodes depending on the seg ordering.

SVN r152 (trunk)
2006-05-29 03:07:57 +00:00