ioq3quest/code/renderergl2
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
..
glsl OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_animation.c Allow more than 32 surfaces in skin files 2017-07-04 14:06:09 -05:00
tr_backend.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_bsp.c Correct spelling mistakes. 2017-11-22 01:40:20 -06:00
tr_cmds.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_curve.c OpenGL2: Store vertex colors and hdr lightmaps/lightgrid as RGBA16. 2016-10-11 03:28:20 -07:00
tr_dsa.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_dsa.h OpenGL2: Detect Intel graphics and avoid/use certain operations there. 2016-12-07 22:30:55 -08:00
tr_extensions.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_extramath.c OpenGL2: Store vertex colors and hdr lightmaps/lightgrid as RGBA16. 2016-10-11 03:28:20 -07:00
tr_extramath.h OpenGL2: Store vertex colors and hdr lightmaps/lightgrid as RGBA16. 2016-10-11 03:28:20 -07:00
tr_extratypes.h Clarify comment for OpenGL2's RDF_NOFOG 2013-05-24 13:16:56 -05:00
tr_fbo.c Correct spelling mistakes. 2017-11-22 01:40:20 -06:00
tr_fbo.h OpenGL2: Some FBO cleanup, and add non-depth blur to blur shader. 2016-04-05 02:37:05 -07:00
tr_flares.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_glsl.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_image.c Don't upload 8 bit grayscale images as 16 bit luminance 2018-07-20 23:40:07 -05:00
tr_image_dds.c OpenGL2: Add r_exportCubemaps for saving cubemaps on map load. 2015-12-22 05:04:07 -08:00
tr_init.c Don't check fixed function GL extensions when using shader pipeline 2018-07-20 23:40:26 -05:00
tr_light.c OpenGL2: Restore adding fixed ambient light when HDR is enabled 2017-12-15 17:46:51 -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 OpenGL2: Store normals/tangents as int16_t[4]. 2016-09-06 00:57:15 -07:00
tr_mesh.c OpenGL2: Fix MD3 surface with zero shaders dividing by zero 2017-10-04 21:00:04 -05:00
tr_model.c Add vao cache for static surfaces. 2017-04-28 02:13:25 -07:00
tr_model_iqm.c Improve IQM CPU vertex skinning performance 2018-07-27 17:40:21 -05:00
tr_postprocess.c OpenGL2: Fix brightness when r_autoExposure is disabled 2017-10-02 20:46:36 -05:00
tr_postprocess.h OpenGL2: Match glsl data type names: matrix_t -> mat4_t, vec*i_t -> ivec*_t 2013-11-19 03:23:50 -08:00
tr_scene.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_shade.c OpenGL2: Fix world VAO cache drawing when glIndex_t is unsigned short 2018-07-20 23:40:31 -05: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 OpenGL2: Fix parsing specularScale in shaders 2018-05-11 23:18:39 -05:00
tr_shadows.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_sky.c OpenGL2: Use an OpenGL 3.2 core context if available. 2017-07-13 12:03:10 -07: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_vbo.c OpenGL2: Misc fixes and cleanup 2018-07-20 23:40:35 -05:00
tr_world.c OpenGL2: Remove SF_VAO_MESH. 2017-06-16 16:52:53 -07:00