diff options
author | Thomas Balling Sørensen <tball@tball-laptop.(none)> | 2010-10-05 12:04:08 +0200 |
---|---|---|
committer | Thomas Balling Sørensen <tball@tball-laptop.(none)> | 2010-10-05 12:04:08 +0200 |
commit | 1218430e1200a08cd64b6555d3fd1fd0274ad9e5 (patch) | |
tree | e060fb27b8388a4bd237ca39fc20f1675c5e367c /src/gallium/drivers/llvmpipe/lp_state.h | |
parent | 63b1525cf0a50e3d31328c3b56355a86056e4c05 (diff) | |
parent | bf21b7006c63c3dc47045c22d4f372dfe6c7ce67 (diff) |
Merge branch 'master' into pipe-video
Conflicts:
configs/linux-dri
configure.ac
src/gallium/drivers/nvfx/Makefile
src/gallium/include/pipe/p_defines.h
src/gallium/include/pipe/p_screen.h
src/gallium/include/state_tracker/dri1_api.h
src/gallium/include/state_tracker/drm_api.h
src/gallium/tests/python/samples/tri.py
src/gallium/tests/trivial/Makefile
src/gallium/tests/unit/Makefile
src/gallium/tests/unit/SConscript
src/gallium/tests/unit/u_format_test.c
src/gallium/winsys/nouveau/drm/nouveau_drm_api.c
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state.h')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state.h | 72 |
1 files changed, 27 insertions, 45 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index 18143807c91..86313e1c484 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -32,10 +32,9 @@ #define LP_STATE_H #include "pipe/p_state.h" -#include "tgsi/tgsi_scan.h" #include "lp_jit.h" +#include "lp_state_fs.h" #include "gallivm/lp_bld.h" -#include "gallivm/lp_bld_sample.h" /* for struct lp_sampler_static_state */ #define LP_NEW_VIEWPORT 0x1 @@ -54,55 +53,16 @@ #define LP_NEW_VS 0x2000 #define LP_NEW_QUERY 0x4000 #define LP_NEW_BLEND_COLOR 0x8000 +#define LP_NEW_GS 0x10000 +#define LP_NEW_SO 0x20000 +#define LP_NEW_SO_BUFFERS 0x40000 + struct vertex_info; struct pipe_context; struct llvmpipe_context; -struct lp_fragment_shader; - - -struct lp_fragment_shader_variant_key -{ - struct pipe_depth_state depth; - struct pipe_stencil_state stencil[2]; - struct pipe_alpha_state alpha; - struct pipe_blend_state blend; - enum pipe_format zsbuf_format; - unsigned nr_cbufs:8; - unsigned flatshade:1; - unsigned scissor:1; - - struct { - ubyte colormask; - } cbuf_blend[PIPE_MAX_COLOR_BUFS]; - - struct lp_sampler_static_state sampler[PIPE_MAX_SAMPLERS]; -}; - - -struct lp_fragment_shader_variant -{ - struct lp_fragment_shader_variant_key key; - - LLVMValueRef function[2]; - - lp_jit_frag_func jit_function[2]; - - struct lp_fragment_shader_variant *next; -}; - - -/** Subclass of pipe_shader_state */ -struct lp_fragment_shader -{ - struct pipe_shader_state base; - - struct tgsi_shader_info info; - - struct lp_fragment_shader_variant *variants; -}; /** Subclass of pipe_shader_state */ @@ -112,6 +72,11 @@ struct lp_vertex_shader struct draw_vertex_shader *draw_data; }; +/** Subclass of pipe_shader_state */ +struct lp_geometry_shader { + struct pipe_shader_state shader; + struct draw_geometry_shader *draw_data; +}; /** Vertex element state */ struct lp_velems_state @@ -120,6 +85,10 @@ struct lp_velems_state struct pipe_vertex_element velem[PIPE_MAX_ATTRIBS]; }; +struct lp_so_state { + struct pipe_stream_output_state base; +}; + void llvmpipe_set_framebuffer_state(struct pipe_context *, @@ -153,7 +122,20 @@ void llvmpipe_init_vs_funcs(struct llvmpipe_context *llvmpipe); void +llvmpipe_init_gs_funcs(struct llvmpipe_context *llvmpipe); + +void llvmpipe_init_rasterizer_funcs(struct llvmpipe_context *llvmpipe); +void +llvmpipe_init_so_funcs(struct llvmpipe_context *llvmpipe); + +void +llvmpipe_prepare_vertex_sampling(struct llvmpipe_context *ctx, + unsigned num, + struct pipe_sampler_view **views); +void +llvmpipe_cleanup_vertex_sampling(struct llvmpipe_context *ctx); + #endif |