The viewport is part of the render state but it can be undefined, meaning (0.0, 0.0, canvas width, canvas height). The viewport transform of the uniform state is the same viewport as the last primitive rendered. We could pass the context and retrieve the canvas dimensions from that? Would there ever be a case when a billboard collection would use a viewport as part of the render state other than the "default"?