[Mesa-dev] Let's talk about -DDEBUG

Dylan Baker dylan at pnwbakers.com
Thu Dec 13 00:13:44 UTC 2018


Quoting Rob Clark (2018-12-12 15:52:47)
> On Wed, Dec 12, 2018 at 6:25 PM Dylan Baker <dylan at pnwbakers.com> wrote:
> >
> > In the autotools discussion I've come to realize that we also need to talk about
> > the -DDEBUG guard. It seems that there are two different uses, and thus two
> > different asks about it:
> >
> > - Nine (and RadeonSI?) use -DDEBUG to hide generic debugging
> > - NIR and Intel (at least) use -DDEBUG to hide really expensive checks that are
> >   useful, but necessarily tank performance.
> >
> > The first group would like -DDEBUG in debugoptimized builds, the second
> > obviously doesn't.
> >
> > Is the right solution to move the first group being !NDEBUG, or would it be
> > better to split DEBUG into two different defines such as DEBUG_MESSAGES and
> > EXPENSIVE_VALIDATION (paint the bikeshed whatever color you like), with the
> > first for both debug and debugoptimized and the second only in debug builds?
> 
> I guess my use cases for !=release builds are:
> 
> + I want all the expensive checking because I'm not in it to win the
>   deqp/piglit fps race
> + I want debug syms for profiling and/or valgrind, but otherwise
>   want something close to a release build but with debug syms
> 
> 
> That said, I can get behind replacing DEBUG with !NDEBUG or
> EXPENSIVE_DEBUG or whatever permutation of that color folks prefer
> 
> 
> BR,
> -R

I guess I should have covered that:

autotools had effectively two build types "debug" and "not debug", "debug" set
"-DDEBUG -g -O2", "not debug" set -DNDEBUG

Meson has 4 build types, and a separate toggle for NDEBUG:
debug: -O0 -DDEBUG (we add -DDEBUG)
debugoptimzed: -O2 -g
release: -O2
plain: (nothing)

Meson doesn't define NDEBUG by default, so if you want to turn off asserts you
need to add -Db_ndebug=true

autotools debug is roughly between meson's debugoptimized and debug, while
autotools non-debug corresponds to meson's plain buildtype.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181212/d222c87c/attachment.sig>


More information about the mesa-dev mailing list