gl: use reduced width and height for shadow surface

Instead of using scratch surface width and height, we compute scaled
width and height when generating cached shadow surface for GL backend