vc4: Fix memory leak as of 0404e7fe0ac2a6234a11290b4b1596e8bc127a4b.
authorEric Anholt <eric@anholt.net>
Wed, 31 Dec 2014 00:10:28 +0000 (16:10 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 31 Dec 2014 19:34:28 +0000 (11:34 -0800)
Can't reset the CL before looking at how much we had pupt in it.

src/gallium/drivers/vc4/vc4_context.c

index e4e433020fc5b3d0cd1153efea6c3d5f5d5e3ca7..62f77b3da1bcfa64632071059d01525681eceade 100644 (file)
@@ -296,16 +296,16 @@ vc4_setup_rcl(struct vc4_context *vc4)
 static void
 vc4_draw_reset(struct vc4_context *vc4)
 {
-        vc4_reset_cl(&vc4->bcl);
-        vc4_reset_cl(&vc4->rcl);
-        vc4_reset_cl(&vc4->shader_rec);
-        vc4_reset_cl(&vc4->uniforms);
-        vc4_reset_cl(&vc4->bo_handles);
         struct vc4_bo **referenced_bos = vc4->bo_pointers.base;
         for (int i = 0; i < (vc4->bo_handles.next -
                              vc4->bo_handles.base) / 4; i++) {
                 vc4_bo_unreference(&referenced_bos[i]);
         }
+        vc4_reset_cl(&vc4->bcl);
+        vc4_reset_cl(&vc4->rcl);
+        vc4_reset_cl(&vc4->shader_rec);
+        vc4_reset_cl(&vc4->uniforms);
+        vc4_reset_cl(&vc4->bo_handles);
         vc4_reset_cl(&vc4->bo_pointers);
         vc4->shader_rec_count = 0;