Subversion Repositories eduke32

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
5037 2402d 15h hendricks266 /polymer/eduke32/build/include/a.h BSD: Build system fixes/improvements. DONT_BUILD.  
4758 2502d 4h helixhorned /polymer/eduke32/build/include/a.h a-c.c: Compile vlineasm4nlogy() only if CLASSIC_NONPOW2_YSIZE_WALLS is #defined.

Also make three file-scope variables static.
 
4747 2502d 10h terminx /polymer/eduke32/build/include/a.h Part 1 of attempting to adhere to C standard section 7.1.3. It turns out it's illegal to use identifiers that begin with _ or have __ anywhere in them. DONT_BUILD.  
4717 2522d 17h terminx /polymer/eduke32/build/include/a.h Clean up classic renderer header (a.h) a bit. DONT_BUILD.  
4702 2526d 5h terminx /polymer/eduke32/build/include/a.h Try out __restrict in the classic renderer. #define'd for easy removal in case it causes problems or is useless.  
4658 2530d 19h terminx /polymer/eduke32/build/include/a.h Various additional optimizations: add CLASSIC_SLICE_BY_4 mode to unroll some of the loops in a-c, replace integer divisions by a divisor unknown at compile time with usage of libdivide, clean up pragmas further by removing more old stuff that wasn't used anywhere. This is another one of those nasty commits that make people cry. DONT_BUILD.  
4578 2593d 12h helixhorned /polymer/eduke32/build/include/a.h Classic: introduce two signed integer types, use in engine.c and a-c.c.

They classify former uses of int64_t into two classes:
- coord_t: those that represent coordinates and need 64-bit precision for
proper functioning with large values
- inthi_t: those that were added for e.g. casts merely to prevent undefined
behavior on overflow

DONT_BUILD.
 
4161 2873d 4h helixhorned /polymer/eduke32/build/include/a.h a-c.c: prevent stray lines on bottom of sprites by saturating v. tex coords.

The functions mvlineasm1, mvlineasm4 and tvlineasm2 can now be set to clamp
the vertical texture coordinate (vplc), preventing the unsightly stray lines
on the bottom of non-y-flipped sprites. (The first part of this effort, r3483,
handled their top).

However, this is only enabled for the mvlineasm ones: the vectorized variants
suffered almost no slowdown (even though a PADDUSD SSE instruction would be a
nice thing to have), while it was pretty significant for the sequential
translucent ones.

Summarizing, this leaves two cases where stray lines may appear in the non-ASM
build (the saturation is NYI for a.nasm):
- at the bottom of y-flipped sprites
- at the bottom of translucent sprites (can be toggled by #define)

Another observation is that recent GCC generates much faster code for this
stuff than Clang from SVN.
 
3116 3249d 20h hendricks266 /polymer/eduke32/build/include/a.h Work-in-progress adjustment to the C code to compile under C++. It builds for me without errors using Win32 MinGW-GCC, but it still generates warning soup. No guarantees about MSVC or anything using SDL. Enable C++ by building with CPLUSPLUS=1. C remains the default and should compile with no change in setup.

Credit to Plagman for the idea and doing the work on the game side, which is included in this commit.

(Building as C++ will give us features with which we can make improvements and optimizations on the multiplayer code and Polymer.)
 
2806 3371d 11h helixhorned /polymer/eduke32/build/include/a.h Classic: add {,m,t}vlineasm1nonpow2, currently unreferenced from high-level drawing.  
2498 3480d 23h helixhorned /polymer/eduke32/build/include/a.h Port tvlineasm2 to C and enable transmaskvline2 code also for all-C builds.

With the same setup as before, a screen-filling translucent wall (with nothing
drawn behind it) renders at about 7 fps faster (from 60-something fps initially)
 
2497 3480d 23h helixhorned /polymer/eduke32/build/include/a.h Port [m]vlineasm4 to C replacements and enable for solid and masked walls.

These two functions draw a vertical line 4 neighboring pixels at a time.
This gives a significant speed boost for a full screen solid and masked wall
scene for x86_64 (where we have plenty of registers), about 60 --> 76 fps.
 
2456 3487d 18h hendricks266 /polymer/eduke32/build/include/a.h Fix JonoF's email address.  
1454 4464d 20h terminx /polymer/eduke32/build/include/a.h Remove dead copy protection and watcom support code, fix structure alignment and packing issues preventing Polymer from working with MSVC, enable link time code generation (whole program optimization) for MSVC builds, fix most warnings showing up in MSVC with /w2, add pulsating dynamic lights when holding the shrinker or expander  
1205 4645d 13h terminx /polymer/eduke32/build/include/a.h ass rape  
1105 4726d 19h terminx /polymer/eduke32/build/include/a.h Moved build to a subdir underneath the eduke32 dir to avoid people trying to compile from the build src dir by mistake  
996 4787d 0h terminx /polymer/eduke32/build/include/a.h Patch from Marcus Herbert to add OSX support  
714 4904d 11h qbix79 /polymer/eduke32/build/include/a.h 8-bit classic renderer works on my system now in 64 bit. (at least no crashes)  
584 5039d 5h terminx /polymer/eduke32/build/include/a.h  
292 5497d 5h terminx /polymer/eduke32/build/include/a.h  

Show All