Colourless said:As advanced as the rest of the NV3x was, the register limiation of the chips was just a fucking stupid design decision. Why, why, why, why!
Must have been a scheduling or transistor budget problem. All chips are going to have some limitations. The NV40 also has register limits, they're just higher and the penalty is lower for spilling over them. Doesn't seem like anyone has tested the R300 out to 32 temp registers to see what, if any, limits there are to the FIFOs.
It happens that the vast majority of code doesn't need more than 4-6 registers live at any one time. NV3x was designed for a target of 2 FP32 registers live at any one time, so they got bitten by common usage. Any card that can support 4-8 registers with no penalty will run penalty free on most shaders.