X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_state.h;h=ca6e412df0b1fb4a7f8c2c5997f62544bce823d0;hb=4ca40cc3dcbf34988fd614d8539938ffb17ce8ea;hp=05d1b9379449cae2211425e079283835d9db9b7e;hpb=b5e381d9783f17c9a527ac38122444eac6807566;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index 05d1b937944..ca6e412df0b 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2007 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,14 +18,14 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ -/* Authors: Keith Whitwell +/* Authors: Keith Whitwell */ #ifndef LP_STATE_H @@ -46,18 +46,21 @@ #define LP_NEW_STIPPLE 0x40 #define LP_NEW_FRAMEBUFFER 0x80 #define LP_NEW_DEPTH_STENCIL_ALPHA 0x100 -#define LP_NEW_CONSTANTS 0x200 +#define LP_NEW_FS_CONSTANTS 0x200 #define LP_NEW_SAMPLER 0x400 #define LP_NEW_SAMPLER_VIEW 0x800 #define LP_NEW_VERTEX 0x1000 #define LP_NEW_VS 0x2000 -#define LP_NEW_QUERY 0x4000 +#define LP_NEW_OCCLUSION_QUERY 0x4000 #define LP_NEW_BLEND_COLOR 0x8000 #define LP_NEW_GS 0x10000 #define LP_NEW_SO 0x20000 #define LP_NEW_SO_BUFFERS 0x40000 +#define LP_NEW_FS_SSBOS 0x80000 +#define LP_NEW_FS_IMAGES 0x100000 - +#define LP_CSNEW_CS 0x1 +#define LP_CSNEW_CONSTANTS 0x2 struct vertex_info; struct pipe_context; @@ -65,17 +68,10 @@ struct llvmpipe_context; -/** Subclass of pipe_shader_state */ -struct lp_vertex_shader -{ - struct pipe_shader_state 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; + boolean no_tokens; + struct pipe_stream_output_info stream_output; + struct draw_geometry_shader *dgs; }; /** Vertex element state */ @@ -86,7 +82,7 @@ struct lp_velems_state }; struct lp_so_state { - struct pipe_stream_output_state base; + struct pipe_stream_output_info base; }; @@ -97,6 +93,9 @@ llvmpipe_set_framebuffer_state(struct pipe_context *, void llvmpipe_update_fs(struct llvmpipe_context *lp); +void +llvmpipe_update_setup(struct llvmpipe_context *lp); + void llvmpipe_update_derived(struct llvmpipe_context *llvmpipe); @@ -112,6 +111,9 @@ llvmpipe_init_vertex_funcs(struct llvmpipe_context *llvmpipe); void llvmpipe_init_draw_funcs(struct llvmpipe_context *llvmpipe); +void +llvmpipe_init_compute_funcs(struct llvmpipe_context *llvmpipe); + void llvmpipe_init_clip_funcs(struct llvmpipe_context *llvmpipe); @@ -130,6 +132,23 @@ 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_prepare_geometry_sampling(struct llvmpipe_context *ctx, + unsigned num, + struct pipe_sampler_view **views); +void +llvmpipe_prepare_vertex_images(struct llvmpipe_context *lp, + unsigned num, + struct pipe_image_view *views); +void +llvmpipe_prepare_geometry_images(struct llvmpipe_context *lp, + unsigned num, + struct pipe_image_view *views); #endif