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; } }