Moving code around, post classic

Dylan Baker dylan at
Mon Dec 6 23:43:29 UTC 2021

Classic is gone, and the cleanups have begun, obviously. There is
another cleanup that I had in mind, which is moving src/mesa into
src/gallium/frontends/mesa. This makes the build system a little
cleaner, as currently we do some bending over backwards to get gallium,
mesa, and their tests built in the right order. But that's a big ol `git
mv`, and when I proposed it Dave and Ilia suggested it would be best to
do all of the post-classic code motion at once. So, let's talk about
what we want to move, and where we want to move it.

Among the suggestions we had were:

1. Move src/mesa into src/gallium/frontends/mesa (I have patches for

   Seems like a pretty obvoius thing to do, given that all of the other
   gallium state trackers live there (OpenCL, video, d3d9, etc)

2. Move src/compiler/glsl into src/gallium/frontends/mesa as well

    Given that there are now no? drivers that use GLSL-IR directly, it
    might make sense to move the glsl compiler into the mesa
    state_tracker, and just have that lower to TGSI or NIR, and treat
    GLSL-IR as an implementation detail of the OpenGL frontend.

    Unfortunately, there are a lot of code outside of glsl that uses the
    linked list implementation in the glsl compiler, and not the on in

3. Move src/gallium* to src/

    This was suggested, though given the existance of Vulkan, it wasn't
    clear that this was a good idea or not

4. What to do about the src/loader, src/glx, src/egl, src/mapi,

    These are all part of OpenGL, but not really part of gallium, but if
    we don't move src/gallium/* to src/ does it make sense to leave them
    in the root?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <>

More information about the mesa-dev mailing list