[Mesa-dev] create src/wsi

Emil Velikov emil.l.velikov at gmail.com
Mon Oct 23 16:42:03 UTC 2017


On 23 October 2017 at 17:05, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> On 23.10.2017 17:16, Emil Velikov wrote:
>>
>> On 23 October 2017 at 16:03, Jason Ekstrand <jason at jlekstrand.net> wrote:
>>>
>>> On Mon, Oct 23, 2017 at 6:27 AM, Nicolai Hähnle <nhaehnle at gmail.com>
>>> wrote:
>>>>
>>>>
>>>> On 21.10.2017 03:00, Dylan Baker wrote:
>>>>>
>>>>>
>>>>> This very short series creates a new src/wsi folder, and moves
>>>>> wayland-drm into
>>>>> it. Basically wsi stuff is scattered about, and is needed by multiple
>>>>> components
>>>>> within mesa, wayland-drm, for example, is used by EGL, GBM, and vulkan
>>>>> wayland-wsi.
>>>>>
>>>>> I think there's more that could be moved into wsi, we could move EGL,
>>>>> GBM, and
>>>>> GLX, and vulkan/wsi, for example.
>>>>
>>>>
>>>>
>>>> The general thrust sounds good to me.
>>>>
>>>> Is there a clean model for what should go into src/wsi and what
>>>> shouldn't?
>>>> Where's the boundary?
>>>>
>>>> For an example of the type of headaches, does DRI driver code (stuff
>>>> that
>>>> ends up in xxx_dri.so, for example) count as part of src/wsi? If so,
>>>> then
>>>> what about gallium/state_trackers/dri? What about
>>>> mesa/drivers/dri/common?
>>>
>>>
>>>
>>> Maybe?  I guess it depends on what it does and how much sense it makes to
>>> share it higher than the gallium level.
>>>
>>>>
>>>> I don't have a full picture of all this code so it's hard for me to say,
>>>> but I really hope your changes will lead to a clearer picture overall :)
>>>
>>>
>>>
>>> Dylan and I talked about it quite a bit off-line so I have a few
>>> opinions.
>>> :)  In particular, here's what I envison:
>>>
>>> src/wsi/gbm
>>> src/wsi/egl
>>> src/wsi/wayland-drm
>>> src/wsi/dri3 (currently src/loader)
>>> src/wsi/glx
>>> src/wsi/vulkan (currently src/vulkan/wsi)
>>> src/wsi/hgl
>>>
>> Idea is mostly ok, but there's a bit of a snafu:
>>
>> Things are not as clean cut/split as per above. Here are some of the
>> current inter-dependencies.
>>
>> src/loader - loader.c WSI agnostic DRI loader code.
>> src/loader - loader_dri3.c X11 DRI3 code.
>>
>> gbm - depends on loader.c, wayland-drm (I've sent patches to remove this),
>> egl
For the gbm <> wayland-drm bits
https://lists.freedesktop.org/archives/mesa-dev/2017-September/168952.html

Although Daniel has some concerns
https://lists.freedesktop.org/archives/mesa-dev/2017-October/173915.html

>> egl  - depends on loader.c loader_dri3.c wayland-drm, gbm (pokes one
>> of the AMD devs to attempt this)

The egl <> gbm bits
https://lists.freedesktop.org/archives/mesa-dev/2017-October/173088.html

>
>
> Which part / what do you mean?
>
> I'm perfectly fine with keeping the state_tracker/dri/ and dri/common bits
> where they are, I just wanted to get some clarification :)
>
Fwiw - if anyone can suggest a reasonable way to rework/fold/split I'm all ears.

Otherwise I fear that just moving things won't help much. Things are
quite interconnected.

-Emil


More information about the mesa-dev mailing list