diff options
author | Franklin Wei <franklin@rockbox.org> | 2019-08-09 21:17:46 -0400 |
---|---|---|
committer | Franklin Wei <franklin@rockbox.org> | 2019-08-09 21:27:55 -0400 |
commit | 4397194110e67084ce7de179f0d0f094dee4dada (patch) | |
tree | c8c0df947d10047b769005c4ac4c606f1bf354f8 /apps/plugins/sdl/progs | |
parent | f5bb7fddecc0066a6cfb580538f297cec1def5d8 (diff) | |
download | rockbox-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.h | 34 | ||||
-rw-r--r-- | apps/plugins/sdl/progs/quake/d_vars.c | 20 | ||||
-rw-r--r-- | apps/plugins/sdl/progs/quake/quakedef.h | 2 |
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; | |||
66 | extern float d_sdivzstepv, d_tdivzstepv, d_zistepv; | 66 | extern float d_sdivzstepv, d_tdivzstepv, d_zistepv; |
67 | extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin; | 67 | extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin; |
68 | 68 | ||
69 | fixed16_t sadjust, tadjust; | 69 | extern int d_zistepu_fxp, d_zistepv_fxp, d_ziorigin_fxp; |
70 | fixed16_t bbextents, bbextentt; | 70 | |
71 | #ifdef USE_PQ_OPT3 | ||
72 | extern int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp; | ||
73 | extern int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp; | ||
74 | extern 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 | |||
86 | extern fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM; | ||
87 | extern fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM; | ||
88 | extern 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. | ||
92 | fixed16_t sadjust, tadjust; | ||
93 | fixed16_t bbextents, bbextentt; | ||
94 | fixedpoint_t sadjustFPM, tadjustFPM; | ||
95 | fixedpoint_t bbextentsFPM, bbextenttFPM; | ||
71 | 96 | ||
72 | 97 | ||
73 | void D_DrawSpans8 (espan_t *pspans); | 98 | void D_DrawSpans8 (espan_t *pspans); |
99 | #ifdef USE_PQ_OPT | ||
100 | //JB:Optimization | ||
101 | void D_DrawSpans8WithZ (espan_t *pspans); | ||
102 | #endif | ||
103 | void D_DrawSpans8FPM (espan_t *pspans); | ||
74 | void D_DrawSpans16 (espan_t *pspans); | 104 | void D_DrawSpans16 (espan_t *pspans); |
75 | void D_DrawZSpans (espan_t *pspans); | 105 | void D_DrawZSpans (espan_t *pspans); |
76 | void Turbulent8 (espan_t *pspan); | 106 | void 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. | |||
36 | float d_sdivzstepu, d_tdivzstepu, d_zistepu; | 36 | float d_sdivzstepu, d_tdivzstepu, d_zistepu; |
37 | float d_sdivzstepv, d_tdivzstepv, d_zistepv; | 37 | float d_sdivzstepv, d_tdivzstepv, d_zistepv; |
38 | float d_sdivzorigin, d_tdivzorigin, d_ziorigin; | 38 | float d_sdivzorigin, d_tdivzorigin, d_ziorigin; |
39 | #ifdef USE_PQ_OPT3 | ||
40 | int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp; | ||
41 | int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp; | ||
42 | int d_sdivzorigin_fxp, d_tdivzorigin_fxp, d_ziorigin_fxp; | ||
43 | #endif | ||
44 | |||
45 | int d_ziorigin_fxp, d_zistepv_fxp, d_zistepu_fxp; | ||
46 | |||
47 | #ifdef USE_PQ_OPT | ||
48 | //JB: Optimization | ||
49 | int sdivzstepu, tdivzstepu, zistepu; | ||
50 | int sdivzstepv, tdivzstepv, zistepv; | ||
51 | int sdivzorigin, tdivzorigin, ziorigin; | ||
52 | #endif | ||
53 | |||
54 | #ifdef USEFPM | ||
55 | fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM; | ||
56 | fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM; | ||
57 | fixedpoint_t d_sdivzoriginFPM, d_tdivzoriginFPM, d_zioriginFPM; | ||
58 | #endif | ||
39 | 59 | ||
40 | fixed16_t sadjust, tadjust, bbextents, bbextentt; | 60 | fixed16_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 |