Skip to content
  • Andrii Simiklit's avatar
    Revert "glx: convert glx_config_create_list to one big calloc" · 311c82e1
    Andrii Simiklit authored
    This reverts commit 35fc7bdf
    
    .
    
    Unfortunately mentioned commit introduced a memory leak because
    `driwindowsMapConfigs` and `createDriMode` functions allocate
    small memory portions for each element:
     21,576 (232 direct, 21,344 indirect) bytes in 1 blocks are definitely lost in loss record 1,411 of 1,414
        at 0x483A7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
        by 0x5D4AA09: createDriMode (dri_common.c:291)
        by 0x5D4ABF5: driConvertConfigs (dri_common.c:310)
        by 0x5D58414: dri3_create_screen (dri3_glx.c:945)
        by 0x5D39829: AllocAndFetchScreenConfigs (glxext.c:815)
        by 0x5D39C57: __glXInitialize (glxext.c:941)
        by 0x5D3290A: GetGLXPrivScreenConfig (glxcmds.c:174)
        by 0x5D34F38: glXQueryExtensionsString (glxcmds.c:1307)
        by 0x4F83038: glXQueryExtensionsString (in /usr/local/lib/libGL.so.1.7.0)
        by 0x4F2EA6B: ??? (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0)
        by 0x4F2A0D7: waffle_display_connect (in /usr/lib/x86_64-linux-gnu/libwaffle-1.so.0.6.0)
        by 0x498F42A: wfl_checked_display_connect (piglit-util-waffle.h:74)
    
    There is one more thing which disallow us to easily fix it are different element sizes
    for instance: `glx_config_create_list` allocates memory just for `glx_config`,
    `driwindowsMapConfigs` for `driwindows_config` and
    `createDriMode` for `__GLXDRIconfigPrivate`.
    Yes it is possible but size of such fix
    will be more big and complex than original one.
    So it make sense only if the malloc overhead
    really is a big problem there.
    
    Acked-by: default avatarEric Engestrom <eric@engestrom.ch>
    Signed-off-by: default avatarAndrii Simiklit <andrii.simiklit@globallogic.com>
    Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3406>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3406>
    311c82e1