Sam Hocevar
82d81256b9
core: implement accelerated lol_sincos() and lol_tan().
před 13 roky
Sam Hocevar
5be195a8b0
core: slightly reorganise Taylor series in sin() and cos().
před 13 roky
Sam Hocevar
49f9c59ff3
core: implement accelerated cos().
před 13 roky
Sam Hocevar
a65c472ffd
core: add a code shortcut for sin() on platforms that have cheap branches.
před 13 roky
Sam Hocevar
148f6838e9
test: replace lol-bench with lol-bench$(EXEEXT) in the Makefile to allow
"make bench" to work when cross-compiling for Windows.
před 13 roky
Sam Hocevar
6ed53d9868
test: do the trigonometry tests on doubles instead of floats.
před 13 roky
Sam Hocevar
35454b8f94
test: add an empty sandbox program and update .gitignore.
před 13 roky
Sam Hocevar
3402db36c3
optim: better isnan() reimplementation.
před 13 roky
Sam Hocevar
824551e4af
optim: split the Taylor series calculation into two separate values.
This is at the cost of one additional multiply, but performance increases
by more than 11%, because the PS3 pipeline is a lot happier now.
před 13 roky
Sam Hocevar
de496b15fe
core: remove one multiplication and one selection from the optimised
version of sinf().
před 13 roky
Sam Hocevar
105485a3aa
test: new test for trigonometric functions.
před 13 roky
Sam Hocevar
42b22f1163
core: minor optimisation in the x86 version of lol_sin()
Instead of dividing by 2 and rounding with magic number 2^52, we round with
magic number 2^53, which gives us the parity with at least one mul less.
před 13 roky
Sam Hocevar
7680eca5d8
test: implement a custom isnan()
This version is faster (about 25% on x86_64) and works when extreme
optimisation options such as -ffast-math are used.
před 13 roky
Sam Hocevar
744f4ac98d
test: add benchmark tests for trigonometry functions.
před 13 roky
Sam Hocevar
1b33a7fcb7
core: start implementing optimised trigonometry functions for PS3 and x86.
před 13 roky
Sam Hocevar
bcc14949ad
build: check for <fastmath.h> and build using -O3 -ffastmath.
před 13 roky
Sam Hocevar
d2b523bb01
core: use <altivec.h> with ppu-gcc, <ppu_altivec_internals.h> with SNC.
před 13 roky
Sam Hocevar
4b9bd58747
core: reactivate half denormals for the PS3.
We know we will not have denormal floats on the PS3, but we should still
create denormal halves in case the other end (maybe the GPU?) knows how
to handle them.
před 13 roky
Sam Hocevar
09ecf1bd8b
contrib: rebuild the Win32 CppUnit under Linux and fix the includes.
Apparently g++ 4.5.2 on native mingw32 inserts references to __Unwind_Resume
when exceptions are supported. This function is not present in the g++ 4.4
cross-compiler found in Debian, leading to linker errors when cross-
compiling. So we use the latter to build CppUnit itself.
Another problem arises with g++ 4.4, which is the incomplete stripping of
exceptions when -fno-exceptions is used. Since ExceptionTestCaseDecorator.h
has such code, we protect it with #ifdef __EXCEPTIONS in the meantime.
před 13 roky
Sam Hocevar
782283a3d0
test: add matrix code to the benchmark program.
před 13 roky
Sam Hocevar
cb001ddbcc
core: tune the half precision code so that the best variants are being
used on the PS3 platform.
před 13 roky
Sam Hocevar
aa6e832fd7
build: clean up .self files and allow to build the benchmark on the PS3.
před 13 roky
Sam Hocevar
e47928e8d1
test: improve the benchmark code to measure a lot more half precision
number conversions.
před 13 roky
Sam Hocevar
bf23a03ecd
contrib: add a precompiled Win32 version of CppUnit and update build system
accordingly.
před 13 roky
Sam Hocevar
0bbd1e43c2
test: add a fallback for isnan() when not defined by the system includes.
před 13 roky
Sam Hocevar
205fc5fc22
core: rename half::isnan() etc. to half::is_nan() because "isnan" can be
a C macro on some systems (Android NDK, PS3...).
před 13 roky
Sam Hocevar
4fea7a091d
core: implement array versions of the float / half conversion routines.
před 13 roky
Sam Hocevar
2d85e76ec8
core: minor refactoring in the float / half conversions to accomodate
for future array versions.
před 13 roky
Sam Hocevar
8b71ddb30c
core: implement new half / float operations and the associated tests.
před 13 roky
Sam Hocevar
92e3387f7c
test: augment the half precision numbers testsuite.
před 13 roky
Sam Hocevar
c3b23d1f4d
core: add a half to float conversion routine and utility floating point
functions such as isnan(), isinf() etc.
před 13 roky
Sam Hocevar
4379388b52
test: add first test routines for the half class.
před 13 roky
Sam Hocevar
96007d26c4
core: start working on the "half" type.
před 13 roky
Sam Hocevar
2b9d64f7a8
core: more vec?i -> ?veci renames.
před 13 roky
Sam Hocevar
b111f7e3d8
core: move platform-specific code to specific directories.
před 13 roky
Sam Hocevar
6b1985d95f
android: keep a pointer on the global Java VM instead of the current
environment, so back-to-jvm techniques can work from any thread.
před 13 roky
Sam Hocevar
6bbe943492
core: rename vec2i to ivec2 etc. to better match GLSL.
před 13 roky
Sam Hocevar
f79a3c52b5
core: add a Sprite class to try to factor some common logic currently
found in the game. Will be greatly improved later.
před 13 roky
Sam Hocevar
5c5739e508
ps3: port the dithering code to Cg. It does not work because subscripting
with runtime variables is only valid for arrays of texture samples.
před 13 roky
Sam Hocevar
533b3b33e0
render: add a Gradient class that will be used for dithering later.
před 13 roky
Sam Hocevar
611b599682
debug: more iOS compilation fixes; GL_VERTEX_ARRAY isn't available.
před 13 roky
Sam Hocevar
f778f5352e
build: add iOS build rules to the XML configuration.
před 13 roky
Sam Hocevar
28f0fc2675
debug: fix iOS compilation of the debug quad code.
před 13 roky
Sam Hocevar
473166f72d
ios: update XCode project and fix a GL test compilation issue.
před 13 roky
Sam Hocevar
05ed66b18d
ps3: port our naive dithering algorithm to the PS3's shader language.
před 13 roky
Sam Hocevar
e1f496d025
ps3: fix the pad handling code that was ignoring the pad information when
its state hadn't changed.
před 13 roky
Sam Hocevar
8493bedaaa
build: update Bitten configuration for Windows cross-compilation.
před 13 roky
Sam Hocevar
ecb0d80b7e
android: fix Android NDK compilation.
před 13 roky
Sam Hocevar
23d1701035
build: allow to properly cross-compile for PS3 on Mingw.
před 13 roky
Sam Hocevar
c8355d2821
web: tune Bitten configuration.
před 13 roky