Merge branch 'remove-intel-dri1'
[mesa.git] / src / mesa / drivers / dri / r200 / r200_context.h
index 80981135ac6844cd938befd9f044dbe4050f5562..17e4d8962eac59cbeb411038f62b7e8422edf295 100644 (file)
@@ -54,15 +54,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #endif
 
 #include "radeon_screen.h"
-#include "common_context.h"
-#include "common_misc.h"
+#include "radeon_common.h"
+
+#include "radeon_lock.h"
 
 struct r200_context;
 typedef struct r200_context r200ContextRec;
 typedef struct r200_context *r200ContextPtr;
 
-#include "r200_lock.h"
-
 #include "main/mm.h"
 
 struct r200_vertex_program {
@@ -468,10 +467,24 @@ struct r200_texture_state {
 #define PRF_STATE_SIZE    3
 
 
-struct r200_hw_state {
-   /* Head of the linked list of state atoms. */
-   struct radeon_state_atom atomlist;
+#define SCI_CMD_0         0
+#define SCI_RE_AUX        1
+#define SCI_CMD_1         2
+#define SCI_XY_1          3
+#define SCI_CMD_2         4
+#define SCI_XY_2          5
+#define SCI_STATE_SIZE    6
+
+#define R200_QUERYOBJ_CMD_0  0
+#define R200_QUERYOBJ_DATA_0 1
+#define R200_QUERYOBJ_CMDSIZE  2
 
+#define STP_CMD_0 0
+#define STP_DATA_0 1
+#define STP_CMD_1 2
+#define STP_STATE_SIZE 35
+
+struct r200_hw_state {
    /* Hardware state, stored as cmdbuf commands:  
     *   -- Need to doublebuffer for
     *           - reviving state after loss of context
@@ -479,6 +492,7 @@ struct r200_hw_state {
     */
    struct radeon_state_atom ctx;
    struct radeon_state_atom set;
+   struct radeon_state_atom sci;
    struct radeon_state_atom vte;
    struct radeon_state_atom lin;
    struct radeon_state_atom msk;
@@ -512,15 +526,12 @@ struct r200_hw_state {
    struct radeon_state_atom atf;
    struct radeon_state_atom spr;
    struct radeon_state_atom ptp;
-
-   int max_state_size; /* Number of bytes necessary for a full state emit. */
-   GLboolean is_dirty, all_dirty;
+   struct radeon_state_atom stp;
 };
 
 struct r200_state {
    /* Derived state for internal purposes:
     */
-   struct radeon_stipple_state stipple;
    struct r200_texture_state texture;
    GLuint envneeded;
 };
@@ -533,59 +544,20 @@ struct r200_state {
 struct r200_tcl_info {
    GLuint hw_primitive;
 
-/* hw can handle 12 components max */
-  struct radeon_aos aos[12];
-  //   struct radeon_dma_region *aos_components[12];
-   GLuint nr_aos_components;
-
-   GLuint *Elts;
-
-   struct radeon_bo *elt_dma_bo;
-   int elt_dma_offset; /** Offset into this buffer object, in bytes */
    int elt_used;
 
-   void (*flush) (GLcontext *ctx);
-   struct radeon_dma_region vertex_data[15];
 };
 
 
 /* r200_swtcl.c
  */
 struct r200_swtcl_info {
-   GLuint RenderIndex;
-   
-   /**
-    * Size of a hardware vertex.  This is calculated when \c ::vertex_attrs is
-    * installed in the Mesa state vector.
-    */
-   GLuint vertex_size;
 
-   /**
-    * Attributes instructing the Mesa TCL pipeline where / how to put vertex
-    * data in the hardware buffer.
-    */
-   struct tnl_attr_map vertex_attrs[VERT_ATTRIB_MAX];
 
-   /**
-    * Number of elements of \c ::vertex_attrs that are actually used.
-    */
-   GLuint vertex_attr_count;
-
-   /**
-    * Cached pointer to the buffer where Mesa will store vertex data.
-    */
-   GLubyte *verts;
-
-   /* Fallback rasterization functions
-    */
    radeon_point_func draw_point;
    radeon_line_func draw_line;
    radeon_tri_func draw_tri;
 
-   GLuint hw_primitive;
-   GLenum render_primitive;
-   GLuint numverts;
-
    /**
     * Offset of the 4UB color data within a hardware (swtcl) vertex.
     */
@@ -600,9 +572,6 @@ struct r200_swtcl_info {
     * Should Mesa project vertex data or will the hardware do it?
     */
    GLboolean needproj;
-
-   struct radeon_bo *bo;
-   void (*flush) (GLcontext *ctx);
 };
 
 
@@ -633,18 +602,11 @@ struct r200_context {
    /* Vertex buffers
     */
    struct radeon_ioctl ioctl;
-   struct radeon_dma dma;
    struct radeon_store store;
-   /* A full state emit as of the first state emit in the main store, in case
-    * the context is lost.
-    */
-   struct radeon_store backup_store;
 
    /* Clientdata textures;
     */
-  GLuint prefer_gart_client_texturing;
-
-   GLboolean save_on_next_emit;
+   GLuint prefer_gart_client_texturing;
 
    /* TCL stuff
     */
@@ -674,14 +636,14 @@ struct r200_context {
 #define R200_CONTEXT(ctx)              ((r200ContextPtr)(ctx->DriverCtx))
 
 
-extern void r200DestroyContext( __DRIcontextPrivate *driContextPriv );
+extern void r200DestroyContext( __DRIcontext *driContextPriv );
 extern GLboolean r200CreateContext( const __GLcontextModes *glVisual,
-                                   __DRIcontextPrivate *driContextPriv,
+                                   __DRIcontext *driContextPriv,
                                    void *sharedContextPrivate);
-extern GLboolean r200MakeCurrent( __DRIcontextPrivate *driContextPriv,
-                                 __DRIdrawablePrivate *driDrawPriv,
-                                 __DRIdrawablePrivate *driReadPriv );
-extern GLboolean r200UnbindContext( __DRIcontextPrivate *driContextPriv );
+extern GLboolean r200MakeCurrent( __DRIcontext *driContextPriv,
+                                 __DRIdrawable *driDrawPriv,
+                                 __DRIdrawable *driReadPriv );
+extern GLboolean r200UnbindContext( __DRIcontext *driContextPriv );
 
 /* ================================================================
  * Debugging: