Merge commit 'origin/master' into gallium-0.2
[mesa.git] / src / gallium / drivers / i965simple / brw_reg.h
1 /**************************************************************************
2 *
3 * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
4 * All Rights Reserved.
5 *
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:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * of the Software.
17 *
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.
25 *
26 **************************************************************************/
27
28 #define CMD_MI (0x0 << 29)
29 #define CMD_2D (0x2 << 29)
30 #define CMD_3D (0x3 << 29)
31
32 #define MI_BATCH_BUFFER_END (CMD_MI | 0xA << 23)
33
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)
38
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)
45
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)
57
58 #define XY_SETUP_BLT_CMD (CMD_2D | (0x01 << 22) | 6)
59
60 #define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22) | 4)
61
62 #define XY_SRC_COPY_BLT_CMD (CMD_2D | (0x53 << 22) | 6)
63
64 /* BR00 */
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)
69
70 /* BR13 */
71 #define BR13_565 (0x1 << 24)
72 #define BR13_8888 (0x3 << 24)
73
74 #define FENCE_LINEAR 0
75 #define FENCE_XMAJOR 1
76 #define FENCE_YMAJOR 2