summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_setup.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_setup.h')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.h b/src/gallium/drivers/llvmpipe/lp_setup.h
index 10db03b9c6..6a0dc55129 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup.h
+++ b/src/gallium/drivers/llvmpipe/lp_setup.h
@@ -41,8 +41,11 @@ enum lp_interp {
LP_INTERP_FACING
};
-/* Describes how to generate all the fragment shader inputs from the
- * the vertices passed into our triangle/line/point functions.
+
+/**
+ * Describes how to compute the interpolation coefficients (a0, dadx, dady)
+ * from the vertices passed into our triangle/line/point functions by the
+ * draw module.
*
* Vertices are treated as an array of float[4] values, indexed by
* src_index.
@@ -50,6 +53,7 @@ enum lp_interp {
struct lp_shader_input {
enum lp_interp interp; /* how to interpolate values */
unsigned src_index; /* where to find values in incoming vertices */
+ unsigned usage_mask; /* bitmask of TGSI_WRITEMASK_x flags */
};
struct pipe_resource;
@@ -58,7 +62,7 @@ struct pipe_surface;
struct pipe_blend_color;
struct pipe_screen;
struct pipe_framebuffer_state;
-struct lp_fragment_shader;
+struct lp_fragment_shader_variant;
struct lp_jit_context;
struct llvmpipe_query;
@@ -100,10 +104,8 @@ lp_setup_set_fs_inputs( struct lp_setup_context *setup,
unsigned nr );
void
-lp_setup_set_fs_functions( struct lp_setup_context *setup,
- lp_jit_frag_func jit_function0,
- lp_jit_frag_func jit_function1,
- boolean opaque );
+lp_setup_set_fs_variant( struct lp_setup_context *setup,
+ struct lp_fragment_shader_variant *variant );
void
lp_setup_set_fs_constants(struct lp_setup_context *setup,