A buffer provides the content for a wl_surface. Buffers are created through factory interfaces such as wl_drm, wl_shm or similar. It has a width and a height and can be attached to a wl_surface, but the mechanism by which a client provides and updates the contents is defined by the buffer factory interface.
A.7.1. Requests provided by wl_buffer
A.7.1.1. wl_buffer::destroy - destroy a buffer
Destroy a buffer. If and how you need to release the backing storage is defined by the buffer factory interface.
For possible side-effects to a surface, see wl_surface.attach.