On Wed, Apr 27, 2022 at 03:14:50PM +1000, Jonathan Gray wrote:
> On Wed, Apr 27, 2022 at 12:53:37PM +1000, Jonathan Gray wrote:
> > On Tue, Apr 26, 2022 at 12:51:10PM +0100, james palmer wrote:
> > > That fixes things, thanks :)
> > > 
> > > Maybe the default should be to not use glamour if hardware cannot be 
> > > scanned. Then again, not many people will be using hardware this old so 
> > > it might not be worth it.
> > > 
> > > - James
> > 
> > When pci can not be scanned the wscons display type is used to
> > decide if modesetting is used.
> > 
> > Using startx on x40 (i855 with gen 2 graphics) modesetting does not use
> > glamor due to the advertised opengl version.
> > 
> > [   340.854] (II) modeset(0): glamor: Ignoring GL < 2.1, falling back to 
> > GLES.
> > [   340.855] (EE) modeset(0): glamor: Failed to create GL or GLES2 contexts
> > [   340.985] (II) modeset(0): glamor initialization failed
> > 
> > This check in xenocara/xserver/glamor/glamor_egl.c glamor_egl_init()
> > could be changed to include intel gen 3 hardware.
> > 
> > intel should be the preferred driver for this hardware.  I'll see if I
> > can come up with a patch to get the pci vid/pid out of a drm device.
> 
> The diff below does that but startx will still result in the modesetting
> driver being used.  I suspect that is due to libpciaccess use in
> xf86-video-intel.

The problem on intel gen 3 is that it falls back to GLES.
The max OpenGL compat profile for gen 3 is 1.4

With this diff startx works with modesetting and the llvmpipe
Mesa driver is used on
inteldrm0: apic 1 int 16, I945GM, gen 3

Index: xserver/glamor/glamor_egl.c
===================================================================
RCS file: /cvs/xenocara/xserver/glamor/glamor_egl.c,v
retrieving revision 1.11
diff -u -p -r1.11 glamor_egl.c
--- xserver/glamor/glamor_egl.c 11 Nov 2021 09:03:03 -0000      1.11
+++ xserver/glamor/glamor_egl.c 27 Apr 2022 08:17:15 -0000
@@ -1016,9 +1016,10 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd
 
         if (epoxy_gl_version() < 21) {
             xf86DrvMsg(scrn->scrnIndex, X_INFO,
-                       "glamor: Ignoring GL < 2.1, falling back to GLES.\n");
+                       "glamor: Ignoring GL < 2.1\n");
             eglDestroyContext(glamor_egl->display, glamor_egl->context);
             glamor_egl->context = EGL_NO_CONTEXT;
+            goto error;
         }
     }
 

Reply via email to