Error code missing for buffer size not divisible by buffer scale
wl_surface.attach specification says:
The new size of the surface is calculated based on the buffer size transformed by the inverse buffer_transform and the inverse buffer_scale. This means that the supplied buffer must be an integer multiple of the buffer_scale.
The specification uses the wording "must", but does not specify what protocol error code should be used when the requirement is violated.
Define the error code.
wp_viewport with explicit destination size removes this requirement, because it allows non-integer scaling and uses fractional source rectangle coordinates.)