Drop GLcontext typedef and use struct gl_context instead
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_ioctl.h
index 4e93804646a4f3ec947aa65a7599896c6e830c20..790205719b61995a1141015aec67c9793163c776 100644 (file)
@@ -38,9 +38,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "main/simple_list.h"
 #include "radeon_lock.h"
-#include "radeon_cs_legacy.h"
+#include "radeon_bocs_wrapper.h"
 
-extern void radeonEmitState( r100ContextPtr rmesa );
 extern void radeonEmitVertexAOS( r100ContextPtr rmesa,
                                 GLuint vertex_size,
                                 struct radeon_bo *bo,
@@ -51,7 +50,7 @@ extern void radeonEmitVbufPrim( r100ContextPtr rmesa,
                                GLuint primitive,
                                GLuint vertex_nr );
 
-extern void radeonFlushElts( GLcontext *ctx );
+extern void radeonFlushElts( struct gl_context *ctx );
                            
 
 extern GLushort *radeonAllocEltsOpenEnded( r100ContextPtr rmesa,
@@ -78,9 +77,9 @@ extern void radeonEmitWait( r100ContextPtr rmesa, GLuint flags );
 
 extern void radeonFlushCmdBuf( r100ContextPtr rmesa, const char * );
 
-extern void radeonFlush( GLcontext *ctx );
-extern void radeonFinish( GLcontext *ctx );
-extern void radeonInitIoctlFuncs( GLcontext *ctx );
+extern void radeonFlush( struct gl_context *ctx );
+extern void radeonFinish( struct gl_context *ctx );
+extern void radeonInitIoctlFuncs( struct gl_context *ctx );
 extern void radeonGetAllParams( r100ContextPtr rmesa );
 extern void radeonSetUpAtomList( r100ContextPtr rmesa );
 
@@ -104,7 +103,7 @@ do {                                                \
 do {                                                           \
    RADEON_NEWPRIM( rmesa );                                    \
    rmesa->hw.ATOM.dirty = GL_TRUE;                             \
-   rmesa->hw.is_dirty = GL_TRUE;                               \
+   rmesa->radeon.hw.is_dirty = GL_TRUE;                                \
 } while (0)
 
 #define RADEON_DB_STATE( ATOM )                                \
@@ -118,7 +117,7 @@ static INLINE int RADEON_DB_STATECHANGE(r100ContextPtr rmesa,
       GLuint *tmp;
       RADEON_NEWPRIM( rmesa );
       atom->dirty = GL_TRUE;
-      rmesa->hw.is_dirty = GL_TRUE;
+      rmesa->radeon.hw.is_dirty = GL_TRUE;
       tmp = atom->cmd; 
       atom->cmd = atom->lastcmd;
       atom->lastcmd = tmp;
@@ -128,30 +127,23 @@ static INLINE int RADEON_DB_STATECHANGE(r100ContextPtr rmesa,
       return 0;
 }
 
-/* Fire the buffered vertices no matter what.
- */
-#define RADEON_FIREVERTICES( rmesa )                   \
-do {                                                   \
-   if (rmesa->radeon.cmdbuf.cs->cdw || rmesa->radeon.dma.flush ) {     \
-      radeonFlush( rmesa->radeon.glCtx );                      \
-  }                                                    \
-} while (0)
-
 /* Command lengths.  Note that any time you ensure ELTS_BUFSZ or VBUF_BUFSZ
  * are available, you will also be adding an rmesa->state.max_state_size because
  * r200EmitState is called from within r200EmitVbufPrim and r200FlushElts.
  */
 #if RADEON_OLD_PACKETS
-#define AOS_BUFSZ(nr)  ((3 + ((nr / 2) * 3) + ((nr & 1) * 2)) * sizeof(int))
+#define AOS_BUFSZ(nr)  ((3 + ((nr / 2) * 3) + ((nr & 1) * 2))+nr*2)
 #define VERT_AOS_BUFSZ (0)
 #define ELTS_BUFSZ(nr) (24 + nr * 2)
-#define VBUF_BUFSZ     (6 * sizeof(int))
+#define VBUF_BUFSZ     (8)
 #else
-#define AOS_BUFSZ(nr)  ((3 + ((nr / 2) * 3) + ((nr & 1) * 2)) * sizeof(int))
-#define VERT_AOS_BUFSZ (5 * sizeof(int))
+#define AOS_BUFSZ(nr)  ((3 + ((nr / 2) * 3) + ((nr & 1) * 2) + nr*2))
+#define VERT_AOS_BUFSZ (5)
 #define ELTS_BUFSZ(nr) (16 + nr * 2)
-#define VBUF_BUFSZ     (4 * sizeof(int))
+#define VBUF_BUFSZ     (4)
 #endif
+#define SCISSOR_BUFSZ  (8)
+#define INDEX_BUFSZ    (7)
 
 
 static inline uint32_t cmdpacket3(int cmd_type)