failover: queiten compiler warnings
[mesa.git] / src / gallium / drivers / i915simple / i915_context.h
index 8e707ea574ae9e1d49ff30c96b5a62293dc2325e..3cdabe45f9d6ff8cf713ce81019b77ef5aeacac9 100644 (file)
- /**************************************************************************\r
- * \r
- * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.\r
- * All Rights Reserved.\r
- * \r
- * Permission is hereby granted, free of charge, to any person obtaining a\r
- * copy of this software and associated documentation files (the\r
- * "Software"), to deal in the Software without restriction, including\r
- * without limitation the rights to use, copy, modify, merge, publish,\r
- * distribute, sub license, and/or sell copies of the Software, and to\r
- * permit persons to whom the Software is furnished to do so, subject to\r
- * the following conditions:\r
- * \r
- * The above copyright notice and this permission notice (including the\r
- * next paragraph) shall be included in all copies or substantial portions\r
- * of the Software.\r
- * \r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\r
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR\r
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- * \r
- **************************************************************************/\r
-\r
-#ifndef I915_CONTEXT_H\r
-#define I915_CONTEXT_H\r
-\r
-\r
-#include "pipe/p_context.h"\r
-#include "pipe/p_defines.h"\r
-#include "pipe/p_state.h"\r
-\r
-#include "draw/draw_vertex.h"\r
-\r
-#include "tgsi/util/tgsi_scan.h"\r
-\r
-\r
-#define I915_TEX_UNITS 8\r
-\r
-#define I915_DYNAMIC_MODES4       0\r
-#define I915_DYNAMIC_DEPTHSCALE_0 1 /* just the header */\r
-#define I915_DYNAMIC_DEPTHSCALE_1 2 \r
-#define I915_DYNAMIC_IAB          3\r
-#define I915_DYNAMIC_BC_0         4 /* just the header */\r
-#define I915_DYNAMIC_BC_1         5\r
-#define I915_DYNAMIC_BFO_0        6 \r
-#define I915_DYNAMIC_BFO_1        7\r
-#define I915_DYNAMIC_STP_0        8 \r
-#define I915_DYNAMIC_STP_1        9 \r
-#define I915_DYNAMIC_SC_ENA_0     10 \r
-#define I915_DYNAMIC_SC_RECT_0    11 \r
-#define I915_DYNAMIC_SC_RECT_1    12 \r
-#define I915_DYNAMIC_SC_RECT_2    13 \r
-#define I915_MAX_DYNAMIC          14\r
-\r
-\r
-#define I915_IMMEDIATE_S0         0\r
-#define I915_IMMEDIATE_S1         1\r
-#define I915_IMMEDIATE_S2         2\r
-#define I915_IMMEDIATE_S3         3\r
-#define I915_IMMEDIATE_S4         4\r
-#define I915_IMMEDIATE_S5         5\r
-#define I915_IMMEDIATE_S6         6\r
-#define I915_IMMEDIATE_S7         7\r
-#define I915_MAX_IMMEDIATE        8\r
-\r
-/* These must mach the order of LI0_STATE_* bits, as they will be used\r
- * to generate hardware packets:\r
- */\r
-#define I915_CACHE_STATIC         0 \r
-#define I915_CACHE_DYNAMIC        1 /* handled specially */\r
-#define I915_CACHE_SAMPLER        2\r
-#define I915_CACHE_MAP            3\r
-#define I915_CACHE_PROGRAM        4\r
-#define I915_CACHE_CONSTANTS      5\r
-#define I915_MAX_CACHE            6\r
-\r
-#define I915_MAX_CONSTANT  32\r
-\r
-\r
-/** See constant_flags[] below */\r
-#define I915_CONSTFLAG_USER 0x1f\r
-\r
-\r
-/**\r
- * Subclass of pipe_shader_state\r
- */\r
-struct i915_fragment_shader\r
-{\r
-   struct pipe_shader_state state;\r
-\r
-   struct tgsi_shader_info info;\r
-\r
-   uint *program;\r
-   uint program_len;\r
-\r
-   /**\r
-    * constants introduced during translation.\r
-    * These are placed at the end of the constant buffer and grow toward\r
-    * the beginning (eg: slot 31, 30 29, ...)\r
-    * User-provided constants start at 0.\r
-    * This allows both types of constants to co-exist (until there's too many)\r
-    * and doesn't require regenerating/changing the fragment program to\r
-    * shuffle constants around.\r
-    */\r
-   uint num_constants;\r
-   float constants[I915_MAX_CONSTANT][4];\r
-\r
-   /**\r
-    * Status of each constant\r
-    * if I915_CONSTFLAG_PARAM, the value must be taken from the corresponding\r
-    * slot of the user's constant buffer. (set by pipe->set_constant_buffer())\r
-    * Else, the bitmask indicates which components are occupied by immediates.\r
-    */\r
-   ubyte constant_flags[I915_MAX_CONSTANT];\r
-};\r
-\r
-\r
-struct i915_cache_context;\r
-\r
-/* Use to calculate differences between state emitted to hardware and\r
- * current driver-calculated state.  \r
- */\r
-struct i915_state \r
-{\r
-   unsigned immediate[I915_MAX_IMMEDIATE];\r
-   unsigned dynamic[I915_MAX_DYNAMIC];\r
-\r
-   float constants[PIPE_SHADER_TYPES][I915_MAX_CONSTANT][4];\r
-   /** number of constants passed in through a constant buffer */\r
-   uint num_user_constants[PIPE_SHADER_TYPES];\r
-\r
-   /* texture sampler state */\r
-   unsigned sampler[I915_TEX_UNITS][3];\r
-   unsigned sampler_enable_flags;\r
-   unsigned sampler_enable_nr;\r
-\r
-   /* texture image buffers */\r
-   unsigned texbuffer[I915_TEX_UNITS][2];\r
-\r
-   /** Describes the current hardware vertex layout */\r
-   struct vertex_info vertex_info;\r
-   \r
-   unsigned id;                        /* track lost context events */\r
-};\r
-\r
-struct i915_blend_state {\r
-   unsigned iab;\r
-   unsigned modes4;\r
-   unsigned LIS5;\r
-   unsigned LIS6;\r
-};\r
-\r
-struct i915_depth_stencil_state {\r
-   unsigned stencil_modes4;\r
-   unsigned bfo[2];\r
-   unsigned stencil_LIS5;\r
-   unsigned depth_LIS6;\r
-};\r
-\r
-struct i915_rasterizer_state {\r
-   int light_twoside : 1;\r
-   unsigned st;\r
-   enum interp_mode color_interp;\r
-\r
-   unsigned LIS4;\r
-   unsigned LIS7;\r
-   unsigned sc[1];\r
-\r
-   const struct pipe_rasterizer_state *templ;\r
-\r
-   union { float f; unsigned u; } ds[2];\r
-};\r
-\r
-struct i915_sampler_state {\r
-   unsigned state[3];\r
-   const struct pipe_sampler_state *templ;\r
-};\r
-\r
-\r
-struct i915_texture {\r
-   struct pipe_texture base;\r
-\r
-   /* Derived from the above:\r
-    */\r
-   unsigned pitch;\r
-   unsigned depth_pitch;          /* per-image on i945? */\r
-   unsigned total_height;\r
-\r
-   unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];\r
-\r
-   /* Explicitly store the offset of each image for each cube face or\r
-    * depth value.  Pretty much have to accept that hardware formats\r
-    * are going to be so diverse that there is no unified way to\r
-    * compute the offsets of depth/cube images within a mipmap level,\r
-    * so have to store them as a lookup table:\r
-    */\r
-   unsigned *image_offset[PIPE_MAX_TEXTURE_LEVELS];   /**< array [depth] of offsets */\r
-\r
-   /* Includes image offset tables:\r
-    */\r
-   unsigned level_offset[PIPE_MAX_TEXTURE_LEVELS];\r
-\r
-   /* The data is held here:\r
-    */\r
-   struct pipe_buffer *buffer;\r
-};\r
-\r
-struct i915_context\r
-{\r
-   struct pipe_context pipe;\r
-   struct i915_winsys *winsys;\r
-   struct draw_context *draw;\r
-\r
-   /* The most recent drawing state as set by the driver:\r
-    */\r
-   const struct i915_blend_state           *blend;\r
-   const struct i915_sampler_state         *sampler[PIPE_MAX_SAMPLERS];\r
-   const struct i915_depth_stencil_state   *depth_stencil;\r
-   const struct i915_rasterizer_state      *rasterizer;\r
-\r
-   struct i915_fragment_shader *fs;\r
-\r
-   struct pipe_blend_color blend_color;\r
-   struct pipe_clip_state clip;\r
-   struct pipe_constant_buffer constants[PIPE_SHADER_TYPES];\r
-   struct pipe_framebuffer_state framebuffer;\r
-   struct pipe_poly_stipple poly_stipple;\r
-   struct pipe_scissor_state scissor;\r
-   struct i915_texture *texture[PIPE_MAX_SAMPLERS];\r
-   struct pipe_viewport_state viewport;\r
-   struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];\r
-\r
-   unsigned dirty;\r
-\r
-   unsigned num_samplers;\r
-   unsigned num_textures;\r
-\r
-   unsigned *batch_start;\r
-\r
-   /** Vertex buffer */\r
-   struct pipe_buffer *vbo;\r
-\r
-   struct i915_state current;\r
-   unsigned hardware_dirty;\r
-   \r
-   unsigned debug;\r
-};\r
-\r
-/* A flag for each state_tracker state object:\r
- */\r
-#define I915_NEW_VIEWPORT      0x1\r
-#define I915_NEW_RASTERIZER    0x2\r
-#define I915_NEW_FS            0x4\r
-#define I915_NEW_BLEND         0x8\r
-#define I915_NEW_CLIP          0x10\r
-#define I915_NEW_SCISSOR       0x20\r
-#define I915_NEW_STIPPLE       0x40\r
-#define I915_NEW_FRAMEBUFFER   0x80\r
-#define I915_NEW_ALPHA_TEST    0x100\r
-#define I915_NEW_DEPTH_STENCIL 0x200\r
-#define I915_NEW_SAMPLER       0x400\r
-#define I915_NEW_TEXTURE       0x800\r
-#define I915_NEW_CONSTANTS     0x1000\r
-#define I915_NEW_VBO           0x2000\r
-#define I915_NEW_VS            0x4000\r
-\r
-\r
-/* Driver's internally generated state flags:\r
- */\r
-#define I915_NEW_VERTEX_FORMAT    0x10000\r
-\r
-\r
-/* Dirty flags for hardware emit\r
- */\r
-#define I915_HW_STATIC            (1<<I915_CACHE_STATIC)\r
-#define I915_HW_DYNAMIC           (1<<I915_CACHE_DYNAMIC)\r
-#define I915_HW_SAMPLER           (1<<I915_CACHE_SAMPLER)\r
-#define I915_HW_MAP               (1<<I915_CACHE_MAP)\r
-#define I915_HW_PROGRAM           (1<<I915_CACHE_PROGRAM)\r
-#define I915_HW_CONSTANTS         (1<<I915_CACHE_CONSTANTS)\r
-#define I915_HW_IMMEDIATE         (1<<(I915_MAX_CACHE+0))\r
-#define I915_HW_INVARIENT         (1<<(I915_MAX_CACHE+1))\r
-\r
-\r
-/***********************************************************************\r
- * i915_prim_emit.c: \r
- */\r
-struct draw_stage *i915_draw_render_stage( struct i915_context *i915 );\r
-\r
-\r
-/***********************************************************************\r
- * i915_prim_vbuf.c: \r
- */\r
-struct draw_stage *i915_draw_vbuf_stage( struct i915_context *i915 );\r
-\r
-\r
-/***********************************************************************\r
- * i915_state_emit.c: \r
- */\r
-void i915_emit_hardware_state(struct i915_context *i915 );\r
-\r
-\r
-\r
-/***********************************************************************\r
- * i915_clear.c: \r
- */\r
-void i915_clear(struct pipe_context *pipe, struct pipe_surface *ps,\r
-               unsigned clearValue);\r
-\r
-\r
-/***********************************************************************\r
- * i915_surface.c: \r
- */\r
-void i915_init_surface_functions( struct i915_context *i915 );\r
-\r
-void i915_init_state_functions( struct i915_context *i915 );\r
-void i915_init_flush_functions( struct i915_context *i915 );\r
-void i915_init_string_functions( struct i915_context *i915 );\r
-\r
-\r
-\r
-\r
-/***********************************************************************\r
- * Inline conversion functions.  These are better-typed than the\r
- * macros used previously:\r
- */\r
-static INLINE struct i915_context *\r
-i915_context( struct pipe_context *pipe )\r
-{\r
-   return (struct i915_context *)pipe;\r
-}\r
-\r
-\r
-\r
-#endif\r
+ /**************************************************************************
+ * 
+ * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ * 
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ * 
+ * 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
+ * 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.
+ * 
+ **************************************************************************/
+
+#ifndef I915_CONTEXT_H
+#define I915_CONTEXT_H
+
+
+#include "pipe/p_context.h"
+#include "pipe/p_defines.h"
+#include "pipe/p_state.h"
+
+#include "draw/draw_vertex.h"
+
+#include "tgsi/tgsi_scan.h"
+
+
+#define I915_TEX_UNITS 8
+
+#define I915_DYNAMIC_MODES4       0
+#define I915_DYNAMIC_DEPTHSCALE_0 1 /* just the header */
+#define I915_DYNAMIC_DEPTHSCALE_1 2 
+#define I915_DYNAMIC_IAB          3
+#define I915_DYNAMIC_BC_0         4 /* just the header */
+#define I915_DYNAMIC_BC_1         5
+#define I915_DYNAMIC_BFO_0        6 
+#define I915_DYNAMIC_BFO_1        7
+#define I915_DYNAMIC_STP_0        8 
+#define I915_DYNAMIC_STP_1        9 
+#define I915_DYNAMIC_SC_ENA_0     10 
+#define I915_DYNAMIC_SC_RECT_0    11 
+#define I915_DYNAMIC_SC_RECT_1    12 
+#define I915_DYNAMIC_SC_RECT_2    13 
+#define I915_MAX_DYNAMIC          14
+
+
+#define I915_IMMEDIATE_S0         0
+#define I915_IMMEDIATE_S1         1
+#define I915_IMMEDIATE_S2         2
+#define I915_IMMEDIATE_S3         3
+#define I915_IMMEDIATE_S4         4
+#define I915_IMMEDIATE_S5         5
+#define I915_IMMEDIATE_S6         6
+#define I915_IMMEDIATE_S7         7
+#define I915_MAX_IMMEDIATE        8
+
+/* These must mach the order of LI0_STATE_* bits, as they will be used
+ * to generate hardware packets:
+ */
+#define I915_CACHE_STATIC         0 
+#define I915_CACHE_DYNAMIC        1 /* handled specially */
+#define I915_CACHE_SAMPLER        2
+#define I915_CACHE_MAP            3
+#define I915_CACHE_PROGRAM        4
+#define I915_CACHE_CONSTANTS      5
+#define I915_MAX_CACHE            6
+
+#define I915_MAX_CONSTANT  32
+
+
+/** See constant_flags[] below */
+#define I915_CONSTFLAG_USER 0x1f
+
+
+/**
+ * Subclass of pipe_shader_state
+ */
+struct i915_fragment_shader
+{
+   struct pipe_shader_state state;
+
+   struct tgsi_shader_info info;
+
+   uint *program;
+   uint program_len;
+
+   /**
+    * constants introduced during translation.
+    * These are placed at the end of the constant buffer and grow toward
+    * the beginning (eg: slot 31, 30 29, ...)
+    * User-provided constants start at 0.
+    * This allows both types of constants to co-exist (until there's too many)
+    * and doesn't require regenerating/changing the fragment program to
+    * shuffle constants around.
+    */
+   uint num_constants;
+   float constants[I915_MAX_CONSTANT][4];
+
+   /**
+    * Status of each constant
+    * if I915_CONSTFLAG_PARAM, the value must be taken from the corresponding
+    * slot of the user's constant buffer. (set by pipe->set_constant_buffer())
+    * Else, the bitmask indicates which components are occupied by immediates.
+    */
+   ubyte constant_flags[I915_MAX_CONSTANT];
+};
+
+
+struct i915_cache_context;
+
+/* Use to calculate differences between state emitted to hardware and
+ * current driver-calculated state.  
+ */
+struct i915_state 
+{
+   unsigned immediate[I915_MAX_IMMEDIATE];
+   unsigned dynamic[I915_MAX_DYNAMIC];
+
+   float constants[PIPE_SHADER_TYPES][I915_MAX_CONSTANT][4];
+   /** number of constants passed in through a constant buffer */
+   uint num_user_constants[PIPE_SHADER_TYPES];
+
+   /* texture sampler state */
+   unsigned sampler[I915_TEX_UNITS][3];
+   unsigned sampler_enable_flags;
+   unsigned sampler_enable_nr;
+
+   /* texture image buffers */
+   unsigned texbuffer[I915_TEX_UNITS][2];
+
+   /** Describes the current hardware vertex layout */
+   struct vertex_info vertex_info;
+   
+   unsigned id;                        /* track lost context events */
+};
+
+struct i915_blend_state {
+   unsigned iab;
+   unsigned modes4;
+   unsigned LIS5;
+   unsigned LIS6;
+};
+
+struct i915_depth_stencil_state {
+   unsigned stencil_modes4;
+   unsigned bfo[2];
+   unsigned stencil_LIS5;
+   unsigned depth_LIS6;
+};
+
+struct i915_rasterizer_state {
+   int light_twoside : 1;
+   unsigned st;
+   enum interp_mode color_interp;
+
+   unsigned LIS4;
+   unsigned LIS7;
+   unsigned sc[1];
+
+   const struct pipe_rasterizer_state *templ;
+
+   union { float f; unsigned u; } ds[2];
+};
+
+struct i915_sampler_state {
+   unsigned state[3];
+   const struct pipe_sampler_state *templ;
+   unsigned minlod;
+   unsigned maxlod;
+};
+
+
+struct i915_texture {
+   struct pipe_texture base;
+
+   /* Derived from the above:
+    */
+   unsigned stride;
+   unsigned depth_stride;          /* per-image on i945? */
+   unsigned total_nblocksy;
+
+   unsigned tiled;
+
+   unsigned nr_images[PIPE_MAX_TEXTURE_LEVELS];
+
+   /* Explicitly store the offset of each image for each cube face or
+    * depth value.  Pretty much have to accept that hardware formats
+    * are going to be so diverse that there is no unified way to
+    * compute the offsets of depth/cube images within a mipmap level,
+    * so have to store them as a lookup table:
+    */
+   unsigned *image_offset[PIPE_MAX_TEXTURE_LEVELS];   /**< array [depth] of offsets */
+
+   /* The data is held here:
+    */
+   struct pipe_buffer *buffer;
+};
+
+struct i915_batchbuffer;
+
+struct i915_context
+{
+   struct pipe_context pipe;
+   struct i915_winsys *winsys;
+   struct draw_context *draw;
+
+   /* 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];
+   const struct i915_depth_stencil_state   *depth_stencil;
+   const struct i915_rasterizer_state      *rasterizer;
+
+   struct i915_fragment_shader *fs;
+
+   struct pipe_blend_color blend_color;
+   struct pipe_clip_state clip;
+   struct pipe_constant_buffer constants[PIPE_SHADER_TYPES];
+   struct pipe_framebuffer_state framebuffer;
+   struct pipe_poly_stipple poly_stipple;
+   struct pipe_scissor_state scissor;
+   struct i915_texture *texture[PIPE_MAX_SAMPLERS];
+   struct pipe_viewport_state viewport;
+   struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
+
+   unsigned dirty;
+
+   unsigned num_samplers;
+   unsigned num_textures;
+   unsigned num_vertex_elements;
+   unsigned num_vertex_buffers;
+
+   struct i915_batchbuffer *batch;
+
+   /** Vertex buffer */
+   struct pipe_buffer *vbo;
+   size_t vbo_offset;
+   unsigned vbo_flushed;
+
+   struct i915_state current;
+   unsigned hardware_dirty;
+   
+   unsigned debug;
+};
+
+/* A flag for each state_tracker state object:
+ */
+#define I915_NEW_VIEWPORT      0x1
+#define I915_NEW_RASTERIZER    0x2
+#define I915_NEW_FS            0x4
+#define I915_NEW_BLEND         0x8
+#define I915_NEW_CLIP          0x10
+#define I915_NEW_SCISSOR       0x20
+#define I915_NEW_STIPPLE       0x40
+#define I915_NEW_FRAMEBUFFER   0x80
+#define I915_NEW_ALPHA_TEST    0x100
+#define I915_NEW_DEPTH_STENCIL 0x200
+#define I915_NEW_SAMPLER       0x400
+#define I915_NEW_TEXTURE       0x800
+#define I915_NEW_CONSTANTS     0x1000
+#define I915_NEW_VBO           0x2000
+#define I915_NEW_VS            0x4000
+
+
+/* Driver's internally generated state flags:
+ */
+#define I915_NEW_VERTEX_FORMAT    0x10000
+
+
+/* Dirty flags for hardware emit
+ */
+#define I915_HW_STATIC            (1<<I915_CACHE_STATIC)
+#define I915_HW_DYNAMIC           (1<<I915_CACHE_DYNAMIC)
+#define I915_HW_SAMPLER           (1<<I915_CACHE_SAMPLER)
+#define I915_HW_MAP               (1<<I915_CACHE_MAP)
+#define I915_HW_PROGRAM           (1<<I915_CACHE_PROGRAM)
+#define I915_HW_CONSTANTS         (1<<I915_CACHE_CONSTANTS)
+#define I915_HW_IMMEDIATE         (1<<(I915_MAX_CACHE+0))
+#define I915_HW_INVARIENT         (1<<(I915_MAX_CACHE+1))
+
+
+/***********************************************************************
+ * i915_prim_emit.c: 
+ */
+struct draw_stage *i915_draw_render_stage( struct i915_context *i915 );
+
+
+/***********************************************************************
+ * i915_prim_vbuf.c: 
+ */
+struct draw_stage *i915_draw_vbuf_stage( struct i915_context *i915 );
+
+
+/***********************************************************************
+ * i915_state_emit.c: 
+ */
+void i915_emit_hardware_state(struct i915_context *i915 );
+
+
+
+/***********************************************************************
+ * i915_clear.c: 
+ */
+void i915_clear(struct pipe_context *pipe, struct pipe_surface *ps,
+               unsigned clearValue);
+
+
+/***********************************************************************
+ * i915_surface.c: 
+ */
+void i915_init_surface_functions( struct i915_context *i915 );
+
+void i915_init_state_functions( struct i915_context *i915 );
+void i915_init_flush_functions( struct i915_context *i915 );
+void i915_init_string_functions( struct i915_context *i915 );
+
+
+
+
+/***********************************************************************
+ * Inline conversion functions.  These are better-typed than the
+ * macros used previously:
+ */
+static INLINE struct i915_context *
+i915_context( struct pipe_context *pipe )
+{
+   return (struct i915_context *)pipe;
+}
+
+
+
+#endif