>> The size of the app (under FreeBSD, matrox G400, 16 bits) jumps from 42MB to
>> 200MB. Is this expected?
>glXChooseVisual() is implemented solely in terms of XGetVisualInfo() and
>glXGetConfig(). The first call to glXGetConfig() will initialize the
>client-side GLX library and do some initial DRI setup.
>Later, when a context is actually created, a DRI hardware driver may
>map some memory regions which will cause the virtual size of the process
>to jump. But that's just the virtual size, not physical size.
>How exactly did you determine that this function is at fault?
>What happens with LIBGL_ALWAYS_INDIRECT set?
The simple way - step through with a debugger and look at the size of the
process. I also trussed it and found out that a bunch of mmaps are happening
like you said. I beleive that the region these mmaps are placed within the
process's address space is interfering with the heap, causing my malloc
failures. I think there's some linker magic I can use to avoid this.
The views expressed above are not those of PGS Tensor.
"We've heard that a million monkeys at a million keyboards could produce
the Complete Works of Shakespeare; now, thanks to the Internet, we know
this is not true." Robert Wilensky, University of California