1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Franklin Wei 2019-08-09 21:17:46 -04:00
parent f5bb7fddec
commit 4397194110
3 changed files with 53 additions and 3 deletions

View file

@ -66,11 +66,41 @@ extern float d_sdivzstepu, d_tdivzstepu, d_zistepu;
extern float d_sdivzstepv, d_tdivzstepv, d_zistepv; extern float d_sdivzstepv, d_tdivzstepv, d_zistepv;
extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin; extern float d_sdivzorigin, d_tdivzorigin, d_ziorigin;
extern int d_zistepu_fxp, d_zistepv_fxp, d_ziorigin_fxp;
#ifdef USE_PQ_OPT3
extern int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp;
extern int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp;
extern int d_sdivzorigin_fxp, d_tdivzorigin_fxp, d_ziorigin_fxp;
#endif
#ifdef USE_PQ_OPT
//JB:Optimization
//FW: disable
//extern int sdivzstepu, tdivzstepu, zistepu;
//extern int sdivzstepv, tdivzstepv, zistepv;
//extern int sdivzorigin, tdivzorigin, ziorigin;
#endif
extern fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM;
extern fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM;
extern fixedpoint_t d_sdivzoriginFPM, d_tdivzoriginFPM, d_zioriginFPM;
//Dan: ID Software was already using a minute amount of fixed point. I duplicated
//these just for consistancy in the conversion, and so the types would match.
fixed16_t sadjust, tadjust; fixed16_t sadjust, tadjust;
fixed16_t bbextents, bbextentt; fixed16_t bbextents, bbextentt;
fixedpoint_t sadjustFPM, tadjustFPM;
fixedpoint_t bbextentsFPM, bbextenttFPM;
void D_DrawSpans8 (espan_t *pspans); void D_DrawSpans8 (espan_t *pspans);
#ifdef USE_PQ_OPT
//JB:Optimization
void D_DrawSpans8WithZ (espan_t *pspans);
#endif
void D_DrawSpans8FPM (espan_t *pspans);
void D_DrawSpans16 (espan_t *pspans); void D_DrawSpans16 (espan_t *pspans);
void D_DrawZSpans (espan_t *pspans); void D_DrawZSpans (espan_t *pspans);
void Turbulent8 (espan_t *pspan); void Turbulent8 (espan_t *pspan);

View file

@ -36,6 +36,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
float d_sdivzstepu, d_tdivzstepu, d_zistepu; float d_sdivzstepu, d_tdivzstepu, d_zistepu;
float d_sdivzstepv, d_tdivzstepv, d_zistepv; float d_sdivzstepv, d_tdivzstepv, d_zistepv;
float d_sdivzorigin, d_tdivzorigin, d_ziorigin; float d_sdivzorigin, d_tdivzorigin, d_ziorigin;
#ifdef USE_PQ_OPT3
int d_sdivzstepu_fxp, d_tdivzstepu_fxp, d_zistepu_fxp;
int d_sdivzstepv_fxp, d_tdivzstepv_fxp, d_zistepv_fxp;
int d_sdivzorigin_fxp, d_tdivzorigin_fxp, d_ziorigin_fxp;
#endif
int d_ziorigin_fxp, d_zistepv_fxp, d_zistepu_fxp;
#ifdef USE_PQ_OPT
//JB: Optimization
int sdivzstepu, tdivzstepu, zistepu;
int sdivzstepv, tdivzstepv, zistepv;
int sdivzorigin, tdivzorigin, ziorigin;
#endif
#ifdef USEFPM
fixedpoint_t d_sdivzstepuFPM, d_tdivzstepuFPM, d_zistepuFPM;
fixedpoint_t d_sdivzstepvFPM, d_tdivzstepvFPM, d_zistepvFPM;
fixedpoint_t d_sdivzoriginFPM, d_tdivzoriginFPM, d_zioriginFPM;
#endif
fixed16_t sadjust, tadjust, bbextents, bbextentt; fixed16_t sadjust, tadjust, bbextents, bbextentt;

View file

@ -34,7 +34,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define USE_PQ_OPT2 #define USE_PQ_OPT2
//#define USE_PQ_OPT3 // don't use //#define USE_PQ_OPT3 // don't use
#define USE_PQ_OPT4 #define USE_PQ_OPT4
//#define USE_PQ_OPT5 #define USE_PQ_OPT5
#endif #endif
#define QUAKE_GAME // as opposed to utilities #define QUAKE_GAME // as opposed to utilities