summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_context.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_context.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_context.h b/src/gallium/drivers/llvmpipe/lp_context.h
index db09c95b27..503f09d810 100644
--- a/src/gallium/drivers/llvmpipe/lp_context.h
+++ b/src/gallium/drivers/llvmpipe/lp_context.h
@@ -104,9 +104,18 @@ struct llvmpipe_context {
/** Vertex format */
struct vertex_info vertex_info;
+ /** Which vertex shader output slot contains color */
+ int color_slot[2];
+
+ /** Which vertex shader output slot contains bcolor */
+ int bcolor_slot[2];
+
/** Which vertex shader output slot contains point size */
int psize_slot;
+ /**< minimum resolvable depth value, for polygon offset */
+ double mrd;
+
/** The tiling engine */
struct lp_setup_context *setup;
struct lp_setup_variant setup_variant;
@@ -117,14 +126,27 @@ struct llvmpipe_context {
unsigned tex_timestamp;
boolean no_rast;
+ /** List of all fragment shader variants */
struct lp_fs_variant_list_item fs_variants_list;
unsigned nr_fs_variants;
+ /** JIT code generation */
+ struct gallivm_state *gallivm;
+ LLVMTypeRef jit_context_ptr_type;
+
struct lp_setup_variant_list_item setup_variants_list;
unsigned nr_setup_variants;
};
+/**
+ * Fragment and setup variant count, used to trigger garbage collection.
+ * This is global since all variants in all contexts will be free when
+ * we do garbage collection.
+ */
+extern unsigned llvmpipe_variant_count;
+
+
struct pipe_context *
llvmpipe_create_context( struct pipe_screen *screen, void *priv );