static void fetch_pipeline_destroy( struct draw_pt_middle_end *middle )
{
   struct fetch_pipeline_middle_end *fpme = (struct fetch_pipeline_middle_end *)middle;

   if (fpme->fetch)
      draw_pt_fetch_destroy( fpme->fetch );

   if (fpme->emit)
      draw_pt_emit_destroy( fpme->emit );

   if (fpme->post_vs)
      draw_pt_post_vs_destroy( fpme->post_vs );

   FREE(middle);
}
static void llvm_middle_end_destroy( struct draw_pt_middle_end *middle )
{
    struct llvm_middle_end *fpme = (struct llvm_middle_end *)middle;

    if (fpme->fetch)
        draw_pt_fetch_destroy( fpme->fetch );

    if (fpme->emit)
        draw_pt_emit_destroy( fpme->emit );

    if (fpme->so_emit)
        draw_pt_so_emit_destroy( fpme->so_emit );

    if (fpme->post_vs)
        draw_pt_post_vs_destroy( fpme->post_vs );

    FREE(middle);
}