1408 / 8 = 176
1056 / 8 = 132
Voila, we have a slightly larger resolution that fits the aspect ratio and now fits with the divisible by 8 timing. So either 1400x1050 displays aren't really 1400x1050 pixels, or the driver is adding some padding to the values to make them compatible and the rest of the pixels are lost to overscan.
Thanks for the analysis. It makes sense to me.
Read some more documents. It turned out to be a Width vs. Pitch thing.
1400: display width, what we see. It is also the pixel numbers of a line of my LCD since it is the native resolution.
1408: surface pitch, the actual pixel numbers of a framebuffer line (corresponding video memory will be used to handle such a line), must dividable by 32 from ATI register document,
The above analysis does not considering multiple screens, otherwise the pitch value is calculated from the whole expanded desktop width (virtual x in radeonHD driver), not from the primary display width only.
This link explains how to differentiate width from pitch: http://msdn.microsof...357(VS.85).aspx