Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
On Thursday, 2017-10-19 16:27:02 +, Eric Engestrom wrote: > On Thursday, 2017-10-19 14:34:28 +, Daniel Stone wrote: > > Hi Dylan, > > > > On 19 October 2017 at 01:55, Dylan Bakerwrote: > > > This is based heavily on Daniel Stone's work for the same, rebased on > > > master and with a number of TODO's fixed. > > > > > > This does not implement glvnd (which is coming in a later patch) > > > > > > Meson builds egl slightly differently than autotools, namely it doesn't > > > build an intermediate shared library. It doesn't do this because meson > > > doesn't have problems with the name of the library being dynamically > > > generated, so the glvnd and non-glvnd code can follow the same path. > > > > Thanks a million for picking this up, and fixing all the egregious > > bugs / gaps / variable name inconsistency! Is this available in a > > fully-baked git branch somewhere? > > cf. cover letter: > https://github.com/dcbaker/mesa submit/meson-egl > > I'm having trouble testing it though, didn't have enough time to debug > tonight but eglInit() is failing New day, fresh brain cells. I needed to `ninja install`, using the libs directly from the build dir didn't work. Series is: Tested-by: Eric Engestrom > > > > > > +linux_dmabuf_unstable_v1_protocol_c = custom_target( > > > + 'linux-dmabuf-unstable-v1-protocol.c', > > > + input : wayland_dmabuf_xml, > > > + output : 'linux-dmabuf-unstable-v1-protocol.c', > > > + command : [prog_wl_scanner, 'code', '@INPUT@', '@OUTPUT@'], > > > +) > > > + > > > +linux_dmabuf_unstable_v1_client_protocol_h = custom_target( > > > + 'linux-dmabuf-unstable-v1-client-protocol.h', > > > + input : wayland_dmabuf_xml, > > > + output : 'linux-dmabuf-unstable-v1-client-protocol.h', > > > + command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], > > > +) > > > > Could you please move these into src/egl/wayland/wayland-drm? They're > > not actually wl_drm of course, but I have patches out to use > > linux-dmabuf inside Vulkan as well, so having wl_drm and > > zwp_linux_dmabuf in the same place where it's just built once seems > > like an idea. Then it'd be trivial to hoist that out of src/egl/ > > later. > > > > > +libwayland_egl = shared_library( > > > + 'wayland-egl', > > > + 'wayland-egl.c', > > > + c_args : [c_vis_args], > > > + link_args : ld_args_gc_sections, > > > + version : '1.0.0', > > > + install : true, > > > ) > > > > As a drive-by musing, is there a reason c_vis_args isn't part of the > > global arguments? I realised after the fact that I'd left it out of > > quite a few places in my branch. > > > > Other than that, it looks good to me, so: > > Reviewed-by: Daniel Stone > > > > Cheers, > > Daniel ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
Hi Dylan, On 19 October 2017 at 19:14, Dylan Bakerwrote: > Quoting Daniel Stone (2017-10-19 07:34:28) >> Could you please move these into src/egl/wayland/wayland-drm? They're >> not actually wl_drm of course, but I have patches out to use >> linux-dmabuf inside Vulkan as well, so having wl_drm and >> zwp_linux_dmabuf in the same place where it's just built once seems >> like an idea. Then it'd be trivial to hoist that out of src/egl/ >> later. > > Jason and I talked about this, and he thought that the better thing to do > would > be to make a src/wsi folder that could have things like src/wsi/wayland, > src/wsi/x11, etc. and we could move it in there. I like that idea too, would > that be okay as follow up work? Yeah, sure. src/loader/ already has some shared bits for X11/DRI3, but it's not really related to loading. I'd be happy to see the Wayland bits move to either there or a new src/wsi/. Cheers, Daniel ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
Quoting Daniel Stone (2017-10-19 07:34:28) > Hi Dylan, > > On 19 October 2017 at 01:55, Dylan Bakerwrote: > > This is based heavily on Daniel Stone's work for the same, rebased on > > master and with a number of TODO's fixed. > > > > This does not implement glvnd (which is coming in a later patch) > > > > Meson builds egl slightly differently than autotools, namely it doesn't > > build an intermediate shared library. It doesn't do this because meson > > doesn't have problems with the name of the library being dynamically > > generated, so the glvnd and non-glvnd code can follow the same path. > > Thanks a million for picking this up, and fixing all the egregious > bugs / gaps / variable name inconsistency! Is this available in a > fully-baked git branch somewhere? https://github.com/dcbaker/mesa submit/meson-egl > > > +linux_dmabuf_unstable_v1_protocol_c = custom_target( > > + 'linux-dmabuf-unstable-v1-protocol.c', > > + input : wayland_dmabuf_xml, > > + output : 'linux-dmabuf-unstable-v1-protocol.c', > > + command : [prog_wl_scanner, 'code', '@INPUT@', '@OUTPUT@'], > > +) > > + > > +linux_dmabuf_unstable_v1_client_protocol_h = custom_target( > > + 'linux-dmabuf-unstable-v1-client-protocol.h', > > + input : wayland_dmabuf_xml, > > + output : 'linux-dmabuf-unstable-v1-client-protocol.h', > > + command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], > > +) > > Could you please move these into src/egl/wayland/wayland-drm? They're > not actually wl_drm of course, but I have patches out to use > linux-dmabuf inside Vulkan as well, so having wl_drm and > zwp_linux_dmabuf in the same place where it's just built once seems > like an idea. Then it'd be trivial to hoist that out of src/egl/ > later. Jason and I talked about this, and he thought that the better thing to do would be to make a src/wsi folder that could have things like src/wsi/wayland, src/wsi/x11, etc. and we could move it in there. I like that idea too, would that be okay as follow up work? > > > +libwayland_egl = shared_library( > > + 'wayland-egl', > > + 'wayland-egl.c', > > + c_args : [c_vis_args], > > + link_args : ld_args_gc_sections, > > + version : '1.0.0', > > + install : true, > > ) > > As a drive-by musing, is there a reason c_vis_args isn't part of the > global arguments? I realised after the fact that I'd left it out of > quite a few places in my branch. There are actually some targets that don't have visibility flags set for them. Maybe those are just oversights? > > Other than that, it looks good to me, so: > Reviewed-by: Daniel Stone > > Cheers, > Daniel signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
On Thursday, 2017-10-19 05:10:29 +, Dylan Baker wrote: > Quoting Eric Engestrom (2017-10-18 17:25:05) > > On Wednesday, 2017-10-18 23:56:00 +, Dylan Baker wrote: > > > This is based heavily on Daniel Stone's work for the same, rebased on > > > master and with a number of TODO's fixed. > > > > > > This does not implement glvnd (which is coming in a later patch) > > > > > > Meson builds egl slightly differently than autotools, namely it doesn't > > > build an intermediate shared library. It doesn't do this because meson > > > doesn't have problems with the name of the library being dynamically > > > generated, so the glvnd and non-glvnd code can follow the same path. > > > > > > Signed-off-by: Dylan Baker> > > --- > > > include/meson.build| 8 ++ > > > meson.build| 81 ++-- > > > meson_options.txt | 9 +- > > > src/egl/meson.build| 144 > > > + > > > src/egl/wayland/wayland-drm/meson.build| 14 ++ > > > .../{wayland-drm => wayland-egl}/meson.build | 29 +++-- > > > src/gbm/meson.build| 12 +- > > > src/glx/meson.build| 22 > > > src/meson.build| 7 +- > > > 9 files changed, 281 insertions(+), 45 deletions(-) > > > create mode 100644 src/egl/meson.build > > > copy src/egl/wayland/{wayland-drm => wayland-egl}/meson.build (66%) > > > > > > diff --git a/include/meson.build b/include/meson.build > > > index e33a8569d76..88e66a1a8f4 100644 > > > --- a/include/meson.build > > > +++ b/include/meson.build > > > @@ -58,3 +58,11 @@ endif > > > if with_osmesa > > >install_headers('GL/osmesa.h', subdir : 'GL') > > > endif > > > + > > > +if with_egl > > > + install_headers( > > > +'EGL/eglext.h', 'EGL/egl.h', 'EGL/eglextchromium.h', > > > 'EGL/eglmesaext.h', > > > +'EGL/eglplatform.h', > > > +subdir : 'EGL', > > > + ) > > > +endif > > > diff --git a/meson.build b/meson.build > > > index 13d9e400ba7..9eef48340d7 100644 > > > --- a/meson.build > > > +++ b/meson.build > > > @@ -130,16 +130,20 @@ endif > > > # TODO: other OSes > > > with_dri_platform = 'drm' > > > > > > -# TODO: there are more platforms required for non-vulkan drivers > > > +# TODO: android platform > > > with_platform_wayland = false > > > with_platform_x11 = false > > > with_platform_drm = false > > > +with_platform_surfaceless = false > > > +egl_native_platform = '' > > > _platforms = get_option('platforms') > > > if _platforms != '' > > >_split = _platforms.split(',') > > >with_platform_x11 = _split.contains('x11') > > >with_platform_wayland = _split.contains('wayland') > > >with_platform_drm = _split.contains('drm') > > > + with_platform_surfaceless = _split.contains('surfaceless') > > > + egl_native_platform = _split[0] > > > endif > > > > I quite liked daniels' `foreach if/elif/else` structure, it had the > > added advantage of being able to reject invalid platforms instead of > > silently ignoring them. > > Well, I keep hoping that this will land and we can switch to it: > https://github.com/mesonbuild/meson/pull/2390 That looks great! Let's hope it gets merged :) > And this approach requires no changes if/when that happens, but I guess I > don't > have a problem with the loop either. > > > > > > > > > with_gbm = get_option('gbm') > > > @@ -154,6 +158,27 @@ else > > >with_gbm = false > > > endif > > > > > > +with_egl = get_option('egl') > > > +if with_egl == 'auto' > > > + with_egl = with_dri and with_shared_glapi and egl_native_platform != '' > > > > I don't like the var name reuse, once as a string, then as a bool. > > How about `_egl = get_option('egl')`, as with `_platforms` above? > > > > I'll have another look tomorrow, but I think other than that this patch > > is good (not giving my r-b just yet though). > > I can change that. > > > > > > +elif with_egl == 'yes' > > > + if not with_dri > > > +error('EGL requires dri') > > > + elif not with_shared_glapi > > > +error('EGL requires shared-glapi') > > > + elif egl_native_platform == '' > > > +error('No platforms specified, consider -Dplatforms=drm,x11 at > > > least') > > > + endif > > > + with_egl = true > > > +else > > > + with_egl = false > > > +endif > > > + > > > +# TODO: or virgl > > > +if with_egl and with_gallium_radeonsi and not (with_platform_drm or > > > with_platform_surfaceless) > > > + error('RadeonSI requires drm or surfaceless platform when using EGL') > > > +endif > > > + > > > pre_args += '-DGLX_USE_TLS' > > > with_glx = get_option('glx') > > > if with_glx != 'disabled' > > > @@ -228,7 +253,7 @@ if with_any_vk and (with_platform_x11 and not > > > with_dri3) > > >error('Vulkan drivers require dri3 for X11 support') > > > endif > > > if
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
On Thursday, 2017-10-19 14:34:28 +, Daniel Stone wrote: > Hi Dylan, > > On 19 October 2017 at 01:55, Dylan Bakerwrote: > > This is based heavily on Daniel Stone's work for the same, rebased on > > master and with a number of TODO's fixed. > > > > This does not implement glvnd (which is coming in a later patch) > > > > Meson builds egl slightly differently than autotools, namely it doesn't > > build an intermediate shared library. It doesn't do this because meson > > doesn't have problems with the name of the library being dynamically > > generated, so the glvnd and non-glvnd code can follow the same path. > > Thanks a million for picking this up, and fixing all the egregious > bugs / gaps / variable name inconsistency! Is this available in a > fully-baked git branch somewhere? cf. cover letter: https://github.com/dcbaker/mesa submit/meson-egl I'm having trouble testing it though, didn't have enough time to debug tonight but eglInit() is failing > > > +linux_dmabuf_unstable_v1_protocol_c = custom_target( > > + 'linux-dmabuf-unstable-v1-protocol.c', > > + input : wayland_dmabuf_xml, > > + output : 'linux-dmabuf-unstable-v1-protocol.c', > > + command : [prog_wl_scanner, 'code', '@INPUT@', '@OUTPUT@'], > > +) > > + > > +linux_dmabuf_unstable_v1_client_protocol_h = custom_target( > > + 'linux-dmabuf-unstable-v1-client-protocol.h', > > + input : wayland_dmabuf_xml, > > + output : 'linux-dmabuf-unstable-v1-client-protocol.h', > > + command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], > > +) > > Could you please move these into src/egl/wayland/wayland-drm? They're > not actually wl_drm of course, but I have patches out to use > linux-dmabuf inside Vulkan as well, so having wl_drm and > zwp_linux_dmabuf in the same place where it's just built once seems > like an idea. Then it'd be trivial to hoist that out of src/egl/ > later. > > > +libwayland_egl = shared_library( > > + 'wayland-egl', > > + 'wayland-egl.c', > > + c_args : [c_vis_args], > > + link_args : ld_args_gc_sections, > > + version : '1.0.0', > > + install : true, > > ) > > As a drive-by musing, is there a reason c_vis_args isn't part of the > global arguments? I realised after the fact that I'd left it out of > quite a few places in my branch. > > Other than that, it looks good to me, so: > Reviewed-by: Daniel Stone > > Cheers, > Daniel ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
Hi Dylan, On 19 October 2017 at 01:55, Dylan Bakerwrote: > This is based heavily on Daniel Stone's work for the same, rebased on > master and with a number of TODO's fixed. > > This does not implement glvnd (which is coming in a later patch) > > Meson builds egl slightly differently than autotools, namely it doesn't > build an intermediate shared library. It doesn't do this because meson > doesn't have problems with the name of the library being dynamically > generated, so the glvnd and non-glvnd code can follow the same path. Thanks a million for picking this up, and fixing all the egregious bugs / gaps / variable name inconsistency! Is this available in a fully-baked git branch somewhere? > +linux_dmabuf_unstable_v1_protocol_c = custom_target( > + 'linux-dmabuf-unstable-v1-protocol.c', > + input : wayland_dmabuf_xml, > + output : 'linux-dmabuf-unstable-v1-protocol.c', > + command : [prog_wl_scanner, 'code', '@INPUT@', '@OUTPUT@'], > +) > + > +linux_dmabuf_unstable_v1_client_protocol_h = custom_target( > + 'linux-dmabuf-unstable-v1-client-protocol.h', > + input : wayland_dmabuf_xml, > + output : 'linux-dmabuf-unstable-v1-client-protocol.h', > + command : [prog_wl_scanner, 'client-header', '@INPUT@', '@OUTPUT@'], > +) Could you please move these into src/egl/wayland/wayland-drm? They're not actually wl_drm of course, but I have patches out to use linux-dmabuf inside Vulkan as well, so having wl_drm and zwp_linux_dmabuf in the same place where it's just built once seems like an idea. Then it'd be trivial to hoist that out of src/egl/ later. > +libwayland_egl = shared_library( > + 'wayland-egl', > + 'wayland-egl.c', > + c_args : [c_vis_args], > + link_args : ld_args_gc_sections, > + version : '1.0.0', > + install : true, > ) As a drive-by musing, is there a reason c_vis_args isn't part of the global arguments? I realised after the fact that I'd left it out of quite a few places in my branch. Other than that, it looks good to me, so: Reviewed-by: Daniel Stone Cheers, Daniel ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
Quoting Eric Engestrom (2017-10-18 17:25:05) > On Wednesday, 2017-10-18 23:56:00 +, Dylan Baker wrote: > > This is based heavily on Daniel Stone's work for the same, rebased on > > master and with a number of TODO's fixed. > > > > This does not implement glvnd (which is coming in a later patch) > > > > Meson builds egl slightly differently than autotools, namely it doesn't > > build an intermediate shared library. It doesn't do this because meson > > doesn't have problems with the name of the library being dynamically > > generated, so the glvnd and non-glvnd code can follow the same path. > > > > Signed-off-by: Dylan Baker> > --- > > include/meson.build| 8 ++ > > meson.build| 81 ++-- > > meson_options.txt | 9 +- > > src/egl/meson.build| 144 > > + > > src/egl/wayland/wayland-drm/meson.build| 14 ++ > > .../{wayland-drm => wayland-egl}/meson.build | 29 +++-- > > src/gbm/meson.build| 12 +- > > src/glx/meson.build| 22 > > src/meson.build| 7 +- > > 9 files changed, 281 insertions(+), 45 deletions(-) > > create mode 100644 src/egl/meson.build > > copy src/egl/wayland/{wayland-drm => wayland-egl}/meson.build (66%) > > > > diff --git a/include/meson.build b/include/meson.build > > index e33a8569d76..88e66a1a8f4 100644 > > --- a/include/meson.build > > +++ b/include/meson.build > > @@ -58,3 +58,11 @@ endif > > if with_osmesa > >install_headers('GL/osmesa.h', subdir : 'GL') > > endif > > + > > +if with_egl > > + install_headers( > > +'EGL/eglext.h', 'EGL/egl.h', 'EGL/eglextchromium.h', > > 'EGL/eglmesaext.h', > > +'EGL/eglplatform.h', > > +subdir : 'EGL', > > + ) > > +endif > > diff --git a/meson.build b/meson.build > > index 13d9e400ba7..9eef48340d7 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -130,16 +130,20 @@ endif > > # TODO: other OSes > > with_dri_platform = 'drm' > > > > -# TODO: there are more platforms required for non-vulkan drivers > > +# TODO: android platform > > with_platform_wayland = false > > with_platform_x11 = false > > with_platform_drm = false > > +with_platform_surfaceless = false > > +egl_native_platform = '' > > _platforms = get_option('platforms') > > if _platforms != '' > >_split = _platforms.split(',') > >with_platform_x11 = _split.contains('x11') > >with_platform_wayland = _split.contains('wayland') > >with_platform_drm = _split.contains('drm') > > + with_platform_surfaceless = _split.contains('surfaceless') > > + egl_native_platform = _split[0] > > endif > > I quite liked daniels' `foreach if/elif/else` structure, it had the > added advantage of being able to reject invalid platforms instead of > silently ignoring them. Well, I keep hoping that this will land and we can switch to it: https://github.com/mesonbuild/meson/pull/2390 And this approach requires no changes if/when that happens, but I guess I don't have a problem with the loop either. > > > > > with_gbm = get_option('gbm') > > @@ -154,6 +158,27 @@ else > >with_gbm = false > > endif > > > > +with_egl = get_option('egl') > > +if with_egl == 'auto' > > + with_egl = with_dri and with_shared_glapi and egl_native_platform != '' > > I don't like the var name reuse, once as a string, then as a bool. > How about `_egl = get_option('egl')`, as with `_platforms` above? > > I'll have another look tomorrow, but I think other than that this patch > is good (not giving my r-b just yet though). I can change that. > > > +elif with_egl == 'yes' > > + if not with_dri > > +error('EGL requires dri') > > + elif not with_shared_glapi > > +error('EGL requires shared-glapi') > > + elif egl_native_platform == '' > > +error('No platforms specified, consider -Dplatforms=drm,x11 at least') > > + endif > > + with_egl = true > > +else > > + with_egl = false > > +endif > > + > > +# TODO: or virgl > > +if with_egl and with_gallium_radeonsi and not (with_platform_drm or > > with_platform_surfaceless) > > + error('RadeonSI requires drm or surfaceless platform when using EGL') > > +endif > > + > > pre_args += '-DGLX_USE_TLS' > > with_glx = get_option('glx') > > if with_glx != 'disabled' > > @@ -228,7 +253,7 @@ if with_any_vk and (with_platform_x11 and not with_dri3) > >error('Vulkan drivers require dri3 for X11 support') > > endif > > if with_dri or with_gallium > > - if with_glx == 'disabled' # TODO: or egl > > + if with_glx == 'disabled' and not with_egl > > error('building dri or gallium drivers require at least one window > > system') > >endif > > endif > > @@ -250,6 +275,7 @@ if _drivers != '' > > with_gallium_omx or with_gallium_va) > > endif > > > >
Re: [Mesa-dev] [PATCH 3/4] meson: build libEGL
On Wednesday, 2017-10-18 23:56:00 +, Dylan Baker wrote: > This is based heavily on Daniel Stone's work for the same, rebased on > master and with a number of TODO's fixed. > > This does not implement glvnd (which is coming in a later patch) > > Meson builds egl slightly differently than autotools, namely it doesn't > build an intermediate shared library. It doesn't do this because meson > doesn't have problems with the name of the library being dynamically > generated, so the glvnd and non-glvnd code can follow the same path. > > Signed-off-by: Dylan Baker> --- > include/meson.build| 8 ++ > meson.build| 81 ++-- > meson_options.txt | 9 +- > src/egl/meson.build| 144 > + > src/egl/wayland/wayland-drm/meson.build| 14 ++ > .../{wayland-drm => wayland-egl}/meson.build | 29 +++-- > src/gbm/meson.build| 12 +- > src/glx/meson.build| 22 > src/meson.build| 7 +- > 9 files changed, 281 insertions(+), 45 deletions(-) > create mode 100644 src/egl/meson.build > copy src/egl/wayland/{wayland-drm => wayland-egl}/meson.build (66%) > > diff --git a/include/meson.build b/include/meson.build > index e33a8569d76..88e66a1a8f4 100644 > --- a/include/meson.build > +++ b/include/meson.build > @@ -58,3 +58,11 @@ endif > if with_osmesa >install_headers('GL/osmesa.h', subdir : 'GL') > endif > + > +if with_egl > + install_headers( > +'EGL/eglext.h', 'EGL/egl.h', 'EGL/eglextchromium.h', 'EGL/eglmesaext.h', > +'EGL/eglplatform.h', > +subdir : 'EGL', > + ) > +endif > diff --git a/meson.build b/meson.build > index 13d9e400ba7..9eef48340d7 100644 > --- a/meson.build > +++ b/meson.build > @@ -130,16 +130,20 @@ endif > # TODO: other OSes > with_dri_platform = 'drm' > > -# TODO: there are more platforms required for non-vulkan drivers > +# TODO: android platform > with_platform_wayland = false > with_platform_x11 = false > with_platform_drm = false > +with_platform_surfaceless = false > +egl_native_platform = '' > _platforms = get_option('platforms') > if _platforms != '' >_split = _platforms.split(',') >with_platform_x11 = _split.contains('x11') >with_platform_wayland = _split.contains('wayland') >with_platform_drm = _split.contains('drm') > + with_platform_surfaceless = _split.contains('surfaceless') > + egl_native_platform = _split[0] > endif I quite liked daniels' `foreach if/elif/else` structure, it had the added advantage of being able to reject invalid platforms instead of silently ignoring them. > > with_gbm = get_option('gbm') > @@ -154,6 +158,27 @@ else >with_gbm = false > endif > > +with_egl = get_option('egl') > +if with_egl == 'auto' > + with_egl = with_dri and with_shared_glapi and egl_native_platform != '' I don't like the var name reuse, once as a string, then as a bool. How about `_egl = get_option('egl')`, as with `_platforms` above? I'll have another look tomorrow, but I think other than that this patch is good (not giving my r-b just yet though). > +elif with_egl == 'yes' > + if not with_dri > +error('EGL requires dri') > + elif not with_shared_glapi > +error('EGL requires shared-glapi') > + elif egl_native_platform == '' > +error('No platforms specified, consider -Dplatforms=drm,x11 at least') > + endif > + with_egl = true > +else > + with_egl = false > +endif > + > +# TODO: or virgl > +if with_egl and with_gallium_radeonsi and not (with_platform_drm or > with_platform_surfaceless) > + error('RadeonSI requires drm or surfaceless platform when using EGL') > +endif > + > pre_args += '-DGLX_USE_TLS' > with_glx = get_option('glx') > if with_glx != 'disabled' > @@ -228,7 +253,7 @@ if with_any_vk and (with_platform_x11 and not with_dri3) >error('Vulkan drivers require dri3 for X11 support') > endif > if with_dri or with_gallium > - if with_glx == 'disabled' # TODO: or egl > + if with_glx == 'disabled' and not with_egl > error('building dri or gallium drivers require at least one window > system') >endif > endif > @@ -250,6 +275,7 @@ if _drivers != '' > with_gallium_omx or with_gallium_va) > endif > > +gl_pkgconfig_c_flags = [] > if with_platform_x11 >if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm') > pre_args += '-DHAVE_X11_PLATFORM' > @@ -269,6 +295,18 @@ if with_platform_x11 >pre_args += '-DGLX_USE_DRM' > endif >endif > +else > + pre_args += '-DMESA_EGL_NO_X11_HEADERS' > + gl_pkgconfig_c_flags += '-DMESA_EGL_NO_X11_HEADERS' > +endif > +if with_platform_drm > + if with_egl and not with_gbm > +error('EGL drm platform requires gbm') > + endif > + pre_args += '-DHAVE_DRM_PLATFORM' > +endif > +if