On Wed, Dec 12, 2018 at 6:45 PM Marek Olšák <mar...@gmail.com> wrote:
> On Wed, Dec 12, 2018 at 7:35 PM Rob Clark <robdcl...@gmail.com> wrote: > >> On Wed, Dec 12, 2018 at 7:14 PM Dylan Baker <dy...@pnwbakers.com> wrote: >> > >> > Quoting Rob Clark (2018-12-12 15:52:47) >> > > On Wed, Dec 12, 2018 at 6:25 PM Dylan Baker <dy...@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) >> >> I generally view meson as an upgrade in this respect, I guess mostly >> because I have no use for '-DDEBUG -g -O2' (ie. the -O0 equiv is fine >> by me).. maybe making meson debug config use -O2 would bridge the gap? >> If so I have no problem with dropping -O0 and making debug config >> also use -O2 >> > > Sounds good. > > Also I think we should make -Db_ndebug=true the default for release > builds. !NDEBUG enables a lot more debugging code than just assertions. > Agreed. In any driver using NIR, the assertions enabled by !NDEBUG are very expensive. --Jason
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev