> Reference Database


.NET  7
Artificial Intelligence  7
  Group behavior  2
  Path finding  16
    A* and its derivatives  6
  Pattern recognition  1
  Steering behavior  2
  World interaction  4
Audio  0
  DirectX  8
  DSP  5
  Ogg Vorbis  2
  OpenAL  1
  Windows  1
Computer Science  2
  Algorithms & data structures  12
    BSP trees  8
  Encryption  12
  Randomness & noise  11
Data storage  4
  File formats  14
    Image  10
  Resource files  2
Game Development  20
  Cheat & crack prevention  10
  Input  3
  Timing  4
Graphics  27
  Character animation  6
  DirectX  24
    Optimizing  8
  Illumination  5
    Deferred lighting  7
    Global illumination  8
    Lighting models  6
    Screen Space Ambient Occlusion  4
    Shadow maps  18
    Shadow volumes  15
  Image processing & synthesizing  19
  Non-polygonal rendering  3
    Ray tracing  3
  OpenGL  12
  Particle systems  7
  Shaders  32
  Simulation  4
    Cloth  2
    Clouds & sky light  7
    Fire & smoke  4
    Liquids  12
  Surfaces & Meshes  7
    Implicit surfaces  6
    Parametric curves & surfaces  7
    Polygon reduction & LOD  3
    Subdivision surfaces  7
  Terrain  7
    Continuous LOD  12
    Generating data  4
    Voxel engines  2
  Text  6
  Transparency  1
  Visibility determination  16
Languages  5
  Assembler  20
  C & C++  25
    C++ exceptions  5
    Calling conventions  11
    Debugging  5
    Memory management  7
    Optimizations  6
  C#  4
  Creating your own language  13
    Garbage collection  7
  D  2
  Java  4
  Scripting  3
    JScript & VBScript  1
    Lua  6
    Other languages  8
    Perl  2
    Python  5
    Ruby  4
Mathematics  3
  Fourier transform  4
  Geometry  6
  Linear algebra, vectors & matrices  9
  Wavelet transform  5
Object design  3
Physics  5
  Body dynamics  8
  Collision detection  10
    Polytopes  6
Platform  2
  Linux  1
  Mac  2
  Windows  13
    COM, ATL & WTL  8
    Dynamically loaded libraries  6
    Hooks  5
    Input  2
    Networking  6
    Screensavers  3
    Services  1
    Shell  2
    Small executables  3
    Windows  8
Web Technologies  8

How to optimize for the pentium processor
1996 - Agner Fog
This article describes many techniques that can be used in assembler to optimize the execution. Examples such as pairing of instructions, eliminating branches, etc are shown with examples and references.

Intel Architecture Software Developer's Manual
This manual hold the architecture, instruction sets, and programming guide for all of Intel's processors.

Intel Architecture Optimization Reference Manual
Code optimization techniques for Pentium, Pentium II, and Pentium III. A very good manual that tells you how to optimize common tasks as branches and loops, as well as how to use MMX and SSE.

Intel Pentium 4 Processor Optimization Reference Manual
Code optimization techniques for Pentium 4, including MMX, SSE, and SSE2.

AMD Athlon Processor x86 Code Optimization Guide

AMD Processor Recognition Application Note
Aug 2001

Optimizing for SSE: A Case Study
Sep 2002 - Cort Stratton
This article explains very well how the SSE instructions work and how to optimize your assembler routines for Pentium 3. As the practical example it uses the vector*matrix multiplication common in 3D applications.

Introduction to MMX
August, 2002 - Andreas Jönsson
This article shows how to use MMX to optimize your integer calculations.

NASM documentation
This is the documentation for the NASM assembler. I highly recommend this documentation for any assembler writer as it contains an very good reference to the PC assembler instruction set, including indicators for which CPU models run which instructions.


Intel's developer site

SSE2 for Dummies (who know C/C++)
September, 2003 - Zach Dwiel
This articles gives an introduction to SSE2 and shows how to use it with both MSVC and GCC.

SoftWire source code
SoftWire library source code, before it was bought by TransGaming.

Optimizing subroutines in assembly language: An optimization guide for x86 platforms
Aug, 2006 - Agner Fog

The microarchitecture of Intel and AMD CPU’s: An optimization guide for assembly programmers and compiler makers
Aug, 2006 - Agner Fog

Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel and AMD CPU's
Aug, 2006 - Agner Fog
The article gives detailed information about machine instructions for optimization at assembly level.

Agner Fog's home page
Agner Fog
This site has valuable information on software optimizations, and also a few other cool stuff, such as random number generators, CPU detection routines, and links to other resources.

Mac OS X Assembler Reference
This is the official reference manual for assembler on Mac OS X and covers both PPC and x86 CPUs.

Mac OS X ABI Function Call Guide
Nov, 2006 - Apple
This is the official guide to the Mac OS X ABI. It covers both 32bit and 64bit PowerPC, as well as 32bit IA-32 (x86).

Mar, 2003 - Sandeep S
This article gives a good explanation of how GCC inline assembly should be used.