X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_state.h;h=131e3621e94e4d31445dbb0ff18b3e4a75915cf8;hb=1278507e3bf2e83c7027820a0d313de267a440ff;hp=2d6add8f3ac790e641bdd1b2f8db84fefe49ee86;hpb=e3b38e5ec1ba93e3f1a1b3d5039c70ff7aa3ebe6;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index 2d6add8f3ac..131e3621e94 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -35,6 +35,8 @@ #include "pipe/p_state.h" #include "tgsi/tgsi_scan.h" +#include "lp_jit.h" +#include "lp_bld_sample.h" /* for struct lp_sampler_static_state */ #define LP_NEW_VIEWPORT 0x1 @@ -56,28 +58,20 @@ struct tgsi_sampler; struct vertex_info; - - -typedef void -(*lp_shader_fs_func)(uint32_t x, - uint32_t y, - const void *a0, - const void *dadx, - const void *dady, - const void *consts, - uint32_t *mask, - void *color, - void *depth, - struct tgsi_sampler **samplers); - +struct pipe_context; +struct llvmpipe_context; struct lp_fragment_shader; struct lp_fragment_shader_variant_key { + enum pipe_format zsbuf_format; struct pipe_depth_state depth; struct pipe_alpha_state alpha; + struct pipe_blend_state blend; + + struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS]; }; @@ -89,7 +83,7 @@ struct lp_fragment_shader_variant LLVMValueRef function; - lp_shader_fs_func jit_function; + lp_jit_frag_func jit_function; struct lp_fragment_shader_variant *next; }; @@ -119,23 +113,6 @@ struct lp_vertex_shader { }; -typedef void -(*lp_blend_func)(const uint8_t *mask, - const uint8_t *src, - const uint8_t *con, - uint8_t *dst); - - -struct lp_blend_state -{ - struct pipe_blend_state base; - - LLVMValueRef function; - - lp_blend_func jit_function; -}; - - void * llvmpipe_create_blend_state(struct pipe_context *, @@ -149,6 +126,10 @@ void * llvmpipe_create_sampler_state(struct pipe_context *, const struct pipe_sampler_state *); void llvmpipe_bind_sampler_states(struct pipe_context *, unsigned, void **); +void +llvmpipe_bind_vertex_sampler_states(struct pipe_context *, + unsigned num_samplers, + void **samplers); void llvmpipe_delete_sampler_state(struct pipe_context *, void *); void * @@ -174,7 +155,7 @@ void llvmpipe_set_clip_state( struct pipe_context *, void llvmpipe_set_constant_buffer(struct pipe_context *, uint shader, uint index, - const struct pipe_constant_buffer *buf); + const struct pipe_buffer *buf); void *llvmpipe_create_fs_state(struct pipe_context *, const struct pipe_shader_state *); @@ -195,6 +176,11 @@ void llvmpipe_set_sampler_textures( struct pipe_context *, unsigned num, struct pipe_texture ** ); +void +llvmpipe_set_vertex_sampler_textures(struct pipe_context *, + unsigned num_textures, + struct pipe_texture **); + void llvmpipe_set_viewport_state( struct pipe_context *, const struct pipe_viewport_state * ); @@ -226,10 +212,6 @@ llvmpipe_draw_range_elements(struct pipe_context *pipe, unsigned max_index, unsigned mode, unsigned start, unsigned count); -void -llvmpipe_set_edgeflags(struct pipe_context *pipe, const unsigned *edgeflags); - - void llvmpipe_map_transfers(struct llvmpipe_context *lp);