Commit c0d9b08e replaced the old GBM API calls with the multi-plane GBM API. However, the call to gbm_bo_get_handle_for_plane fails for some DRI drivers (in particular i915). Due to missing error checks, the subsequent call to drmModeAddFB fails and the screen output locks up.
This commit adds the missing error checks and falls back to the old GBM API (non-planar) if necessary.
v2: factor out multiplanar and old methods into separate functions.
Related to: #127 (closed)