brw_defines.h revision 70be48dff6bb68c61285641e4d976bfd53e0f00c
19f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/*
29f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt Copyright (C) Intel Corp.  2006.  All Rights Reserved.
39f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
49f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt develop this 3D driver.
59f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
69f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt Permission is hereby granted, free of charge, to any person obtaining
79f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt a copy of this software and associated documentation files (the
89f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt "Software"), to deal in the Software without restriction, including
99f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt without limitation the rights to use, copy, modify, merge, publish,
109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt distribute, sublicense, and/or sell copies of the Software, and to
119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt permit persons to whom the Software is furnished to do so, subject to
129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt the following conditions:
139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt The above copyright notice and this permission notice (including the
159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt next paragraph) shall be included in all copies or substantial
169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt portions of the Software.
179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt **********************************************************************/
279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt /*
289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt  * Authors:
299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt  *   Keith Whitwell <keith@tungstengraphics.com>
309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt  */
319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#ifndef BRW_DEFINES_H
349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFINES_H
359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* 3D state:
379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */
389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DOP_3DSTATE_PIPELINED       0x0
399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DOP_3DSTATE_NONPIPELINED    0x1
409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DOP_3DCONTROL               0x2
419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DOP_3DPRIMITIVE             0x3
429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_PIPELINED_POINTERS       0x00
449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_BINDING_TABLE_POINTERS   0x01
459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_VERTEX_BUFFERS           0x08
469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_VERTEX_ELEMENTS          0x09
479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_INDEX_BUFFER             0x0A
489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_VF_STATISTICS            0x0B
499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_DRAWING_RECTANGLE            0x00
509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_CONSTANT_COLOR               0x01
519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_SAMPLER_PALETTE_LOAD         0x02
529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_CHROMA_KEY                   0x04
539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_DEPTH_BUFFER                 0x05
549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_POLY_STIPPLE_OFFSET          0x06
559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_POLY_STIPPLE_PATTERN         0x07
569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_LINE_STIPPLE                 0x08
579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP    0x09
589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DCONTROL    0x00
599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_NOWRITE          0x00
619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITEIMMEDIATE   0x01
629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITEDEPTH       0x02
639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITETIMESTAMP   0x03
649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_GTTWRITE_PROCESS_LOCAL 0x00
669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_GTTWRITE_GLOBAL        0x01
679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POINTLIST         0x01
699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELIST          0x02
709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP         0x03
719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRILIST           0x04
729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP          0x05
739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRIFAN            0x06
749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_QUADLIST          0x07
759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_QUADSTRIP         0x08
769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELIST_ADJ      0x09
779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_ADJ     0x0A
789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRILIST_ADJ       0x0B
799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP_ADJ      0x0C
809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP_REVERSE  0x0D
819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POLYGON           0x0E
829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_RECTLIST          0x0F
839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELOOP          0x10
849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POINTLIST_BF      0x11
859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_CONT    0x12
869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_BF      0x13
879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_CONT_BF 0x14
889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL 0
919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     1
929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_2     0
949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_4     1
959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_6     2
969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_8     3
979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_10    4
989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_12    5
999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_14    6
1009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_16    7
1019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_ONE                 0x1
1039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_COLOR           0x2
1049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_ALPHA           0x3
1059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_DST_ALPHA           0x4
1069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_DST_COLOR           0x5
1079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
1089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_CONST_COLOR         0x7
1099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_CONST_ALPHA         0x8
1109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC1_COLOR          0x9
1119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC1_ALPHA          0x0A
1129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_ZERO                0x11
1139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC_COLOR       0x12
1149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC_ALPHA       0x13
1159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_DST_ALPHA       0x14
1169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_DST_COLOR       0x15
1179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_CONST_COLOR     0x17
1189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_CONST_ALPHA     0x18
1199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC1_COLOR      0x19
1209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
1219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_ADD               0
1239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_SUBTRACT          1
1249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_REVERSE_SUBTRACT  2
1259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_MIN               3
1269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_MAX               4
1279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALPHATEST_FORMAT_UNORM8         0
1299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALPHATEST_FORMAT_FLOAT32        1
1309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHROMAKEY_KILL_ON_ANY_MATCH  0
1329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHROMAKEY_REPLACE_BLACK      1
1339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_API_OGL     0
1359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_API_DX      1
1369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_NORMAL              0
1389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_CLIP_ALL            1
1399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_CLIP_NON_REJECTED   2
1409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_REJECT_ALL          3
1419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_ACCEPT_ALL          4
1422995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_CLIPMODE_KERNEL_CLIP         5
1439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_NDCSPACE     0
1459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_SCREENSPACE  1
1469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_ALWAYS       0
1489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_NEVER        1
1499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_LESS         2
1509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_EQUAL        3
1519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_LEQUAL       4
1529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_GREATER      5
1539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_NOTEQUAL     6
1549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_GEQUAL       7
1559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_HALF     0
1579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_1        1
1589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_2        2
1599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_4        3
1609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_BOTH        0
1629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_NONE        1
1639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_FRONT       2
1649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_BACK        3
1659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFAULTCOLOR_R8G8B8A8_UNORM      0
1679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFAULTCOLOR_R32G32B32A32_FLOAT  1
1689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT     0
1709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D32_FLOAT                1
1719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT        2
1729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D16_UNORM                5
1739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FLOATING_POINT_IEEE_754        0
1759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FLOATING_POINT_NON_IEEE_754    1
1769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FRONTWINDING_CW      0
1789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FRONTWINDING_CCW     1
1799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
180505453a04e8ba5e394c34401bd9ec320ffce2423Zou Nan hai#define BRW_SPRITE_POINT_ENABLE  16
181505453a04e8ba5e394c34401bd9ec320ffce2423Zou Nan hai
1829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_BYTE     0
1839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_WORD     1
1849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_DWORD    2
1859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
1869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_CLEAR            0
1879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NOR              1
1889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND_INVERTED     2
1899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_COPY_INVERTED    3
1909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND_REVERSE      4
1919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_INVERT           5
1929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_XOR              6
1939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NAND             7
1949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND              8
1959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_EQUIV            9
1969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NOOP             10
1979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR_INVERTED      11
1989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_COPY             12
1999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR_REVERSE       13
2009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR               14
2019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_SET              15
2029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_NEAREST        0x0
2049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_LINEAR         0x1
2059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_ANISOTROPIC    0x2
2069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_NONE        0
2089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_NEAREST     1
2099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_LINEAR      3
2109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FRONT_FACING     0
2129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_BACK_FACING      1
2139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_ALWAYS     0x0
2159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_NEVER      0x1
2169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_LESS       0x2
2179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_EQUAL      0x3
2189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_LEQUAL     0x4
2199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_GREATER    0x5
2209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_NOTEQUAL   0x6
2219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_GEQUAL     0x7
2229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_0    0
2249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_1    1
2259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_2    2
2269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RASTRULE_UPPER_LEFT  0
2289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RASTRULE_UPPER_RIGHT 1
229cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison/* These are listed as "Reserved, but not seen as useful"
230cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * in Intel documentation (page 212, "Point Rasterization Rule",
231cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * section 7.4 "SF Pipeline State Summary", of document
232cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * "Intel® 965 Express Chipset Family and Intel® G35 Express
233cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * Chipset Graphics Controller Programmer's Reference Manual,
234cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * Volume 2: 3D/Media", Revision 1.0b as of January 2008,
235cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * available at
236cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison *     http://intellinuxgraphics.org/documentation.html
237cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * at the time of this writing).
238cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison *
239cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * These appear to be supported on at least some
240cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * i965-family devices, and the BRW_RASTRULE_LOWER_RIGHT
241cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * is useful when using OpenGL to render to a FBO
242cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * (which has the pixel coordinate Y orientation inverted
243cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * with respect to the normal OpenGL pixel coordinate system).
244cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison */
245cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison#define BRW_RASTRULE_LOWER_LEFT  2
246cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison#define BRW_RASTRULE_LOWER_RIGHT 3
2479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_UNORM    0
2499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_SNORM    1
2509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_FORMAT   2
2519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_KEEP               0
2539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_ZERO               1
2549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_REPLACE            2
2559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INCRSAT            3
2569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_DECRSAT            4
2579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INCR               5
2589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_DECR               6
2599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INVERT             7
2609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_MIPMAPLAYOUT_BELOW   0
2629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_MIPMAPLAYOUT_RIGHT   1
2639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
2649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_FLOAT             0x000
2659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SINT              0x001
2669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_UINT              0x002
2679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_UNORM             0x003
2689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SNORM             0x004
2699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64_FLOAT                   0x005
2709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32X32_FLOAT             0x006
2719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SSCALED           0x007
2729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_USCALED           0x008
2739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_FLOAT                0x040
2749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SINT                 0x041
2759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_UINT                 0x042
2769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_UNORM                0x043
2779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SNORM                0x044
2789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SSCALED              0x045
2799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_USCALED              0x046
2809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_UNORM             0x080
2819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SNORM             0x081
2829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SINT              0x082
2839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_UINT              0x083
2849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_FLOAT             0x084
2859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_FLOAT                   0x085
2869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SINT                    0x086
2879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_UINT                    0x087
2889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS       0x088
2899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT        0x089
2909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32A32_FLOAT                   0x08A
2919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_UNORM                   0x08B
2929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SNORM                   0x08C
2939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64_FLOAT                      0x08D
2949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16X16_UNORM             0x08E
2959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16X16_FLOAT             0x08F
2969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A32X32_FLOAT                   0x090
2979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32X32_FLOAT                   0x091
2989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I32X32_FLOAT                   0x092
2999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SSCALED           0x093
3009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_USCALED           0x094
3019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SSCALED                 0x095
3029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_USCALED                 0x096
3039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM                 0x0C0
3049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB            0x0C1
3059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM              0x0C2
3069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB         0x0C3
3079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UINT               0x0C4
3089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM       0x0C5
3099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM                 0x0C7
3109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB            0x0C8
3119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SNORM                 0x0C9
3129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SINT                  0x0CA
3139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UINT                  0x0CB
3149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_UNORM                   0x0CC
3159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SNORM                   0x0CD
3169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SINT                    0x0CE
3179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_UINT                    0x0CF
3189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_FLOAT                   0x0D0
3199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM              0x0D1
3209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB         0x0D2
3219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R11G11B10_FLOAT                0x0D3
3229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SINT                       0x0D6
3239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_UINT                       0x0D7
3249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_FLOAT                      0x0D8
3259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R24_UNORM_X8_TYPELESS          0x0D9
3269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_X24_TYPELESS_G8_UINT           0x0DA
3279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16A16_UNORM                   0x0DF
3289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I24X8_UNORM                    0x0E0
3299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L24X8_UNORM                    0x0E1
3309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A24X8_UNORM                    0x0E2
3319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I32_FLOAT                      0x0E3
3329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32_FLOAT                      0x0E4
3339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A32_FLOAT                      0x0E5
3349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM                 0x0E9
3359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB            0x0EA
3369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM                 0x0EB
3379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB            0x0EC
3389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R9G9B9E5_SHAREDEXP             0x0ED
3399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10X2_UNORM              0x0EE
3409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16A16_FLOAT                   0x0F0
3419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_UNORM                      0x0F1
3429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SNORM                      0x0F2
3439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10X2_USCALED            0x0F3
3449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SSCALED               0x0F4
3459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_USCALED               0x0F5
3469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SSCALED                 0x0F6
3479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_USCALED                 0x0F7
3489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SSCALED                    0x0F8
3499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_USCALED                    0x0F9
3509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G6R5_UNORM                   0x100
3519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G6R5_UNORM_SRGB              0x101
3529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM                 0x102
3539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB            0x103
3549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM                 0x104
3559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB            0x105
3569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_UNORM                     0x106
3579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SNORM                     0x107
3589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SINT                      0x108
3599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_UINT                      0x109
3609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_UNORM                      0x10A
3619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SNORM                      0x10B
3629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SINT                       0x10C
3639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_UINT                       0x10D
3649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_FLOAT                      0x10E
3659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I16_UNORM                      0x111
3669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16_UNORM                      0x112
3679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A16_UNORM                      0x113
3689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L8A8_UNORM                     0x114
3699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I16_FLOAT                      0x115
3709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16_FLOAT                      0x116
371a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_A16_FLOAT                      0x117
372a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_L8A8_UNORM_SRGB                0x118
373a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_R5G5_SNORM_B6_UNORM            0x119
374a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM                 0x11A
3759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB            0x11B
3769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SSCALED                   0x11C
3779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_USCALED                   0x11D
3789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SSCALED                    0x11E
3799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_USCALED                    0x11F
3809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_UNORM                       0x140
3819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SNORM                       0x141
3829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SINT                        0x142
3839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_UINT                        0x143
3849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A8_UNORM                       0x144
3859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I8_UNORM                       0x145
3869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L8_UNORM                       0x146
3879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_P4A4_UNORM                     0x147
3889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A4P4_UNORM                     0x148
3899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SSCALED                     0x149
3909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_USCALED                     0x14A
391a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_L8_UNORM_SRGB                  0x14C
3929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R1_UINT                        0x181
3939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_NORMAL                   0x182
3949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPUVY                  0x183
3959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC1_UNORM                      0x186
3969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC2_UNORM                      0x187
3979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC3_UNORM                      0x188
3989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC4_UNORM                      0x189
3999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC5_UNORM                      0x18A
4009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC1_UNORM_SRGB                 0x18B
4019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC2_UNORM_SRGB                 0x18C
4029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC3_UNORM_SRGB                 0x18D
4039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_MONO8                          0x18E
4049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPUV                   0x18F
4059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPY                    0x190
4069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_DXT1_RGB                       0x191
4079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_FXT1                           0x192
4089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_UNORM                   0x193
4099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_SNORM                   0x194
4109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_SSCALED                 0x195
4119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_USCALED                 0x196
4129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64B64A64_FLOAT             0x197
4139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64B64_FLOAT                0x198
4149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC4_SNORM                      0x199
4159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC5_SNORM                      0x19A
4169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_UNORM                0x19C
4179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_SNORM                0x19D
4189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_SSCALED              0x19E
4199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_USCALED              0x19F
4209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACERETURNFORMAT_FLOAT32  0
4229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACERETURNFORMAT_S1       1
4239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_1D      0
4259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_2D      1
4269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_3D      2
4279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_CUBE    3
4289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_BUFFER  4
4299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_NULL    7
4309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_WRAP            0
4329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_MIRROR          1
4339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CLAMP           2
4349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CUBE            3
4359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CLAMP_BORDER    4
4369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_MIRROR_ONCE     5
4379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_PRIORITY_NORMAL   0
4399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_PRIORITY_HIGH     1
4409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TILEWALK_XMAJOR                 0
4429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TILEWALK_YMAJOR                 1
4439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTEX_SUBPIXEL_PRECISION_8BITS  0
4459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTEX_SUBPIXEL_PRECISION_4BITS  1
4469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* Execution Unit (EU) defines
4489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */
4499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALIGN_1   0
4519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALIGN_16  1
4529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ADDRESS_DIRECT                        0
4549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ADDRESS_REGISTER_INDIRECT_REGISTER    1
4559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_X     0
4579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_Y     1
4589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_Z     2
4599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_W     3
4609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_NONE          0
4629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_2NDHALF       1
4639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_COMPRESSED    2
4649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NONE  0
4669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_Z     1
4679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NZ    2
4689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_EQ    1	/* Z */
4699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NEQ   2	/* NZ */
4709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_G     3
4719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_GE    4
4729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_L     5
4739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_LE    6
4741d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_CONDITIONAL_R     7
4759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_O     8
4761d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_CONDITIONAL_U     9
4779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEBUG_NONE        0
4799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEBUG_BREAKPOINT  1
4809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NORMAL         0
4829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NOTCLEARED     1
4839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NOTCHECKED     2
4849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_DISABLE        3
4859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_1     0
4879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_2     1
4889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_4     2
4899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_8     3
4909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_16    4
4919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_32    5
4929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_0   0
4949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_1   1
4959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_2   2
4969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_4   3
4979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
4989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INSTRUCTION_NORMAL    0
4999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INSTRUCTION_SATURATE  1
5009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MASK_ENABLE   0
5029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MASK_DISABLE  1
5039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MOV        1
5059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SEL        2
5069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_NOT        4
5079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_AND        5
5089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_OR         6
5099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_XOR        7
5109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SHR        8
5119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SHL        9
5129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RSR        10
5139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RSL        11
5149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ASR        12
5159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_CMP        16
5161d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_OPCODE_CMPN       17
5179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_JMPI       32
5189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_IF         34
5199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_IFF        35
5209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ELSE       36
5219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ENDIF      37
5229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DO         38
5239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_WHILE      39
5249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_BREAK      40
5259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_CONTINUE   41
5269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_HALT       42
5279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MSAVE      44
5289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MRESTORE   45
5299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_PUSH       46
5309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_POP        47
5319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_WAIT       48
5329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SEND       49
5339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ADD        64
5349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MUL        65
5359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_AVG        66
5369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_FRC        67
5379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDU       68
5389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDD       69
5399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDE       70
5409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDZ       71
5419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MAC        72
5429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MACH       73
5439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_LZD        74
5449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SAD2       80
5459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SADA2      81
5469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP4        84
5479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DPH        85
5489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP3        86
5499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP2        87
5509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DPA2       88
5519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_LINE       89
5529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_NOP        126
5539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_NONE             0
5559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_NORMAL           1
5569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANYV             2
5579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALLV             3
5589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY2H            4
5599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL2H            5
5609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY4H            6
5619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL4H            7
5629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY8H            8
5639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL8H            9
5649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY16H           10
5659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL16H           11
5669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_X     2
5679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_Y     3
5689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_Z     4
5699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_W     5
5709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_ANY4H           6
5719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_ALL4H           7
5729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARCHITECTURE_REGISTER_FILE    0
5749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_GENERAL_REGISTER_FILE         1
5759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_REGISTER_FILE         2
5769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_IMMEDIATE_VALUE               3
5779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UD  0
5799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_D   1
5809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UW  2
5819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_W   3
5829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UB  4
5839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_B   5
5849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_VF  5	/* packed float vector, immediates only? */
5859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_HF  6
5869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_V   6	/* packed int vector, immediates only, uword dest only */
5879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_F   7
5889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
5899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_NULL                  0x00
5909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_ADDRESS               0x10
5919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_ACCUMULATOR           0x20
5929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_FLAG                  0x30
5939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK                  0x40
5949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK_STACK            0x50
5959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK_STACK_DEPTH      0x60
5969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_STATE                 0x70
5979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_CONTROL               0x80
5989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_NOTIFICATION_COUNT    0x90
5999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_IP                    0xA0
6009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_AMASK   0
6029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_IMASK   1
6039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LMASK   2
6049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CMASK   3
6059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_NORMAL     0
6099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_ATOMIC     1
6109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_SWITCH     2
6119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_0                 0
6139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_1                 1
6149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_2                 2
6159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_4                 3
6169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_8                 4
6179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_16                5
6189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_32                6
6199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_64                7
6209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_128               8
6219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_256               9
6229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL   0xF
6239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_1       0
6259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_2       1
6269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_4       2
6279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_8       3
6289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_16      4
6299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_1K      0
6319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_2K      1
6329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_4K      2
6339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_8K      3
6349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_16K     4
6359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_32K     5
6369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_64K     6
6379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_128K    7
6389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_256K    8
6399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_512K    9
6409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_1M      10
6419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_2M      11
6429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FACING_FRONT      0
6449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FACING_BACK       1
6459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_NULL               0
6479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_MATH               1
6489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_SAMPLER            2
6499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_GATEWAY            3
6509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_DATAPORT_READ      4
6519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_DATAPORT_WRITE     5
6529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_URB                6
6539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_THREAD_SPAWNER     7
6549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_FLOAT32     0
6569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_UINT32      2
6579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_SINT32      3
6589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE              0
6609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE             0
6619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS        0
6629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_KILLPIX             1
6639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD        1
6649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD         1
6659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS  2
6669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS    2
6679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE    0
6689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE     2
6699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_RESINFO           2
6709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_RESINFO             2
6719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_RESINFO            2
6729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_LD                3
6739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_LD                  3
6749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_LD                 3
6759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6764e50ce35ee1376062de2c6fa69da144be30a61e2Eric Anholt#define BRW_SAMPLER_MESSAGE_SAMPLE_IGDNG            0
6774e50ce35ee1376062de2c6fa69da144be30a61e2Eric Anholt#define BRW_SAMPLER_MESSAGE_SAMPLE_BIAS_IGDNG       1
6784e50ce35ee1376062de2c6fa69da144be30a61e2Eric Anholt#define BRW_SAMPLER_MESSAGE_SAMPLE_LOD_IGDNG        2
6794e50ce35ee1376062de2c6fa69da144be30a61e2Eric Anholt#define BRW_SAMPLER_MESSAGE_SAMPLE_COMPARE_IGDNG    3
6802995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao
6812995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao/* for IGDNG only */
6822995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD4X2                   0
6832995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD8                     1
6842995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD16                    2
6852995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD32_64                 3
6862995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao
6879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDLOW   0
6889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDHIGH  1
6899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_2_OWORDS     2
6909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_4_OWORDS     3
6919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_8_OWORDS     4
6929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_DUAL_BLOCK_1OWORD     0
6949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS    2
6959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS   2
6979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS  3
6989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
6999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ          0
7009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ     1
7019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_DWORD_BLOCK_READ          2
7029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ      3
7039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_DATA_CACHE      0
7059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_RENDER_CACHE    1
7069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_SAMPLER_CACHE   2
7079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE                0
7099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED     1
7109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01         2
7119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23         3
7129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01       4
7139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE                0
7159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE           1
7169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_BLOCK_WRITE                2
7179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE            3
7189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE              4
7199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE     5
7209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE               7
7219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INV                              1
7239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_LOG                              2
7249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_EXP                              3
7259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SQRT                             4
7269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_RSQ                              5
7279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SIN                              6 /* was 7 */
7289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_COS                              7 /* was 8 */
7299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SINCOS                           8 /* was 6 */
7309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_TAN                              9
7319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_POW                              10
7329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER   11
7339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT                 12
7349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_REMAINDER                13
7359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_INTEGER_UNSIGNED     0
7379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_INTEGER_SIGNED       1
7389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_PRECISION_FULL        0
7409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_PRECISION_PARTIAL     1
7419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_SATURATE_NONE         0
7439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_SATURATE_SATURATE     1
7449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_DATA_VECTOR  0
7469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_DATA_SCALAR  1
7479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_OPCODE_WRITE  0
7499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_NONE          0
7519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_INTERLEAVE    1
7529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_TRANSPOSE     2
7539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_1K     0
7559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_2K     1
7569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_4K     2
7579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_8K     3
7589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_16K    4
7599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_32K    5
7609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_64K    6
7619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_128K   7
7629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_256K   8
7639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_512K   9
7649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_1M     10
7659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_2M     11
7669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_URB_FENCE                 0x6000
771d0415a5a01c1a8c2c2a389d977401a7f6cee031bEric Anholt#define CMD_CS_URB_STATE              0x6001
7729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_CONST_BUFFER              0x6002
7739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_STATE_BASE_ADDRESS        0x6101
7759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_STATE_INSN_POINTER        0x6102
7768e444fb9e2685e3eac42beb848b08e91dc20c88aXiang, Haihao#define CMD_PIPELINE_SELECT_965       0x6104
77792c075eeb7c330ea420400d1c2bae57356b19f03Xiang, Haihao#define CMD_PIPELINE_SELECT_GM45      0x6904
7789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
7799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_PIPELINED_STATE_POINTERS  0x7800
7809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_BINDING_TABLE_PTRS        0x7801
7819dce60f35b25f4f5605b22d75447bac5d9f55515Eric Anholt# define GEN6_BINDING_TABLE_MODIFY_VS	(1 << 8)
7829dce60f35b25f4f5605b22d75447bac5d9f55515Eric Anholt# define GEN6_BINDING_TABLE_MODIFY_GS	(1 << 9)
7839dce60f35b25f4f5605b22d75447bac5d9f55515Eric Anholt# define GEN6_BINDING_TABLE_MODIFY_PS	(1 << 10)
784931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt
7859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_VERTEX_BUFFER             0x7808
786931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_INDEX_SHIFT		27
787ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_INDEX_SHIFT		26
788931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_ACCESS_VERTEXDATA	(0 << 26)
789931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_ACCESS_INSTANCEDATA	(1 << 26)
790ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_ACCESS_VERTEXDATA	(0 << 20)
791ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_ACCESS_INSTANCEDATA	(1 << 20)
792931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_PITCH_SHIFT		0
793931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt
7949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_VERTEX_ELEMENT            0x7809
795931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_INDEX_SHIFT		27
796ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VE0_INDEX_SHIFT		26
797931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_FORMAT_SHIFT		16
798931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_VALID			(1 << 26)
799ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VE0_VALID			(1 << 25)
800931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_SRC_OFFSET_SHIFT	0
801931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_NOSTORE	0
802931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_SRC	1
803931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_0	2
804931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_1_FLT	3
805931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_1_INT	4
806931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_VID	5
807931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_IID	6
808931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_PID	7
809931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_0_SHIFT	28
810931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_1_SHIFT	24
811931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_2_SHIFT	20
812931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_3_SHIFT	16
813931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_DST_OFFSET_SHIFT	0
814931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt
8159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_INDEX_BUFFER              0x780a
816ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt#define CMD_VF_STATISTICS_965          0x780b
81792c075eeb7c330ea420400d1c2bae57356b19f03Xiang, Haihao#define CMD_VF_STATISTICS_GM45        0x680b
818ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt#define CMD_3D_CC_STATE_POINTERS      0x780e /* GEN6+ */
819ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt
820c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt#define CMD_URB					0x7805 /* GEN6+ */
821c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_VS_SIZE_SHIFT				16
822c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_VS_ENTRIES_SHIFT			0
823c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_GS_SIZE_SHIFT				8
824c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_GS_ENTRIES_SHIFT			0
825c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt
8261ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt#define CMD_VIEWPORT_STATE_POINTERS			0x780d /* GEN6+ */
8271ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_CC_VIEWPORT_MODIFY			(1 << 12)
8281ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_SF_VIEWPORT_MODIFY			(1 << 11)
8291ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_CLIP_VIEWPORT_MODIFY			(1 << 10)
8301ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt
83164e0c586a74553b2941f18feb199d8cddb192102Eric Anholt#define CMD_3D_SCISSOR_STATE_POINTERS		0x780f /* GEN6+ */
83264e0c586a74553b2941f18feb199d8cddb192102Eric Anholt
833ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt#define CMD_3D_VS_STATE		      0x7810 /* GEN6+ */
834520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW2 */
835ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_SPF_MODE				(1 << 31)
836ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_VECTOR_MASK_ENABLE			(1 << 30)
837ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_SAMPLER_COUNT_SHIFT			27
838ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
839520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW4 */
840d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_VS_DISPATCH_START_GRF_SHIFT		20
841ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_URB_READ_LENGTH_SHIFT			11
842d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT		4
843a935cb2acafab199ac5ed4f2484af77be2af6363Eric Anholt/* DW5 */
844ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_MAX_THREADS_SHIFT			25
845ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_STATISTICS_ENABLE			(1 << 10)
846ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_CACHE_DISABLE				(1 << 1)
847ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_ENABLE					(1 << 0)
848ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt
849520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt#define CMD_3D_GS_STATE		      0x7811 /* GEN6+ */
850520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW2 */
851520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SPF_MODE				(1 << 31)
852520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_VECTOR_MASK_ENABLE			(1 << 30)
853520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SAMPLER_COUNT_SHIFT			27
854520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
855520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW4 */
856520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_URB_READ_LENGTH_SHIFT			11
857d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT		4
858da577ee8800b940fcf416716c13133cd43c3d035Eric Anholt# define GEN6_GS_DISPATCH_START_GRF_SHIFT		0
859520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW5 */
860520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_MAX_THREADS_SHIFT			25
861520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_STATISTICS_ENABLE			(1 << 10)
862520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SO_STATISTICS_ENABLE			(1 << 9)
863520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_RENDERING_ENABLE			(1 << 8)
864520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW6 */
865520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_ENABLE					(1 << 15)
866520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt
867f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt#define CMD_3D_CLIP_STATE		      0x7812 /* GEN6+ */
868f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW1 */
869f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_STATISTICS_ENABLE			(1 << 10)
870f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW2 */
871f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_ENABLE				(1 << 31)
872f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_API_OGL				(1 << 30)
873f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_XY_TEST				(1 << 28)
874f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_Z_TEST				(1 << 27)
875f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_GB_TEST				(1 << 26)
876f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_NORMAL				(0 << 13)
877f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_REJECT_ALL			(3 << 13)
878f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_ACCEPT_ALL			(4 << 13)
879f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_PERSPECTIVE_DIVIDE_DISABLE		(1 << 9)
880f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_BARYCENTRIC_ENABLE			(1 << 8)
881f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_TRI_PROVOKE_SHIFT			4
882f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_LINE_PROVOKE_SHIFT			2
883f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_TRIFAN_PROVOKE_SHIFT			0
884f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW3 */
885f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MIN_POINT_WIDTH_SHIFT		17
886f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MAX_POINT_WIDTH_SHIFT		6
887f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt
88870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt#define CMD_3D_SF_STATE				0x7813 /* GEN6+ */
88970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW1 */
89070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_NUM_OUTPUTS_SHIFT			22
89170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_SWIZZLE_ENABLE				(1 << 21)
89270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_POINT_SPRITE_LOWERLEFT			(1 << 20)
89370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_URB_ENTRY_READ_LENGTH_SHIFT		11
89470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_URB_ENTRY_READ_OFFSET_SHIFT		4
89570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW2 */
89670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LEGACY_GLOBAL_DEPTH_BIAS		(1 << 11)
89770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_STATISTICS_ENABLE			(1 << 10)
89870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_SOLID		(1 << 9)
89970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_WIREFRAME		(1 << 8)
90070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_POINT		(1 << 7)
90170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_SOLID				(0 << 5)
90270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_WIREFRAME			(1 << 5)
90370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_POINT				(2 << 5)
90470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_SOLID				(0 << 3)
90570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_WIREFRAME				(1 << 3)
90670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_POINT				(2 << 3)
90770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VIEWPORT_TRANSFORM_ENABLE		(1 << 1)
90870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_WINDING_CCW				(1 << 0)
90970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW3 */
91070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_ENABLE				(1 << 31)
91170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_BOTH				(0 << 29)
91270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_NONE				(1 << 29)
91370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_FRONT				(2 << 29)
91470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_BACK				(3 << 29)
91570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_WIDTH_SHIFT			18 /* U3.7 */
91670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_0_5			(0 << 16)
91770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_1_0			(1 << 16)
91870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_2_0			(2 << 16)
91970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_4_0			(3 << 16)
92070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_SCISSOR_ENABLE				(1 << 11)
92170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_OFF_PIXEL			(0 << 8)
92270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_OFF_PATTERN			(1 << 8)
92370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_ON_PIXEL			(2 << 8)
92470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_ON_PATTERN			(3 << 8)
92570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW4 */
92670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_TRI_PROVOKE_SHIFT			29
92770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_PROVOKE_SHIFT			27
92870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_TRIFAN_PROVOKE_SHIFT			25
92970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_MODE_MANHATTAN			(0 << 14)
93070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_MODE_TRUE			(1 << 14)
93170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VERTEX_SUBPIXEL_8BITS			(0 << 12)
93270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VERTEX_SUBPIXEL_4BITS			(1 << 12)
93370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_USE_STATE_POINT_WIDTH			(1 << 11)
93470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_POINT_WIDTH_SHIFT			0 /* U8.3 */
93570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW5: depth offset constant */
93670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW6: depth offset scale */
93770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW7: depth offset clamp */
93870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW8 */
93970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_W				(1 << 31)
94070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_Z				(1 << 30)
94170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_Y				(1 << 29)
94270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_X				(1 << 28)
94370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_CONST_SOURCE_SHIFT			25
94470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_SWIZZLE_SHIFT			22
94570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_SOURCE_SHIFT			16
94670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_W				(1 << 15)
94770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_Z				(1 << 14)
94870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_Y				(1 << 13)
94970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_X				(1 << 12)
95070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_CONST_SOURCE_SHIFT			9
95170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_SWIZZLE_SHIFT			6
95270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_SOURCE_SHIFT			0
95370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW16: Point sprite texture coordinate enables */
95470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW17: Constant interpolation enables */
95570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW18: attr 0-7 wrap shortest enables */
95670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW19: attr 8-16 wrap shortest enables */
95770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt
958ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt#define CMD_3D_CONSTANT_VS_STATE	      0x7815 /* GEN6+ */
959520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt#define CMD_3D_CONSTANT_GS_STATE	      0x7816 /* GEN6+ */
960520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_3_ENABLE			(1 << 15)
961520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_2_ENABLE			(1 << 14)
962520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_1_ENABLE			(1 << 13)
963520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_0_ENABLE			(1 << 12)
9649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_DRAW_RECT                 0x7900
9669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_BLEND_CONSTANT_COLOR      0x7901
9679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_CHROMA_KEY                0x7904
9689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_DEPTH_BUFFER              0x7905
9699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_POLY_STIPPLE_OFFSET       0x7906
9709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_POLY_STIPPLE_PATTERN      0x7907
9719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_LINE_STIPPLE_PATTERN      0x7908
9729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_GLOBAL_DEPTH_OFFSET_CLAMP 0x7909
9738e444fb9e2685e3eac42beb848b08e91dc20c88aXiang, Haihao#define CMD_AA_LINE_PARAMETERS        0x790a
9749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_PIPE_CONTROL              0x7a00
9769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_3D_PRIM                   0x7b00
9789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_MI_FLUSH                  0x0200
9809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* Various values from the R0 vertex header:
9839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */
9849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define R02_PRIM_END    0x1
9859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define R02_PRIM_START  0x2
9869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9878e444fb9e2685e3eac42beb848b08e91dc20c88aXiang, Haihao#include "intel_chipset.h"
9889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt
9899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#endif
990