[Mesa-dev] [PATCH 1/3] meson: Define NDEBUG for non-debug-builds

Rob Clark robdclark at gmail.com
Tue Jul 17 13:07:38 UTC 2018


On Tue, Jul 17, 2018 at 9:01 AM, Rob Clark <robdclark at gmail.com> wrote:
> On Mon, Apr 16, 2018 at 5:19 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
>> Quoting Jan Alexander Steffens (heftig) (2018-04-14 10:23:20)
>>> This is for parity with autotools. We were suddenly getting assertion
>>> failures after switching to meson, see [1].
>>>
>>> [1]: https://bugs.archlinux.org/task/58218
>>>
>>> Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
>>> ---
>>>  meson.build | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/meson.build b/meson.build
>>> index a4dfa62255..931e0389e6 100644
>>> --- a/meson.build
>>> +++ b/meson.build
>>> @@ -705,6 +705,8 @@ endif
>>>  # Define DEBUG for debug builds only (debugoptimized is not included on this one)
>>>  if get_option('buildtype') == 'debug'
>>>    pre_args += '-DDEBUG'
>>> +else
>>> +  pre_args += '-DNDEBUG'
>>>  endif
>>>
>>>  if get_option('shader-cache')
>>> --
>>> 2.16.2
>>
>> NAK.
>>
>> meson has -Db_ndebug for controlling NDEBUG, which is done separately from
>> optimization levels, this is in our documentation as well as the meson
>> documentation. For builds without asserts, set b_ndebug=true.
>>
>
> Is it possible to make b_ndebug default to true for release builds?
> That would be far less surprising..
>

just for context, debug_assert() (which can be used for expensive
checks), nir_validate_shader() (quite expensive), etc are all
controlled by NDEBUG.. so b_ndebug defaulting to false for release
builds basically looks like a big performance regression compared to
autotools builds.

BR,
-R


More information about the mesa-dev mailing list