diff options
author | José Fonseca <[email protected]> | 2011-11-30 17:12:00 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2011-12-08 17:59:33 +0000 |
commit | 6cf7245f6938e27c9b8a1742f27659aec017bbdc (patch) | |
tree | 79397228a7f7408efd756f6e58298ff9977204f7 /src/gallium/drivers/llvmpipe/lp_state_fs.h | |
parent | f32c7232a8a16887af710a11f025381bc73640f0 (diff) |
llvmpipe: Trim the fragment shader cached based on LLVM IR instruction count.
Number of fragment shader variants is not very representative of the
memory used by LLVM, neither is number of shader instructions, as often
texture sampling constitutes most of the generated code.
This change adds an additional trim criteria: least recently used
fragment shader variants will be freed until the total number of LLVM IR
instruction falls below a specified threshold.
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state_fs.h')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.h b/src/gallium/drivers/llvmpipe/lp_state_fs.h index 98410c69359..273d241d8fc 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.h +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.h @@ -88,6 +88,9 @@ struct lp_fragment_shader_variant lp_jit_frag_func jit_function[2]; + /* Total number of LLVM instructions generated */ + unsigned nr_instrs; + struct lp_fs_variant_list_item list_item_global, list_item_local; struct lp_fragment_shader *shader; |