Message ID | 20200306092504.30340-2-hm@hmbedded.co.uk |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] package/mesa3d: select vc4 and kmsro driver for gallium v3d | expand |
Hello Howard, On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 > selected, no dri drivers selected) results in working X11 except that > glxgears shows a blank window. This commit effectively results in the > following conf options being added: -Dglx-direct=true -Ddri3=true > > Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> > --- > package/mesa3d/Config.in | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > index 3950170533..59b8f60773 100644 > --- a/package/mesa3d/Config.in > +++ b/package/mesa3d/Config.in > @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 > select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > select BR2_PACKAGE_LIBDRM_VC4 > select BR2_PACKAGE_MESA3D_OPENGL_EGL > + select BR2_PACKAGE_MESA3D_DRI_DRIVER On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or only be selected by x11/glxgears)? Regards, Peter > help > Driver for Broadcom VC4 (rpi2/3) GPUs. > It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
Hello Peter, On 06/03/2020 14:38, Peter Seiderer wrote: > Hello Howard, > > On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > >> Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 >> selected, no dri drivers selected) results in working X11 except that >> glxgears shows a blank window. This commit effectively results in the >> following conf options being added: -Dglx-direct=true -Ddri3=true >> >> Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> >> --- >> package/mesa3d/Config.in | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in >> index 3950170533..59b8f60773 100644 >> --- a/package/mesa3d/Config.in >> +++ b/package/mesa3d/Config.in >> @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 >> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO >> select BR2_PACKAGE_LIBDRM_VC4 >> select BR2_PACKAGE_MESA3D_OPENGL_EGL >> + select BR2_PACKAGE_MESA3D_DRI_DRIVER > On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without > MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or > only be selected by x11/glxgears)? In fact the '-Ddri3=true' option is already dependent on X11 (in mesa3d.mk) so only '-Dglx-direct=true' would be left without X. Do you think that is likelyto break Qt/eglfs? Regards, Howard
Hello Howard, On Fri, 6 Mar 2020 17:22:28 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > Hello Peter, > > On 06/03/2020 14:38, Peter Seiderer wrote: > > Hello Howard, > > > > On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > > > >> Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 > >> selected, no dri drivers selected) results in working X11 except that > >> glxgears shows a blank window. This commit effectively results in the > >> following conf options being added: -Dglx-direct=true -Ddri3=true > >> > >> Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> > >> --- > >> package/mesa3d/Config.in | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > >> index 3950170533..59b8f60773 100644 > >> --- a/package/mesa3d/Config.in > >> +++ b/package/mesa3d/Config.in > >> @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 > >> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > >> select BR2_PACKAGE_LIBDRM_VC4 > >> select BR2_PACKAGE_MESA3D_OPENGL_EGL > >> + select BR2_PACKAGE_MESA3D_DRI_DRIVER > > On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without > > MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or > > only be selected by x11/glxgears)? > > In fact the '-Ddri3=true' option is already dependent on X11 (in mesa3d.mk) > so only '-Dglx-direct=true' would be left without X. Do you think that is > likelyto break Qt/eglfs? Its not so much about breaking the Qt/eglfs case, but about being minimal and not enabling un-needed/-wanted options... Your list of options above is not very precise when looking at package/mesa3d/mesa3d.mk (missing -Dshared-glapi=true -Ddri-drivers=, and -Ddri3=true/false dependent on BR2_PACKAGE_XLIB_LIBXSHMFENCE)... Regards, Peter > > Regards, > Howard > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hello Peter, On 06/03/2020 18:27, Peter Seiderer wrote: > Hello Howard, > > On Fri, 6 Mar 2020 17:22:28 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > >> Hello Peter, >> >> On 06/03/2020 14:38, Peter Seiderer wrote: >>> Hello Howard, >>> >>> On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: >>> >>>> Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 >>>> selected, no dri drivers selected) results in working X11 except that >>>> glxgears shows a blank window. This commit effectively results in the >>>> following conf options being added: -Dglx-direct=true -Ddri3=true >>>> >>>> Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> >>>> --- >>>> package/mesa3d/Config.in | 1 + >>>> 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in >>>> index 3950170533..59b8f60773 100644 >>>> --- a/package/mesa3d/Config.in >>>> +++ b/package/mesa3d/Config.in >>>> @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 >>>> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO >>>> select BR2_PACKAGE_LIBDRM_VC4 >>>> select BR2_PACKAGE_MESA3D_OPENGL_EGL >>>> + select BR2_PACKAGE_MESA3D_DRI_DRIVER >>> On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without >>> MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or >>> only be selected by x11/glxgears)? >> In fact the '-Ddri3=true' option is already dependent on X11 (in mesa3d.mk) >> so only '-Dglx-direct=true' would be left without X. Do you think that is >> likelyto break Qt/eglfs? > Its not so much about breaking the Qt/eglfs case, but about being minimal and > not enabling un-needed/-wanted options... > > Your list of options above is not very precise when looking > at package/mesa3d/mesa3d.mk (missing -Dshared-glapi=true -Ddri-drivers=, > and -Ddri3=true/false dependent on BR2_PACKAGE_XLIB_LIBXSHMFENCE)... The options I specified are the difference between before and after applying the patch. I used 'make printvars VARS=MESA3D_CONF_OPTS' to verify. Looking at mesa3d.mk, -Dshared_glapi=true is already included because BR2_PACKAGE_MESA3D_GALLIUM_DRIVER=y and is therefore repeated. -Ddri-drivers= is an empty list with or without the patch. So as I stated before only -Dglx-direct=true is additional if you're building without X11. When building with X11 then additionally -Ddri3 changes from false to true when the patch is applied. To see how much difference the -Dglx-direct=true option makes I built mesa3d without X11 both with and without the patch applied and compared the file sizes produced. Interestingly there was no difference at all, all output files were exactly the same size with or without the patch. I was a bit surprised by this so I retraced my steps to be absolutely sure. I suspect it is because -Dglx=disabled so -Dglx-direct=true has no effect. Regards, Howard
Hello Howard, On Mon, 9 Mar 2020 19:52:12 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > Hello Peter, > > On 06/03/2020 18:27, Peter Seiderer wrote: > > Hello Howard, > > > > On Fri, 6 Mar 2020 17:22:28 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > > > >> Hello Peter, > >> > >> On 06/03/2020 14:38, Peter Seiderer wrote: > >>> Hello Howard, > >>> > >>> On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell <hm@hmbedded.co.uk> wrote: > >>> > >>>> Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 > >>>> selected, no dri drivers selected) results in working X11 except that > >>>> glxgears shows a blank window. This commit effectively results in the > >>>> following conf options being added: -Dglx-direct=true -Ddri3=true > >>>> > >>>> Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> > >>>> --- > >>>> package/mesa3d/Config.in | 1 + > >>>> 1 file changed, 1 insertion(+) > >>>> > >>>> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > >>>> index 3950170533..59b8f60773 100644 > >>>> --- a/package/mesa3d/Config.in > >>>> +++ b/package/mesa3d/Config.in > >>>> @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 > >>>> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > >>>> select BR2_PACKAGE_LIBDRM_VC4 > >>>> select BR2_PACKAGE_MESA3D_OPENGL_EGL > >>>> + select BR2_PACKAGE_MESA3D_DRI_DRIVER > >>> On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without > >>> MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or > >>> only be selected by x11/glxgears)? > >> In fact the '-Ddri3=true' option is already dependent on X11 (in mesa3d.mk) > >> so only '-Dglx-direct=true' would be left without X. Do you think that is > >> likelyto break Qt/eglfs? > > Its not so much about breaking the Qt/eglfs case, but about being minimal and > > not enabling un-needed/-wanted options... > > > > Your list of options above is not very precise when looking > > at package/mesa3d/mesa3d.mk (missing -Dshared-glapi=true -Ddri-drivers=, > > and -Ddri3=true/false dependent on BR2_PACKAGE_XLIB_LIBXSHMFENCE)... > > The options I specified are the difference between before and after > applying the > patch. I used 'make printvars VARS=MESA3D_CONF_OPTS' to verify. Looking at > mesa3d.mk, -Dshared_glapi=true is already included because > BR2_PACKAGE_MESA3D_GALLIUM_DRIVER=y and is therefore repeated. > -Ddri-drivers= > is an empty list with or without the patch. So as I stated before only > -Dglx-direct=true is additional if you're building without X11. When > building > with X11 then additionally -Ddri3 changes from false to true when the > patch is > applied. But not dependent on X11 but dependent on BR2_PACKAGE_MESA3D_DRI_DRIVER=y/BR2_PACKAGE_XLIB_LIBXSHMFENCE=y? I still state that forcing BR2_PACKAGE_MESA3D_DRI_DRIVER=y to gain -Ddri=true (or toggle between true/false via random other dependencies) to satisfy glxgears needs feels like the wrong approach... Regards, Peter > > To see how much difference the -Dglx-direct=true option makes I built mesa3d > without X11 both with and without the patch applied and compared the > file sizes > produced. Interestingly there was no difference at all, all output files > were > exactly the same size with or without the patch. I was a bit surprised > by this > so I retraced my steps to be absolutely sure. I suspect it is because > -Dglx=disabled so -Dglx-direct=true has no effect. > > Regards, > Howard > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hello Peter, On 09/03/2020 20:46, Peter Seiderer wrote: > Hello Howard, > > On Mon, 9 Mar 2020 19:52:12 +0000, Howard Mitchell<hm@hmbedded.co.uk> wrote: > >> Hello Peter, >> >> On 06/03/2020 18:27, Peter Seiderer wrote: >>> Hello Howard, >>> >>> On Fri, 6 Mar 2020 17:22:28 +0000, Howard Mitchell<hm@hmbedded.co.uk> wrote: >>> >>>> Hello Peter, >>>> >>>> On 06/03/2020 14:38, Peter Seiderer wrote: >>>>> Hello Howard, >>>>> >>>>> On Fri, 6 Mar 2020 09:25:04 +0000, Howard Mitchell<hm@hmbedded.co.uk> wrote: >>>>> >>>>>> Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 >>>>>> selected, no dri drivers selected) results in working X11 except that >>>>>> glxgears shows a blank window. This commit effectively results in the >>>>>> following conf options being added: -Dglx-direct=true -Ddri3=true >>>>>> >>>>>> Signed-off-by: Howard Mitchell<hm@hmbedded.co.uk> >>>>>> --- >>>>>> package/mesa3d/Config.in | 1 + >>>>>> 1 file changed, 1 insertion(+) >>>>>> >>>>>> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in >>>>>> index 3950170533..59b8f60773 100644 >>>>>> --- a/package/mesa3d/Config.in >>>>>> +++ b/package/mesa3d/Config.in >>>>>> @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 >>>>>> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO >>>>>> select BR2_PACKAGE_LIBDRM_VC4 >>>>>> select BR2_PACKAGE_MESA3D_OPENGL_EGL >>>>>> + select BR2_PACKAGE_MESA3D_DRI_DRIVER >>>>> On rpi4 v3d/vc4 work definitely for the Qt/eglfs case without >>>>> MESA3D_DRI_DRIVER, so this should at minimum depend on X11 (or >>>>> only be selected by x11/glxgears)? >>>> In fact the '-Ddri3=true' option is already dependent on X11 (in mesa3d.mk) >>>> so only '-Dglx-direct=true' would be left without X. Do you think that is >>>> likelyto break Qt/eglfs? >>> Its not so much about breaking the Qt/eglfs case, but about being minimal and >>> not enabling un-needed/-wanted options... >>> >>> Your list of options above is not very precise when looking >>> at package/mesa3d/mesa3d.mk (missing -Dshared-glapi=true -Ddri-drivers=, >>> and -Ddri3=true/false dependent on BR2_PACKAGE_XLIB_LIBXSHMFENCE)... >> The options I specified are the difference between before and after >> applying the >> patch. I used 'make printvars VARS=MESA3D_CONF_OPTS' to verify. Looking at >> mesa3d.mk, -Dshared_glapi=true is already included because >> BR2_PACKAGE_MESA3D_GALLIUM_DRIVER=y and is therefore repeated. >> -Ddri-drivers= >> is an empty list with or without the patch. So as I stated before only >> -Dglx-direct=true is additional if you're building without X11. When >> building >> with X11 then additionally -Ddri3 changes from false to true when the >> patch is >> applied. > But not dependent on X11 but dependent on BR2_PACKAGE_MESA3D_DRI_DRIVER=y/BR2_PACKAGE_XLIB_LIBXSHMFENCE=y? > > I still state that forcing BR2_PACKAGE_MESA3D_DRI_DRIVER=y to gain -Ddri=true > (or toggle between true/false via random other dependencies) to satisfy glxgears needs > feels like the wrong approach... Maybe, but as I'm building for an OpenGL platform I'd expect glxgears to work correctly. The fact that it didn't suggested that mesa3d was incorrectly configured. Without my patch to get a 'minimal' build in which glxgears works you need to select one of the dri drivers. Any one will do. You then get, for example: -Dglx-direct=true -Ddri3=true -Ddri-drivers=swrast as additional/changed options. So all my patch effectively does is reduce -Ddri-drivers to an empty list.
On 06/03/2020 10:25, Howard Mitchell wrote: > Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 > selected, no dri drivers selected) results in working X11 except that > glxgears shows a blank window. This commit effectively results in the > following conf options being added: -Dglx-direct=true -Ddri3=true > > Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> Instead of this patch, I applied [1]. Based on Howard's observation, the key is in fact the -Dglx-direct=true. I did a bit of investigation and I concluded that we can always enable that if GLX is enabled. Bernd, Peter, could you shout if that doesn't work for you? Regards, Arnout [1] https://git.buildroot.org/buildroot/commit/?id=6a51177af14a2ddaa6431bb7fc618fe138b59b72 > --- > package/mesa3d/Config.in | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > index 3950170533..59b8f60773 100644 > --- a/package/mesa3d/Config.in > +++ b/package/mesa3d/Config.in > @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 > select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > select BR2_PACKAGE_LIBDRM_VC4 > select BR2_PACKAGE_MESA3D_OPENGL_EGL > + select BR2_PACKAGE_MESA3D_DRI_DRIVER > help > Driver for Broadcom VC4 (rpi2/3) GPUs. > It requires a vanilla 4.5+ kernel with drm vc4 (open) support. >
diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in index 3950170533..59b8f60773 100644 --- a/package/mesa3d/Config.in +++ b/package/mesa3d/Config.in @@ -274,6 +274,7 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO select BR2_PACKAGE_LIBDRM_VC4 select BR2_PACKAGE_MESA3D_OPENGL_EGL + select BR2_PACKAGE_MESA3D_DRI_DRIVER help Driver for Broadcom VC4 (rpi2/3) GPUs. It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
Currently a minimal build for rpi2/3/4 (i.e. only v3d and/or vc4 selected, no dri drivers selected) results in working X11 except that glxgears shows a blank window. This commit effectively results in the following conf options being added: -Dglx-direct=true -Ddri3=true Signed-off-by: Howard Mitchell <hm@hmbedded.co.uk> --- package/mesa3d/Config.in | 1 + 1 file changed, 1 insertion(+)