1 /**************************************************************************
3 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 **************************************************************************/
28 #define CMD_MI (0x0 << 29)
29 #define CMD_2D (0x2 << 29)
30 #define CMD_3D (0x3 << 29)
32 #define MI_BATCH_BUFFER_END (CMD_MI | 0xA << 23)
34 /* Stalls command execution waiting for the given events to have occurred. */
35 #define MI_WAIT_FOR_EVENT (CMD_MI | (0x3 << 23))
36 #define MI_WAIT_FOR_PLANE_B_FLIP (1<<6)
37 #define MI_WAIT_FOR_PLANE_A_FLIP (1<<2)
39 /* Primitive dispatch on 830-945 */
40 #define _3DPRIMITIVE (CMD_3D | (0x1f << 24))
41 #define PRIM_INDIRECT (1<<23)
42 #define PRIM_INLINE (0<<23)
43 #define PRIM_INDIRECT_SEQUENTIAL (0<<17)
44 #define PRIM_INDIRECT_ELTS (1<<17)
46 #define PRIM3D_TRILIST (0x0<<18)
47 #define PRIM3D_TRISTRIP (0x1<<18)
48 #define PRIM3D_TRISTRIP_RVRSE (0x2<<18)
49 #define PRIM3D_TRIFAN (0x3<<18)
50 #define PRIM3D_POLY (0x4<<18)
51 #define PRIM3D_LINELIST (0x5<<18)
52 #define PRIM3D_LINESTRIP (0x6<<18)
53 #define PRIM3D_RECTLIST (0x7<<18)
54 #define PRIM3D_POINTLIST (0x8<<18)
55 #define PRIM3D_DIB (0x9<<18)
56 #define PRIM3D_MASK (0x1f<<18)
58 #define XY_SETUP_BLT_CMD (CMD_2D | (0x01 << 22) | 6)
60 #define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22) | 4)
62 #define XY_SRC_COPY_BLT_CMD (CMD_2D | (0x53 << 22) | 6)
65 #define XY_BLT_WRITE_ALPHA (1 << 21)
66 #define XY_BLT_WRITE_RGB (1 << 20)
67 #define XY_SRC_TILED (1 << 15)
68 #define XY_DST_TILED (1 << 11)
71 #define BR13_565 (0x1 << 24)
72 #define BR13_8888 (0x3 << 24)
74 #define FENCE_LINEAR 0
75 #define FENCE_XMAJOR 1
76 #define FENCE_YMAJOR 2