struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS];
};
+
+/** doubly-linked list item */
struct lp_fs_variant_list_item
{
struct lp_fragment_shader_variant *base;
struct lp_fs_variant_list_item *next, *prev;
};
+
struct lp_fragment_shader_variant
{
struct lp_fragment_shader_variant_key key;
boolean opaque;
+ struct gallivm_state *gallivm;
+
+ LLVMTypeRef jit_context_ptr_type;
+ LLVMTypeRef jit_thread_data_ptr_type;
+ LLVMTypeRef jit_linear_context_ptr_type;
+
LLVMValueRef function[2];
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;
void
lp_debug_fs_variant(const struct lp_fragment_shader_variant *variant);
+void
+llvmpipe_remove_shader_variant(struct llvmpipe_context *lp,
+ struct lp_fragment_shader_variant *variant);
+
#endif /* LP_STATE_FS_H_ */