[Mesa-dev] Meson's default build type

Michel Dänzer michel at daenzer.net
Thu Nov 2 16:51:16 UTC 2017


On 02/11/17 05:46 PM, Chad Versace wrote:
> On Wed 01 Nov 2017, Dylan Baker wrote:
>> Quoting Ilia Mirkin (2017-11-01 16:05:17)
>>> On Wed, Nov 1, 2017 at 7:03 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
>>>> Quoting Ilia Mirkin (2017-11-01 15:52:56)
>>>>> On Wed, Nov 1, 2017 at 6:49 PM, Chad Versace <chadversary at chromium.org> wrote:
>>>>>> On Wed 01 Nov 2017, Dylan Baker wrote:
>>>>>>> Quoting Chad Versace (2017-11-01 14:43:28)
>>>>>>>> Wow. 10 seconds from a clean checkout to an installed Vulkan driver.
>>>>>>
>>>>>>> Glad that it's working out for you guys!
>>>>>>>
>>>>>>> Can I convince you to wire the anvil and i965 android/arc++ bits? ;)
>>>>>>>
>>>>>>> JFYI, the meson build will (I consider it a bug if it doesn't) turn off all
>>>>>>> glapi, egl, and glx if there are no dri or gallium drivers built unless you
>>>>>>> force them on.
>>>>>>
>>>>>> Thanks for turning that stuff off. Last time I tried to build just
>>>>>> Vulkan without GL (maybe 1.5 years ago), Autotools didn't allow it. It
>>>>>> insisted that i965 was a build dependency for anvil.
>>>>>>
>>>>>>> It also avoids building the glsl compiler unless there's a driver
>>>>>>> that uses it.
>>>>>>
>>>>>> I expected the buildtime to be much longer because I expected it to
>>>>>> build the GLSL compiler too. I was surprised and happy to discover that
>>>>>> it builds only the SPIR-V compiler.
>>>>>>
>>>>>>> And it defaults to debug, which might be surprising, but people
>>>>>>> around here thought that default debug is a feature.
>>>>>>
>>>>>> Huh... For infrastructure projects like Mesa (as opposed to test
>>>>>> projects like Piglit), I expect the default build to be the release
>>>>>> build. But I can understand why others would want default=debug.
>>>>>
>>>>> autotools defaults to debug disabled. I think that's how almost every
>>>>> project does it... debug enabled is definitely a surprise.
>>>>>
>>>>>   -ilia
>>>>
>>>> Well, for distros they likely want to set the buildtype to plain (meson adds no
>>>> compiler flags except ones the project defines), and then add their default
>>>> flags via CFLAGS and CXXFLAGS. That is certainly *not* what anyone except a
>>>> distro (or some kind of build infrastructure like jenkins or gentoo) would want.
>>>> Xorg's default is debugoptimzed, for reference.
>>>
>>> --enable-debug enables -DDEBUG in mesa. Are you saying that this is
>>> the default? Or are you just saying that you're not adding extra
>>> -O100073 options?
>>
>> The meson build keys -DDEBUG on the builtype, debug or debugoptimized you get
>> -DDEBUG, anything else, you don't. The way mesa is setup if you don't have
>> -DNDEBUG you have to have -DDEBUG or asserts happen for member of structures
>> that don't exist.
>>
>> I'm not dead set on debug as the default buildtype, it's what we have ATM
>> though. I asked around here and the feeling was that builtype debug by default
>> was a feature. If the larger community disagrees we can change it.
> 
> When making this decision, I think we should also consider the needs of
> non-developers who build and install Mesa from source to get the latest
> version or bugfix. I strongly suspect those people want
> buildtype=debugoptimized or buildtype=release.

FWIW, my vote is for debugoptimized: Assertions are enabled and there's
debugging information useful for bug reports, but performance should be
decent.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list