[Mesa-dev] [PATCH 4/4] configure.ac: check for Glamor requirements only when needed

Marek Olšák maraeo at gmail.com
Mon Oct 24 17:21:07 UTC 2016


On Mon, Oct 24, 2016 at 11:33 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 19 October 2016 at 19:31, Marek Olšák <maraeo at gmail.com> wrote:
>> On Wed, Oct 19, 2016 at 2:40 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>> On 18 October 2016 at 23:00, Marek Olšák <maraeo at gmail.com> wrote:
>>>> From: Marek Olšák <marek.olsak at amd.com>
>>>>
>>>> ---
>>>>  configure.ac | 37 +++++++++++++++++++++++++++----------
>>>>  1 file changed, 27 insertions(+), 10 deletions(-)
>>>>
>>>> diff --git a/configure.ac b/configure.ac
>>>> index 12c8165..17dfafd 100644
>>>> --- a/configure.ac
>>>> +++ b/configure.ac
>>>> @@ -2296,35 +2296,52 @@ dnl Gallium helper functions
>>>>  dnl
>>>>  gallium_require_llvm() {
>>>>      if test "x$MESA_LLVM" = x0; then
>>>>          case "$host" in *gnux32) return;; esac
>>>>          case "$host_cpu" in
>>>>          i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
>>>>          esac
>>>>      fi
>>>>  }
>>>>
>>>> -dnl This is for Glamor. Skip this if OpenGL is disabled.
>>>> -require_egl_drm() {
>>>> +dnl If EGL/X11 or GLX is enabled, make sure they are usable.
>>>> +check_glamor_requirements() {
>>>
>>> With the previous patches you no longer need this, due to the following:
>>>  - The correct option is the default one
>>>  - If one is missing libgbm.so, libglamoregl.so will fail to load
>>> [with decent commit message]
>>>  - With recent fix from Chad, we won't advertise the
>>> EGL_MESA_platform_gbm extension when EGL is build w/o it.
>>>  - The interface between DRI loaders and drivers is stable. So one
>>> shouldn't need to rebuild EGL/gbm if they're only interested in the
>>> latest fixes in the radeonsi driver.
>>>
>>> Either way, if you really want this please use something like the following:
>>>
>>> if test x$enable_egl = xyes; then
>>>   case "$with_egl_platforms" in
>>>     *drm*)
>>>       ;;
>>>     *)
>>>       AC_MSG_ERROR([--with-egl-platforms=drm is required to build the
>>> $1 driver.])
>>>       ;;
>>>   esac
>>> fi
>>>
>>> One doesn't need any of the enable_opengl, enable_gbm or alike tests.
>>> Furthermore glamor relies on the gbm/drm EGL platform so the x11 check
>>> is superfluous.
>>
>> I think there is some misunderstanding.
>>
>> OpenGL X11/DRI acceleration is enabled by the build system:
>> - for GLX by setting $enable_glx = dri
>> - for EGL by setting $with_egl_platforms = *x11*
>>
>> The following code checks if OpenGL on X11/DRI is enabled:
>>
>>     if test "x$enable_opengl" = xno; then
>>         return 0
>>     fi
>>
>>     need_glamor=no
>>
>>     if test "x$enable_glx" = xdri; then # GLX
>>         need_glamor=yes
>>     fi
>>
>>     case "$with_egl_platforms" in # EGL
>>         *x11*)
>>             need_glamor=yes
>>             ;;
>>     esac
>>
>>
> IIRC glamor + glx isn't really an option.

That's not what it means. It's not about Glamor. If I rename
"need_glamor" to "need_opengl_in_X", will it make more sense? Glamor
is a requirement for OpenGL in X (GLX), so in order to support GLX, we
need Glamor, thus we need EGL/DRM. That's the dependency chain.

To make it clear:
- GLX depends on X acceleration.
- EGL/X11 also depends on X acceleration.
- X acceleration depends on Glamor.
- Glamor depends on EGL/DRM and GBM.

Thus, if you enable GLX or EGL/X11, you also need EGL/DRM and GBM.

Is it clear now?

Marek


More information about the mesa-dev mailing list