xwayland: do not disable glamor if EGLStream failed
EGLStream requires glamor, but the opposite is not true. So if someone passes "-eglstream" with a GPU which does not support EGLStream, we could maybe still try GBM and be lucky. That allows Wayland compositors to pass "-eglstream" regardless of the actual hardware, if they want to enable EGLStream on GPU which support it. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
		
							parent
							
								
									44560af028
								
							
						
					
					
						commit
						e16a6da79d
					
				| 
						 | 
					@ -939,9 +939,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
 | 
				
			||||||
    struct xwl_screen *xwl_screen;
 | 
					    struct xwl_screen *xwl_screen;
 | 
				
			||||||
    Pixel red_mask, blue_mask, green_mask;
 | 
					    Pixel red_mask, blue_mask, green_mask;
 | 
				
			||||||
    int ret, bpc, green_bpc, i;
 | 
					    int ret, bpc, green_bpc, i;
 | 
				
			||||||
#ifdef XWL_HAS_EGLSTREAM
 | 
					 | 
				
			||||||
    Bool use_eglstreams = FALSE;
 | 
					    Bool use_eglstreams = FALSE;
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xwl_screen = calloc(1, sizeof *xwl_screen);
 | 
					    xwl_screen = calloc(1, sizeof *xwl_screen);
 | 
				
			||||||
    if (xwl_screen == NULL)
 | 
					    if (xwl_screen == NULL)
 | 
				
			||||||
| 
						 | 
					@ -998,12 +996,12 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
 | 
				
			||||||
#ifdef XWL_HAS_EGLSTREAM
 | 
					#ifdef XWL_HAS_EGLSTREAM
 | 
				
			||||||
        if (use_eglstreams) {
 | 
					        if (use_eglstreams) {
 | 
				
			||||||
            if (!xwl_glamor_init_eglstream(xwl_screen)) {
 | 
					            if (!xwl_glamor_init_eglstream(xwl_screen)) {
 | 
				
			||||||
                ErrorF("xwayland glamor: failed to setup eglstream backend, falling back to swaccel\n");
 | 
					                ErrorF("xwayland glamor: failed to setup EGLStream backend\n");
 | 
				
			||||||
                xwl_screen->glamor = 0;
 | 
					                use_eglstreams = FALSE;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        } else
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        if (!xwl_glamor_init_gbm(xwl_screen)) {
 | 
					        if (!use_eglstreams && !xwl_glamor_init_gbm(xwl_screen)) {
 | 
				
			||||||
            ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n");
 | 
					            ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n");
 | 
				
			||||||
            xwl_screen->glamor = 0;
 | 
					            xwl_screen->glamor = 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue