Mesa (main): draw: Plug leak when combining tessellation with primitive assembly.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 19 13:45:33 UTC 2021


Module: Mesa
Branch: main
Commit: 3927a2d946316d9a00d716df845e9320d4d3d9f7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3927a2d946316d9a00d716df845e9320d4d3d9f7

Author: Jose Fonseca <jfonseca at vmware.com>
Date:   Mon May 17 07:50:28 2021 +0100

draw: Plug leak when combining tessellation with primitive assembly.

Another lavapipe leak found with LeakSanitizer.

This happens when using tessellation without geometry shader but with a
fragment shader that consumes primitive ID, therefore requiring
primitive assembler stage.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10835>

---

 src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
index fe1734a9a37..9c0207aab5a 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
@@ -725,6 +725,11 @@ llvm_pipeline_generic(struct draw_pt_middle_end *middle,
 
          if (ia_vert_info.count) {
             FREE(vert_info->verts);
+            if (free_prim_info) {
+               FREE(prim_info->primitive_lengths);
+               FREE(tes_elts_out);
+               tes_elts_out = NULL;
+            }
             vert_info = &ia_vert_info;
             prim_info = &ia_prim_info;
             free_prim_info = TRUE;



More information about the mesa-commit mailing list