freedreno/ir3: fix counting and printing for half registers.
[mesa.git] / src / gallium / drivers / svga / svga_pipe_fs.c
index 4a9b3c96a54d99c0d2eb4b4cc9aa203f24e0f2f0..a2f00b1d290f8313179d32cc5889d4d2d93baa3d 100644 (file)
@@ -48,6 +48,8 @@ svga_create_fs_state(struct pipe_context *pipe,
    if (!fs)
       return NULL;
 
+   SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_CREATEFS);
+
    fs->base.tokens = tgsi_dup_tokens(templ->tokens);
 
    /* Collect basic info that we'll need later:
@@ -62,6 +64,7 @@ svga_create_fs_state(struct pipe_context *pipe,
 
    fs->draw_shader = draw_create_fragment_shader(svga->swtnl.draw, templ);
 
+   SVGA_STATS_TIME_POP(svga_sws(svga));
    return fs;
 }
 
@@ -105,12 +108,7 @@ svga_delete_fs_state(struct pipe_context *pipe, void *shader)
          svga->state.hw_draw.fs = NULL;
       }
 
-      ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, variant);
-      if (ret != PIPE_OK) {
-         svga_context_flush(svga, NULL);
-         ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, variant);
-         assert(ret == PIPE_OK);
-      }
+      svga_destroy_shader_variant(svga, variant);
    }
 
    FREE((void *)fs->base.tokens);