st/mesa: release tgsi tokens for shader states
authorNeha Bhende <bhenden@vmware.com>
Thu, 19 Dec 2019 19:11:49 +0000 (00:41 +0530)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 19 Dec 2019 19:40:08 +0000 (14:40 -0500)
Since we are using st_common_variant while creating variant for vertext
program, we can release tokens created in st_create_vp_variant which
are already stored in respective states.
This fix memory leak found with piglit tests

Fixes bc99b22a305b ('st/mesa: use a separate VS variant for the draw module')

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_program.c

index a9ff68c1f5098e68374f61b77e1cdad9fafe7207..ef10399fa18a675bcbcce18f36a027888414c801 100644 (file)
@@ -694,6 +694,10 @@ st_create_vp_variant(struct st_context *st,
    else
       vpv->base.driver_shader = pipe->create_vs_state(pipe, &state);
 
+   if (state.tokens) {
+      tgsi_free_tokens(state.tokens);
+   }
+
    return vpv;
 }