X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgallium%2Fdrivers%2Fi915%2Fi915_context.h;h=ec8cbbf1f528bf89872179c91d07623b66d35bf3;hb=fd5edee7002fbaef96618603bfe831ec7cca128d;hp=7406b7e812feadd7ea49fcc8998897403cd45b18;hpb=b1d93d2aa8395608e77f1c538aa2234ced3dda75;p=mesa.git diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h index 7406b7e812f..ec8cbbf1f52 100644 --- a/src/gallium/drivers/i915/i915_context.h +++ b/src/gallium/drivers/i915/i915_context.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2003 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * 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. @@ -104,6 +104,9 @@ struct i915_fragment_shader struct draw_fragment_shader *draw_data; + uint *decl; + uint decl_len; + uint *program; uint program_len; @@ -167,7 +170,7 @@ struct i915_state unsigned dst_buf_vars; uint32_t draw_offset; uint32_t draw_size; - unsigned need_target_fixup; + uint32_t target_fixup_format; uint32_t fixup_swizzle; unsigned id; /* track lost context events */ @@ -188,6 +191,8 @@ struct i915_depth_stencil_state { }; struct i915_rasterizer_state { + struct pipe_rasterizer_state templ; + unsigned light_twoside : 1; unsigned st; enum interp_mode color_interp; @@ -196,14 +201,12 @@ struct i915_rasterizer_state { unsigned LIS7; unsigned sc[1]; - struct pipe_rasterizer_state templ; - union { float f; unsigned u; } ds[2]; }; struct i915_sampler_state { + struct pipe_sampler_state templ; unsigned state[3]; - const struct pipe_sampler_state *templ; unsigned minlod; unsigned maxlod; }; @@ -224,13 +227,19 @@ struct i915_context { /* The most recent drawing state as set by the driver: */ const struct i915_blend_state *blend; - const struct i915_sampler_state *sampler[PIPE_MAX_SAMPLERS]; - struct pipe_sampler_state *vertex_samplers[PIPE_MAX_VERTEX_SAMPLERS]; + const struct i915_sampler_state *fragment_sampler[PIPE_MAX_SAMPLERS]; + struct pipe_sampler_state *vertex_samplers[PIPE_MAX_SAMPLERS]; const struct i915_depth_stencil_state *depth_stencil; const struct i915_rasterizer_state *rasterizer; struct i915_fragment_shader *fs; + void *vs; + + struct i915_velems_state *velems; + unsigned nr_vertex_buffers; + struct pipe_vertex_buffer vertex_buffers[PIPE_MAX_ATTRIBS]; + struct pipe_blend_color blend_color; struct pipe_stencil_ref stencil_ref; struct pipe_clip_state clip; @@ -245,8 +254,8 @@ struct i915_context { unsigned dirty; - struct pipe_resource *mapped_vs_tex[PIPE_MAX_VERTEX_SAMPLERS]; - struct i915_winsys_buffer* mapped_vs_tex_buffer[PIPE_MAX_VERTEX_SAMPLERS]; + struct pipe_resource *mapped_vs_tex[PIPE_MAX_SAMPLERS]; + struct i915_winsys_buffer* mapped_vs_tex_buffer[PIPE_MAX_SAMPLERS]; unsigned num_samplers; unsigned num_fragment_sampler_views; @@ -280,23 +289,6 @@ struct i915_context { /** blitter/hw-clear */ struct blitter_context* blitter; - - /** State tracking needed by u_blitter for save/restore. */ - void *saved_fs; - void (*saved_bind_fs_state)(struct pipe_context *pipe, void *shader); - void *saved_vs; - struct pipe_clip_state saved_clip; - struct i915_velems_state *saved_velems; - unsigned saved_nr_vertex_buffers; - struct pipe_vertex_buffer saved_vertex_buffers[PIPE_MAX_ATTRIBS]; - unsigned saved_nr_samplers; - void *saved_samplers[PIPE_MAX_SAMPLERS]; - void (*saved_bind_sampler_states)(struct pipe_context *pipe, - unsigned num, void **sampler); - unsigned saved_nr_sampler_views; - struct pipe_sampler_view *saved_sampler_views[PIPE_MAX_SAMPLERS]; - void (*saved_set_sampler_views)(struct pipe_context *pipe, - unsigned num, struct pipe_sampler_view **views); }; /* A flag for each state_tracker state object: @@ -401,7 +393,6 @@ void i915_clear_emit(struct pipe_context *pipe, unsigned buffers, * */ void i915_init_state_functions( struct i915_context *i915 ); -void i915_init_fixup_state_functions( struct i915_context *i915 ); void i915_init_flush_functions( struct i915_context *i915 ); void i915_init_string_functions( struct i915_context *i915 );