ioq3quest/code/renderergl1
Zack Middleton cccd283be8 Improve IQM CPU vertex skinning performance
Only calculate vertex blend matrix for each unique bone indexes/weights
combination once per-surface instead of recalculating for each vertex.
For best performance the model surfaces needs to use few vertex bone
indexes and weights combinations.

Unroll loops so GCC better optimizes them.

In my tests drawing animated IQM may take 50% as long in opengl1 and
70% as long in opengl2. It will vary by model though and might not
help much at all.

Made unanimated IQM models skip matrix math altogether.
2018-07-27 17:40:21 -05:00
..
tr_altivec.c Isolate the Altivec code so non-Altivec PPC targets can use the same binary. 2018-05-12 14:14:47 -04:00
tr_animation.c Allow more than 32 surfaces in skin files 2017-07-04 14:06:09 -05:00
tr_backend.c OpenGL1: Use RE_UploadCinematic() instead of duplicate code 2018-07-20 23:40:12 -05:00
tr_bsp.c Use standard offsetof facility. Dereferencing a null pointer results 2018-01-21 06:01:50 -06:00
tr_cmds.c Replace 4 with sizeof( int ) in R_GetCommandBufferReserved 2015-10-17 21:58:11 -05:00
tr_curve.c renderer -> renderergl1, rend2 -> renderergl2 2013-02-15 23:46:37 +00:00
tr_flares.c Fix flares being invisible after vid_restart 2013-11-09 16:57:58 -06:00
tr_image.c Don't upload 8 bit grayscale images as 16 bit luminance 2018-07-20 23:40:07 -05:00
tr_init.c Load OpenGL ES 2.0 function procs 2018-07-20 23:40:21 -05:00
tr_light.c Correct spelling mistakes. 2017-11-22 01:40:20 -06:00
tr_local.h Improve IQM CPU vertex skinning performance 2018-07-27 17:40:21 -05:00
tr_main.c Only draw cm_patch/bot debug polygons in world scenes 2017-10-08 07:18:40 -05:00
tr_marks.c OpenGL1: Decay float[8] to float * in tr_marks.c 2018-04-08 21:41:31 -05:00
tr_mesh.c Allow more than 32 surfaces in skin files 2017-07-04 14:06:09 -05:00
tr_model.c Make R_LerpTag return qfalse if MDR tag does not exist 2014-05-06 21:10:16 -05:00
tr_model_iqm.c Improve IQM CPU vertex skinning performance 2018-07-27 17:40:21 -05:00
tr_scene.c Fix floating point precision loss in renderer [part 2] 2017-08-03 00:14:22 -05:00
tr_shade.c Isolate the Altivec code so non-Altivec PPC targets can use the same binary. 2018-05-12 14:14:47 -04:00
tr_shade_calc.c Isolate the Altivec code so non-Altivec PPC targets can use the same binary. 2018-05-12 14:14:47 -04:00
tr_shader.c Correct spelling mistakes. 2017-11-22 01:40:20 -06:00
tr_shadows.c Fix stencil shadows not drawing if has 500 or more vertexes 2014-11-16 21:21:30 -06:00
tr_sky.c Explicitly set cull type for skybox 2016-05-16 03:17:03 -05:00
tr_subs.c renderer -> renderergl1, rend2 -> renderergl2 2013-02-15 23:46:37 +00:00
tr_surface.c Isolate the Altivec code so non-Altivec PPC targets can use the same binary. 2018-05-12 14:14:47 -04:00
tr_world.c Fix undefined behavior when shifting left by 32. 2016-09-07 16:56:23 -07:00