mesa: Remove the ralloc canary on release builds.
authorEric Anholt <eric@anholt.net>
Fri, 22 Nov 2013 07:29:56 +0000 (23:29 -0800)
committerEric Anholt <eric@anholt.net>
Sat, 23 Nov 2013 00:36:27 +0000 (16:36 -0800)
The canary is basically just to give a better debugging message when you
ralloc_free() something that wasn't rallocated.  Reduces maximum memory
usage of apitrace replay of the dota2 demo by 60MB on my 64-bit system (so
half that on a real 32-bit dota2 environment).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/ralloc.c

index e79dad764bbc4fc9cb8f1afa3c7772a261fab1cd..36bc61fd07585c6db585a5d60797af3fb12a3beb 100644 (file)
@@ -53,8 +53,10 @@ _CRTIMP int _vscprintf(const char *format, va_list argptr);
 
 struct ralloc_header
 {
+#ifdef DEBUG
    /* A canary value used to determine whether a pointer is ralloc'd. */
    unsigned canary;
+#endif
 
    struct ralloc_header *parent;
 
@@ -78,7 +80,9 @@ get_header(const void *ptr)
 {
    ralloc_header *info = (ralloc_header *) (((char *) ptr) -
                                            sizeof(ralloc_header));
+#ifdef DEBUG
    assert(info->canary == CANARY);
+#endif
    return info;
 }
 
@@ -117,7 +121,9 @@ ralloc_size(const void *ctx, size_t size)
 
    add_child(parent, info);
 
+#ifdef DEBUG
    info->canary = CANARY;
+#endif
 
    return PTR_FROM_HEADER(info);
 }