[Mesa-dev] Where do we put a Vulkan driver?

Jason Ekstrand jason at jlekstrand.net
Wed Feb 17 18:06:51 UTC 2016


On Wed, Feb 17, 2016 at 9:28 AM, Kristian Høgsberg <krh at bitplanet.net>
wrote:

> On Tue, Feb 16, 2016 at 11:36 PM, Jose Fonseca <jfonseca at vmware.com>
> wrote:
> > On 16/02/16 22:19, Brian Paul wrote:
> >>
> >> On 02/16/2016 02:41 PM, Dave Airlie wrote:
> >>>
> >>> On 17 February 2016 at 04:39, Jason Ekstrand <jason at jlekstrand.net>
> >>> wrote:
> >>>>
> >>>> So, we just pushed a branch containing a Vulkan driver.  Naturally, we
> >>>> would like to incorporate that driver into the upstream mesa tree.
> >>>> While
> >>>> we work on upstreaming the prerequisites in NIR and the i965 back-end
> >>>> compiler, there is a question that needs answering:  Where do we put
> it?
> >>>>
> >>>> The Vulkan driver challenges the tree-like nature of the way mesa is
> >>>> currently organized.  We now have two drivers that share a lot of the
> >>>> same
> >>>> underlying hardware-specific code (compiler and ISL) but target
> >>>> different
> >>>> APIs and no gallium-like middle layer to hide behind.  Obviously, we
> >>>> don't
> >>>> want to put a Vulkan driver in src/mesa/drivers/dri/i965.  If we
> start a
> >>>> src/vulkan directory, we don't really want to put the shared parts
> into
> >>>> src/vulkan/intel.  Where should we put the Intel-specific but
> >>>> API-agnostic
> >>>> bits?  In particular, we need a place to put ISL and the back-end
> >>>> compiler.
> >>>> We don't want to deal with the headaches of making a public API and
> >>>> keeping
> >>>> it stable, so they need to live somewhere in the mesa tree.
> >>>>
> >>>> In my personal opinion, the best thing to do is probably to add a
> >>>> src/intel
> >>>> folder with subfolders for vulkan, isl, and the back-end compiler.
> The
> >>>> src/mesa/drivers/dri/i965 folder would then basically be just the GL
> >>>> bits
> >>>> of the driver.  It does seem a little odd to have "intel" as a
> top-level
> >>>> source folder, but I can't come up with anything better.
> >>>>
> >>>> Thoughts?  Opinions?  Favorite colors?
> >>>
> >>>
> >>> I don't think we'll get this right the first time, and when we
> >>> randomly decide to
> >>> change it we can just make poor Emil handle the fallout. :-P
> >>>
> >>> Anyways,
> >>>
> >>> src/intel works for me, also src/shed/intel, src/shared/intel,
> >>> src/drivers/intel
> >>
> >>
> >> I like src/shared/intel/ FWIW.
> >>
> >> -Brian
> >
> >
> > Me too FWIW.  We could also consider putting all non-GL/Gallium/Vulkan
> > specific stuff in src/shared too, like src/util, nir, etc.
>
> We do have a few pieces that are intel-specific that we'd want to
> share with the GL driver, so I don't feel that src/shared is
> necessarily the best place. I'd prefer something like
> src/intel/isl, src/intel/compiler, src/intel/genxml and
> src/intel/vulkan. You could say that we should put out intel compiler
> backend in src/compiler/intel and perhaps the vulkan API in
> src/vulkan/intel, but the other pieces are intel specific helper
> libraries that don't really fit under any other umbrella.
>

Also, given the complete lack of other Vulkan drivers, splitting the pieces
into src/vulkan/intel and src/compiler/intel and src/shared/isl would
create two folders (src/shared and src/vulkan) that each have only contain
intel-specific subdirectory.  We can, of course, make that split if it
seems useful, but at present it seems like src/intel would be simpler.
--Jason


>
> Kristian
>
> > But like Dave said, we can always tweak these things later.
> >
> > Congrats on getting 0-day Vulkan support BTW!
> >
> > Jose
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160217/6ffbeda5/attachment.html>


More information about the mesa-dev mailing list