always pass real width and height to `viewport`

clientWidth and clientHeight are useful for maintaining correct
aspect ratio in perspective matrices, BUT we always want to render
to the number of actual pixels provided, regardless of the size
of the canvas as may be produced by CSS transformations.