summaryrefslogtreecommitdiff
path: root/apps/plugins/sdl/progs
diff options
context:
space:
mode:
authorFranklin Wei <franklin@rockbox.org>2019-08-09 21:17:46 -0400
committerFranklin Wei <franklin@rockbox.org>2019-08-09 21:27:55 -0400
commit4397194110e67084ce7de179f0d0f094dee4dada (patch)
treec8c0df947d10047b769005c4ac4c606f1bf354f8 /apps/plugins/sdl/progs
parentf5bb7fddecc0066a6cfb580538f297cec1def5d8 (diff)
downloadrockbox-4397194110e67084ce7de179f0d0f094dee4dada.tar.gz
rockbox-4397194110e67084ce7de179f0d0f094dee4dada.zip
quake: enable PQ_OPT5 (a fixed-point DrawSpans8)
This boosts performance to 13.0FPS on ipod6g for `timedemo demo1'. That's a +34% increase from baseline. Change-Id: I50bae7783ff2fce46e8257c251c6b639c069e7cb
Diffstat (limited to 'apps/plugins/sdl/progs')
-rw-r--r--apps/plugins/sdl/progs/quake/d_local.h34
-rw-r--r--apps/plugins/sdl/progs/quake/d_vars.c20
-rw-r--r--apps/plugins/sdl/progs/quake/quakedef.h2
3 files changed, 53 insertions, 3 deletions
diff --git a/apps/plugins/sdl/progs/quake/d_local.h b/apps/plugins/sdl/progs/quake/d_local.h
index af924899e5..781aea06d4 100644
--- a/apps/plugins/sdl/progs/quake/d_local.h
+++ b/apps/plugins/sdl/progs/quake/d_local.h
@@ -66,11 +66,41 @@ extern float d_sdivzstepu, d_tdivzstepu, d_zistepu;
66extern float d_sdivzstepv, d_tdivzstepv, d_zistepv; 66extern float d_sdivzstepv, d_tdivzstepv, d_zistepv;
67extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin; 67extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin;
68 68
69fixed16_t sadjust, tadjust; 69extern int d_zistepu_fxp, d_zistepv_fxp, d_ziorigin_fxp;
70fixed16_t bbextents, bbextentt; 70
71#ifdef USE_PQ_OPT3
72extern int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp;
73extern int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp;
74extern int d_sdivzorigin_fxp, d_tdivzorigin_fxp, d_ziorigin_fxp;
75#endif
76
77
78#ifdef USE_PQ_OPT
79//JB:Optimization
80//FW: disable
81//extern int sdivzstepu, tdivzstepu, zistepu;
82//extern int sdivzstepv, tdivzstepv, zistepv;
83//extern int sdivzorigin, tdivzorigin, ziorigin;
84#endif
85
86extern fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM;
87extern fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM;
88extern fixedpoint_t d_sdivzoriginFPM, d_tdivzoriginFPM, d_zioriginFPM;
89
90//Dan: ID Software was already using a minute amount of fixed point. I duplicated
91//these just for consistancy in the conversion, and so the types would match.
92fixed16_t sadjust, tadjust;
93fixed16_t bbextents, bbextentt;
94fixedpoint_t sadjustFPM, tadjustFPM;
95fixedpoint_t bbextentsFPM, bbextenttFPM;
71 96
72 97
73void D_DrawSpans8 (espan_t *pspans); 98void D_DrawSpans8 (espan_t *pspans);
99#ifdef USE_PQ_OPT
100//JB:Optimization
101void D_DrawSpans8WithZ (espan_t *pspans);
102#endif
103void D_DrawSpans8FPM (espan_t *pspans);
74void D_DrawSpans16 (espan_t *pspans); 104void D_DrawSpans16 (espan_t *pspans);
75void D_DrawZSpans (espan_t *pspans); 105void D_DrawZSpans (espan_t *pspans);
76void Turbulent8 (espan_t *pspan); 106void Turbulent8 (espan_t *pspan);
diff --git a/apps/plugins/sdl/progs/quake/d_vars.c b/apps/plugins/sdl/progs/quake/d_vars.c
index 88cc841ab8..f9db12dd06 100644
--- a/apps/plugins/sdl/progs/quake/d_vars.c
+++ b/apps/plugins/sdl/progs/quake/d_vars.c
@@ -36,6 +36,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
36float d_sdivzstepu, d_tdivzstepu, d_zistepu; 36float d_sdivzstepu, d_tdivzstepu, d_zistepu;
37float d_sdivzstepv, d_tdivzstepv, d_zistepv; 37float d_sdivzstepv, d_tdivzstepv, d_zistepv;
38float d_sdivzorigin, d_tdivzorigin, d_ziorigin; 38float d_sdivzorigin, d_tdivzorigin, d_ziorigin;
39#ifdef USE_PQ_OPT3
40int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp;
41int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp;
42int d_sdivzorigin_fxp, d_tdivzorigin_fxp, d_ziorigin_fxp;
43#endif
44
45int d_ziorigin_fxp, d_zistepv_fxp, d_zistepu_fxp;
46
47#ifdef USE_PQ_OPT
48//JB: Optimization
49int sdivzstepu, tdivzstepu, zistepu;
50int sdivzstepv, tdivzstepv, zistepv;
51int sdivzorigin, tdivzorigin, ziorigin;
52#endif
53
54#ifdef USEFPM
55fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM;
56fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM;
57fixedpoint_t d_sdivzoriginFPM, d_tdivzoriginFPM, d_zioriginFPM;
58#endif
39 59
40fixed16_t sadjust, tadjust, bbextents, bbextentt; 60fixed16_t sadjust, tadjust, bbextents, bbextentt;
41 61
diff --git a/apps/plugins/sdl/progs/quake/quakedef.h b/apps/plugins/sdl/progs/quake/quakedef.h
index fe9245e851..b629eeb3b2 100644
--- a/apps/plugins/sdl/progs/quake/quakedef.h
+++ b/apps/plugins/sdl/progs/quake/quakedef.h
@@ -34,7 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34#define USE_PQ_OPT2 34#define USE_PQ_OPT2
35//#define USE_PQ_OPT3 // don't use 35//#define USE_PQ_OPT3 // don't use
36#define USE_PQ_OPT4 36#define USE_PQ_OPT4
37//#define USE_PQ_OPT5 37#define USE_PQ_OPT5
38#endif 38#endif
39 39
40#define QUAKE_GAME // as opposed to utilities 40#define QUAKE_GAME // as opposed to utilities