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

Jason Ekstrand jason at jlekstrand.net
Tue Feb 16 18:39:03 UTC 2016


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?
--Jason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160216/2801fff3/attachment.html>


More information about the mesa-dev mailing list