ok, lets say I send a bunch of vertex data (floats) to vu1 for processing. At the end of processing I would have to convert them to fixed point so that they can be sent to the GIF right?
The XYZ2 register accepts 16bit fixed point values for x and y, but the Z value is 32 bit unsigned integer. Ok, so I guess its not a big deal because there are vu instructions to do this easily.
Even though the fixed point values would be 32 bits in vu memory, the upper bits would just be chopped off to make it 16 bits for x and y.
I just found it kinda strange, but I guess it is more efficient for the GS to be doing operations with fixed point numbers rather than floating point?
Also it seems most of the instructions operate on floating point numbers rather than integer (fixed point). So would it be kinda pointless to just send fixed point data to vu1 in the first place? I am guessing they use floating point for better accuracy?
Fixed point & floating point
-
- Posts: 4
- Joined: Fri Aug 25, 2006 4:35 am
- Location: Toronto, Canada
It is much more efficient for the GS to do operations in fixed point vs. floating point. If we are talking about the GS hardware circuits, fixed point circuitry is much less complicated then floating point and therefore requires less silicon real estate (and less hardware clock cycles to compute). So cost and and performance are probably the reasons for the fixed point implemetation in the GS. However, with fixed point you obviously lose precision and range compared to floating point values. However, it was probably determined that the extra precision did not affect image quality, and a smaller (cheaper) chip was more important.
-Jeff
-Jeff