xwayland: Set GLVND driver based on GBM backend name
With the GBM backend becoming usable with different drivers such as NVIDIA, set the GLVND vendor to the same value as the GBM backend name. Mesa implementation however returns "drm" so we need to special case this value - Basically, for anything other than "drm" we simply assume that the GBM backend name is the same as the vendor. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: James Jones <jajones@nvidia.com> Tested-by: James Jones <jajones@nvidia.com>
This commit is contained in:
parent
f15729376d
commit
5daf42b489
|
@ -939,6 +939,7 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
|
|||
struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
|
||||
EGLint major, minor;
|
||||
const GLubyte *renderer;
|
||||
const char *gbm_backend_name;
|
||||
|
||||
if (!xwl_gbm->fd_render_node && !xwl_gbm->drm_authenticated) {
|
||||
ErrorF("Failed to get wl_drm, disabling Glamor and DRI3\n");
|
||||
|
@ -990,6 +991,11 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
|
|||
"EXT_image_dma_buf_import_modifiers"))
|
||||
xwl_gbm->dmabuf_capable = TRUE;
|
||||
|
||||
gbm_backend_name = gbm_device_get_backend_name(xwl_gbm->gbm);
|
||||
/* Mesa uses "drm" as backend name, in that case, just do nothing */
|
||||
if (gbm_backend_name && strcmp(gbm_backend_name, "drm") != 0)
|
||||
xwl_screen->glvnd_vendor = gbm_backend_name;
|
||||
|
||||
return TRUE;
|
||||
error:
|
||||
if (xwl_screen->egl_display != EGL_NO_DISPLAY) {
|
||||
|
|
Loading…
Reference in New Issue