glamor: Make pixmap exportable from `gbm_bo_from_pixmap()`

If a pixmap is not exportable, `glamor_gbm_bo_from_pixmap()` would fail
and the modesettings driver would consequently fail to do its page flip,
which both prevents Present from working and also fill up the logs with
error messages such as:

  (EE) modeset(0): Failed to get GBM bo for flip to new front.
  (EE) modeset(0): present flip failed

Refactor the code so that `glamor_gbm_bo_from_pixmap()` takes care of
making the pixmap exportable.

Signed-off-by: Olivier Fourdan <>
Signed-off-by: Yuxuan Shui
See-also: xorg/xserver!131
Closes: xorg/xserver#68
Fixes: 86b2d874 "glamor: Reallocate pixmap storage without modifiers
       if necessary"
3 jobs for issue68 in 5 minutes and 33 seconds (queued for 7 seconds)
Status Name Job ID Coverage
  Docker Image
passed debian-testing #325150


  Build And Test
passed autotools-build-and-test #325151


passed meson-build-and-test #325152