diff options
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_setup.h')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup.h | 16 |
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, |