

Michael Abrash's Graphics Programming Black Book - kenshi
http://www.gamedev.net/reference/articles/article1698.asp

======
gommm
That was my bible when I was a kid, I spent so much time reading and pondering
over it... It really is a great book although it's getting to be a bit
outdated, a lot of the concepts and ideas can still be very useful.

~~~
bootload
_"... That was my bible when I was a kid ..."_

John Carmack learned from Abrash reading his graphics and assembler articles
Dr.Dobbs ~ <http://www.firingsquad.com/features/carmack/page7.asp>

------
ComSubVie
I've read this book some time ago, it's definitely a must-read, however I'm
not sure how valid the assembler-tuning tips are on current processors.

Somebody should write a new edition of this book which takes account of
multithreading optimizations and best practices.

~~~
VBprogrammer
I know that the classic SHL instead of multiplication has been out dated for a
number of years. My Intel IA32 manuals confirm that this is now slower than
the multiply operation in most cases.

~~~
ComSubVie
That is pretty interesting, how can a shift operation be slower than a
multiplication?

~~~
ssp
Maybe he means that things like reducing (a * 5) to (a << 2 + a) are now
obsolete.

~~~
ComSubVie
Where the latency of the (integer) multiplication is 3 clock cycles, of
(integer) addition is 1 clock cycle and of (integer) shift it is also 1 clock
cycle (according to the Intel® 64 and IA-32 Architectures Optimization
Reference Manual [1]). Therefore the shifting is still faster than
multiplication, however an optimization for 1 or 2 clock cycles doesn't make
sense anymore...

[1] <http://www.intel.com/products/processor/manuals/>

------
TimothyFitz
IMVU is proud to be (one of the last?) users of Pixomatic, Michael Abrash and
Mike Sartain's commercial software 3d renderer. Even today there's a
surprising demand for software 3d rendering, especially in the laptop/netbook
space: many (potential) users out there have terrible intel graphics
accelerators but fairly fast dual core systems.

