cell: use new keymap to save/re-use fragment ops code
[mesa.git] / src / gallium / drivers / cell / ppu / cell_context.c
index 62e213ea354c32c81281ad738149d42379aec7e1..30ce6f976242d06b312bf852539877d877b39d2c 100644 (file)
@@ -62,6 +62,8 @@ cell_destroy_context( struct pipe_context *pipe )
 {
    struct cell_context *cell = cell_context(pipe);
 
+   util_delete_keymap(cell->fragment_ops_cache, NULL);
+
    cell_spu_exit(cell);
 
    align_free(cell);
@@ -131,6 +133,10 @@ cell_create_context(struct pipe_screen *screen,
 
    cell->draw = cell_draw_create(cell);
 
+   /* Create cache of fragment ops generated code */
+   cell->fragment_ops_cache =
+      util_new_keymap(sizeof(struct cell_fragment_ops_key), ~0, NULL);
+
    cell_init_vbuf(cell);
 
    draw_set_rasterize_stage(cell->draw, cell->vbuf);