Remove x86 assembly code.
Remove ‘r_dspeeds’ variable.
Make more variables and functions static.
Replace ‘upload_texinfo’ with IF_TURBULENT flag.
Clean up and fix alias edge scanning.

Scan both left edges with a generalized function. Set d_sfrac/d_tfrac
variables identically to prevent visual artifacts.
Add more sanity checks to software renderer.
Use TURB_SIZE constant where appropriate.

Also force resampling of all turbulent textures to 64x64.
Don't clear refdef background in software mode.
More software renderer code cleanup.
Clean up and sanitize alias model drawing.

Validate texture coordinates. Validate vertex normal indices. Check that
skin upload width/height matches model. Draw alias models in solid white
color when skin is missing or found to be invalid.
Use image upload width/height for polygons.
Center rendering area if resolution is too high.
Improve software lighting.

Apply ‘sw_modulate’ to world lightmaps. Treat negative dynamic lights
the same way as OpenGL renderer does. Properly transform dynamic lights
for moving entities. Bilinear filter lightmap samples for entity
lighting. Fix ‘r_fullbight’ and surfaces without lightmaps to be really
full bright.
Simplify, move math functions.
Make software alias model lighting colored.
Move some variables into r_refdef structure.
Use span tables for depth and view buffer access.
Fix weapon shell scale in software mode.
Fix radius of dynamic lights in GL mode.

Fall off from the same highest intensity on plane no matter what value
‘gl_dlight_falloff’ is set to. Subtract DLIGHT_CUTOFF from entity
lighting intensity.
Clip and project rotating skies.