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

Jose Fonseca jfonseca at vmware.com
Wed Feb 17 07:36:09 UTC 2016


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.

But like Dave said, we can always tweak these things later.

Congrats on getting 0-day Vulkan support BTW!

Jose


More information about the mesa-dev mailing list