Commit graph

9915 commits

Author SHA1 Message Date
Christoph Oelckers
aa939ef17a Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-07 22:53:06 +01:00
Christoph Oelckers
f547daccc8 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
2016-12-07 22:51:05 +01:00
Christoph Oelckers
6adcba3c4b - fixed linkage for fuzzviewheight
- fixed naming conflict with GCC's virtual table.
2016-12-07 18:39:09 +01:00
Edoardo Prezioso
e4c208602d - Fixed GCC/Clang warning/error. 2016-12-07 16:07:25 +01:00
Christoph Oelckers
2677976cae - r_drawt.cpp is no longer needed. 2016-12-07 15:44:25 +01:00
Christoph Oelckers
a118903e3e - complete removal of assembly stuff. Nothing of this gets used anymore. 2016-12-07 14:41:21 +01:00
Christoph Oelckers
ed141943e1 - removed use of BestColor_MMX because there is no measurable improvement at all on a modern system. On top of that this function does not get called nearly often enough to justify the hassle. Like DoBlending this would require hundreds of calls per frame to make any impact that would be measurable. 2016-12-07 14:40:19 +01:00
Christoph Oelckers
5910067c44 - discontinue using the MMX assembly version of DoBlending.
Some benchmarking shows that on SSE systems it only harms performance and compared to the intrinsics version the gains are too marginal for something this infrequently called.
Doing 100000 calls of DoBlending results in a 5 ms decrease of using assembly vs intrinsics on a 3.4 GHz Core i7, meaning that even on a computer that is 10x slower you can still do 1000 or so blends per frame without a speed hit.
2016-12-07 14:40:18 +01:00
Rachael Alexanderson
2200f6eda3 - fixed: compile error with SDLGLVideo class macro 2016-12-07 13:21:28 +01:00
Christoph Oelckers
42346c58d3 - disabled assembly entirely to make the MT drawer submission compile.
This still requires a review of the two non-drawer functions that get 'lost'.
2016-12-07 12:31:43 +01:00
Christoph Oelckers
1e42c6f227 - added copyright headers to two files missing them. 2016-12-07 11:40:59 +01:00
Magnus Norddahl
3ff91807b8 Move swrenderer into a namespace, add multithreading framework, and move drawers to commands 2016-12-07 09:34:49 +01:00
Christoph Oelckers
56f67726f0 - seems a Linux file was missed when refactoring the IMPLEMENT_CLASS macros. 2016-12-07 00:54:40 +01:00
Christoph Oelckers
6271ecf2af Merge remote-tracking branch 'remotes/zdoom/master' 2016-12-06 22:47:53 +01:00
Christoph Oelckers
c3fb43db3a Merge branch 'gz-zscript' 2016-12-06 22:47:37 +01:00
Christoph Oelckers
52645afb4b - for the time being, make ZScript command line switch locked so that everybody understands that it's not ready for use in released mods yet. 2016-12-06 22:42:10 +01:00
Christoph Oelckers
a3ae05299b - fixed: glPolygonOffset was not called for flat sprites. 2016-12-06 19:17:02 +01:00
Christoph Oelckers
c115c0a5b2 - fixed: Random flicker lights must set up their size on the first tic they are run. If not they will keep the radius of the previous effect which may be too large. 2016-12-06 18:35:34 +01:00
Christoph Oelckers
d04c37101e Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-06 12:59:03 +01:00
Christoph Oelckers
17698467d7 - made application of dynamic lights to additively blended surfaces a MAPINFO option. In most cases this is not wanted but sometimes this can be used to good effect so it should be there as an option. 2016-12-06 12:58:45 +01:00
Christoph Oelckers
fb7b49bba1 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-06 12:35:22 +01:00
Christoph Oelckers
e41e404143 Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript 2016-12-06 12:33:52 +01:00
Christoph Oelckers
b2d1b0d7a6 - fixed: FTranslatedLineTarget::angleFromSource returned the attack angle, not the angle between actors when returned from P_LineAttack.
For most attack functions this is wrong, it's only the Hexen fighter attack needing this particular value, so it has been split up into two return values now.
2016-12-06 11:04:54 +01:00
Christoph Oelckers
daaa6e7831 - fixed bad parameter in AActor::ModifyDamage. 2016-12-06 00:00:56 +01:00
Rachael Alexanderson
824705eaca - Fixed compile errors with maxviewpitch update 2016-12-05 22:32:18 +01:00
Rachael Alexanderson
c53a20aea6 - Notify gamesim of maxviewpitch change. 2016-12-05 22:32:18 +01:00
Christoph Oelckers
092461ed34 - make dynamic object casts a dedicated VM instruction instead of a builtin function.
This can see some heavy use in iterators where saving several hundreds of function calls can be achieved. In these cases, using a function to do the job will become a significant time waster.
2016-12-05 14:52:34 +01:00
Christoph Oelckers
f722967abe - added automatic type deduction capabilities for local variables. If you type 'let variable = value;' the type of 'variable' will be deduced from the given value. This is mostly of interest for type casting pointers, because 'let p = Classtype(objectvar);' does not require writing the class type name twice. 2016-12-05 13:24:42 +01:00
Christoph Oelckers
67bdac5227 Merge branch 'master' into zscript 2016-12-05 12:03:59 +01:00
Christoph Oelckers
7624973ef3 - updated list of render styles in UDMF spec. 2016-12-05 11:50:41 +01:00
Christoph Oelckers
c0a622eb54 - removed pointless assignment. 2016-12-05 02:08:26 +01:00
Christoph Oelckers
f6fb27b683 - deleted rt_copy*col and rt_map*col assembly versions after running benchmarks that show inferior performance to the C++ versions on both older and newer CPUs. 2016-12-05 00:46:58 +01:00
Christoph Oelckers
86fcc3fd21 - added a heavily optimized version of vlinec4 for x64. The original loaded everything from the global variables. While this is acceptable in 32 bit code because it has an immediate register load instruction, for 64 bit this does not exist. Accessing these variables from the stack or a register doubles the execution speed of this function and on a Core i7-3770 from 2012 is even faster than the assembly version. Right now the assembly version is still there, pending a benchmark run on an older 64 bit system. 2016-12-04 23:53:36 +01:00
Christoph Oelckers
f4454d2e00 - minor, but very effective optimization for R_DrawSpanMasked: Do not store the texel value in a byte. Store it in a local int variable. This allows the compiler to read it with a zero extending instruction instead of using a byte reading instruction and then later having it to convert to an int anyway. This removes one instruction from the loop which results in a 10% performance increase on 32 bit. 2016-12-04 19:32:54 +01:00
Christoph Oelckers
c9caaf08c8 - removed asm version of R_DrawFuzzColumn, because even on my 9 year old laptop this was significantly slower than the C version. 2016-12-04 18:38:38 +01:00
Christoph Oelckers
13efb34964 - removed the asm version of R_DrawColumn because it doesn't provide any significant benefit.
On modern systems it is actually slower than the C version, only on old ones it is marginally faster - but the overall execution time for this function is so low that even in the worst case scenario the minor loss of performance on older systems is still not relevant.
2016-12-04 18:05:34 +01:00
Christoph Oelckers
8fd03bc4a3 - fixed a few prototypes. 2016-12-04 16:57:10 +01:00
Christoph Oelckers
93163d12f1 - removed R_DrawColumnHorizP_ASM completely after discovering that the compiler generated code isn't really anything worse than the old assembly code. This looks like something that may have been relevant 10 years ago but today it looks like there's no need for hand optimization here anymore. And since it appears to be broken anyway, off this goes. 2016-12-04 15:31:08 +01:00
Christoph Oelckers
d0cf34890c - disabled R_DrawColumnHorizP_ASM because that function appears prone to crashing when rendering decals. 2016-12-04 15:01:48 +01:00
Christoph Oelckers
bf0aedfd9c Merge branch 'master' of https://github.com/rheit/zdoom into zscript 2016-12-04 14:29:24 +01:00
Christoph Oelckers
5a08768eaf - removed unused label. 2016-12-04 14:29:03 +01:00
Magnus Norddahl
0ed0c47a45 Optimize capped sky rendering by writing 4 pixels at a time in 5 bands (solid, fade, texture, fade, solid) 2016-12-04 14:28:13 +01:00
Christoph Oelckers
ebdc672985 - fixed: A_Saw was using the wrong angle for adjusting the facing direction at the end. 2016-12-04 10:45:20 +01:00
Christoph Oelckers
18b953dd50 - fixed: Blasted objects should also be subject to being checked with CanCollideWith. 2016-12-04 10:34:36 +01:00
Christoph Oelckers
71e8f09126 Merge branch 'master' of https://github.com/rheit/zdoom into zscript 2016-12-04 10:27:35 +01:00
Edoardo Prezioso
0cff443945 - Fixed missing linebreak in 'currentpos' error message. 2016-12-04 10:25:23 +01:00
Edoardo Prezioso
c99a051a2a - Added lambda feature to FString::(Strip|Replace)Chars.
Use it in the other (Strip|Replace)Chars methods to show how it would work.
2016-12-04 10:24:49 +01:00
Christoph Oelckers
94287518e0 - added a virtual CanCollideWith script method that can be overridden to do class specific collision checks.
This will get called for both actors taking part in a collision, if one of the two calls returns false it will immediately abort PIT_CheckThing with no collision taking place at all.
2016-12-04 10:13:36 +01:00
Christoph Oelckers
daf1a40521 - allow swapping the order of gl_finish and SwapBuffers calls, because some cards do not seem to like the correct order. 2016-12-03 20:09:25 +01:00
Christoph Oelckers
834802def3 - sanitized the old sprite offset adjustment feature and used it to redefine offsets for some sprites that have really bad ones. 2016-12-03 19:49:32 +01:00