gallium: add viewport swizzling state and cap