brw_defines.h revision ac11c01ddeccf34230f363c0723783a1e2fce555
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 */ 317d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt 327d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define INTEL_MASK(high, low) (((1<<((high)-(low)+1))-1)<<(low)) 337d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define SET_FIELD(value, field) (((value) << field ## _SHIFT) & field ## _MASK) 347d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define GET_FIELD(word, field) (((word) & field ## _MASK) >> field ## _SHIFT) 359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#ifndef BRW_DEFINES_H 379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFINES_H 389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* 3D state: 409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */ 419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_NOWRITE 0x00 429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITEIMMEDIATE 0x01 439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITEDEPTH 0x02 449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_WRITETIMESTAMP 0x03 459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_GTTWRITE_PROCESS_LOCAL 0x00 479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define PIPE_CONTROL_GTTWRITE_GLOBAL 0x01 489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 49ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke#define CMD_3D_PRIM 0x7b00 /* 3DPRIMITIVE */ 50ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke/* DW0 */ 51ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke# define GEN4_3DPRIM_TOPOLOGY_TYPE_SHIFT 10 52ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke# define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 15) 53ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke# define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 15) 54550ad737f77cfae9abf2db1638711713ad9d920eKenneth Graunke/* DW1 */ 55550ad737f77cfae9abf2db1638711713ad9d920eKenneth Graunke# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8) 56550ad737f77cfae9abf2db1638711713ad9d920eKenneth Graunke# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8) 57ff5dd55e264d8f0282aa3ae3dc4f6ab26d98731dKenneth Graunke 589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POINTLIST 0x01 599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELIST 0x02 609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP 0x03 619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRILIST 0x04 629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP 0x05 639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRIFAN 0x06 649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_QUADLIST 0x07 659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_QUADSTRIP 0x08 669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELIST_ADJ 0x09 679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_ADJ 0x0A 689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRILIST_ADJ 0x0B 699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP_ADJ 0x0C 709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRISTRIP_REVERSE 0x0D 719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POLYGON 0x0E 729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_RECTLIST 0x0F 739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINELOOP 0x10 749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_POINTLIST_BF 0x11 759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_CONT 0x12 769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_BF 0x13 779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_LINESTRIP_CONT_BF 0x14 789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define _3DPRIM_TRIFAN_NOSTIPPLE 0x15 799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_2 0 819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_4 1 829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_6 2 839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_8 3 849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_10 4 859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_12 5 869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_14 6 879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ANISORATIO_16 7 889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_ONE 0x1 909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_COLOR 0x2 919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_ALPHA 0x3 929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_DST_ALPHA 0x4 939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_DST_COLOR 0x5 949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6 959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_CONST_COLOR 0x7 969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_CONST_ALPHA 0x8 979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC1_COLOR 0x9 989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_SRC1_ALPHA 0x0A 999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_ZERO 0x11 1009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC_COLOR 0x12 1019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC_ALPHA 0x13 1029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_DST_ALPHA 0x14 1039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_DST_COLOR 0x15 1049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_CONST_COLOR 0x17 1059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_CONST_ALPHA 0x18 1069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC1_COLOR 0x19 1079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFACTOR_INV_SRC1_ALPHA 0x1A 1089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_ADD 0 1109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_SUBTRACT 1 1119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_REVERSE_SUBTRACT 2 1129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_MIN 3 1139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_BLENDFUNCTION_MAX 4 1149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALPHATEST_FORMAT_UNORM8 0 1169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALPHATEST_FORMAT_FLOAT32 1 1179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHROMAKEY_KILL_ON_ANY_MATCH 0 1199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHROMAKEY_REPLACE_BLACK 1 1209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_API_OGL 0 1229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_API_DX 1 1239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_NORMAL 0 1259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_CLIP_ALL 1 1269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_CLIP_NON_REJECTED 2 1279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_REJECT_ALL 3 1289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIPMODE_ACCEPT_ALL 4 1292995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_CLIPMODE_KERNEL_CLIP 5 1309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_NDCSPACE 0 1329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CLIP_SCREENSPACE 1 1339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_ALWAYS 0 1359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_NEVER 1 1369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_LESS 2 1379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_EQUAL 3 1389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_LEQUAL 4 1399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_GREATER 5 1409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_NOTEQUAL 6 1419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPAREFUNCTION_GEQUAL 7 1429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_HALF 0 1449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_1 1 1459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_2 2 1469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COVERAGE_PIXELS_4 3 1479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_BOTH 0 1499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_NONE 1 1509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_FRONT 2 1519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CULLMODE_BACK 3 1529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFAULTCOLOR_R8G8B8A8_UNORM 0 1549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEFAULTCOLOR_R32G32B32A32_FLOAT 1 1559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT 0 1579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D32_FLOAT 1 1589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT 2 1594d7c1871671710865be3020e0d460e0463707f14Chad Versace#define BRW_DEPTHFORMAT_D24_UNORM_X8_UINT 3 /* GEN5 */ 1609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPTHFORMAT_D16_UNORM 5 1619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FLOATING_POINT_IEEE_754 0 1639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FLOATING_POINT_NON_IEEE_754 1 1649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FRONTWINDING_CW 0 1669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_FRONTWINDING_CCW 1 1679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 168505453a04e8ba5e394c34401bd9ec320ffce2423Zou Nan hai#define BRW_SPRITE_POINT_ENABLE 16 169505453a04e8ba5e394c34401bd9ec320ffce2423Zou Nan hai 1709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_BYTE 0 1719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_WORD 1 1729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INDEX_DWORD 2 1739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_CLEAR 0 1759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NOR 1 1769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND_INVERTED 2 1779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_COPY_INVERTED 3 1789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND_REVERSE 4 1799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_INVERT 5 1809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_XOR 6 1819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NAND 7 1829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_AND 8 1839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_EQUIV 9 1849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_NOOP 10 1859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR_INVERTED 11 1869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_COPY 12 1879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR_REVERSE 13 1889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_OR 14 1899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LOGICOPFUNCTION_SET 15 1909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_NEAREST 0x0 1929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_LINEAR 0x1 1939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MAPFILTER_ANISOTROPIC 0x2 1949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_NONE 0 1969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_NEAREST 1 1979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MIPFILTER_LINEAR 3 1989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FRONT_FACING 0 2009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_BACK_FACING 1 2019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_ALWAYS 0x0 2039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_NEVER 0x1 2049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_LESS 0x2 2059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_EQUAL 0x3 2069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_LEQUAL 0x4 2079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_GREATER 0x5 2089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_NOTEQUAL 0x6 2099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREFILTER_GEQUAL 0x7 2109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_0 0 2129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_1 1 2139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PROVOKING_VERTEX_2 2 2149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RASTRULE_UPPER_LEFT 0 2169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RASTRULE_UPPER_RIGHT 1 217cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison/* These are listed as "Reserved, but not seen as useful" 218cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * in Intel documentation (page 212, "Point Rasterization Rule", 219cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * section 7.4 "SF Pipeline State Summary", of document 220cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * "Intel® 965 Express Chipset Family and Intel® G35 Express 221cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * Chipset Graphics Controller Programmer's Reference Manual, 222cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * Volume 2: 3D/Media", Revision 1.0b as of January 2008, 223cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * available at 224cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * http://intellinuxgraphics.org/documentation.html 225cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * at the time of this writing). 226cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * 227cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * These appear to be supported on at least some 228cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * i965-family devices, and the BRW_RASTRULE_LOWER_RIGHT 229cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * is useful when using OpenGL to render to a FBO 230cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * (which has the pixel coordinate Y orientation inverted 231cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison * with respect to the normal OpenGL pixel coordinate system). 232cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison */ 233cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison#define BRW_RASTRULE_LOWER_LEFT 2 234cc8afbd3862fedfe42e51c3774960d1c7078ec53Robert Ellison#define BRW_RASTRULE_LOWER_RIGHT 3 2359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_UNORM 0 2379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_SNORM 1 2389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_RENDERTARGET_CLAMPRANGE_FORMAT 2 2399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_KEEP 0 2419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_ZERO 1 2429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_REPLACE 2 2439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INCRSAT 3 2449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_DECRSAT 4 2459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INCR 5 2469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_DECR 6 2479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STENCILOP_INVERT 7 2489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2497d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt/* Surface state DW0 */ 2507d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_MIPLAYOUT_SHIFT 10 2519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_MIPMAPLAYOUT_BELOW 0 2529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_MIPMAPLAYOUT_RIGHT 1 2537d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_CUBEFACE_ENABLES 0x3f 254ac11c01ddeccf34230f363c0723783a1e2fce555Eric Anholt#define BRW_SURFACE_BLEND_ENABLED (1 << 13) 255ac11c01ddeccf34230f363c0723783a1e2fce555Eric Anholt#define BRW_SURFACE_WRITEDISABLE_B_SHIFT 14 256ac11c01ddeccf34230f363c0723783a1e2fce555Eric Anholt#define BRW_SURFACE_WRITEDISABLE_G_SHIFT 15 257ac11c01ddeccf34230f363c0723783a1e2fce555Eric Anholt#define BRW_SURFACE_WRITEDISABLE_R_SHIFT 16 258ac11c01ddeccf34230f363c0723783a1e2fce555Eric Anholt#define BRW_SURFACE_WRITEDISABLE_A_SHIFT 17 2599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 2609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_FLOAT 0x000 2619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SINT 0x001 2629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_UINT 0x002 2639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_UNORM 0x003 2649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SNORM 0x004 2659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64_FLOAT 0x005 2669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32X32_FLOAT 0x006 2679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_SSCALED 0x007 2689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32A32_USCALED 0x008 2699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_FLOAT 0x040 2709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SINT 0x041 2719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_UINT 0x042 2729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_UNORM 0x043 2739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SNORM 0x044 2749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_SSCALED 0x045 2759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32B32_USCALED 0x046 2769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_UNORM 0x080 2779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SNORM 0x081 2789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SINT 0x082 2799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_UINT 0x083 2809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_FLOAT 0x084 2819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_FLOAT 0x085 2829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SINT 0x086 2839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_UINT 0x087 2849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS 0x088 2859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT 0x089 2869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32A32_FLOAT 0x08A 2879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_UNORM 0x08B 2889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SNORM 0x08C 2899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64_FLOAT 0x08D 2909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16X16_UNORM 0x08E 2919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16X16_FLOAT 0x08F 2929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A32X32_FLOAT 0x090 2939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32X32_FLOAT 0x091 2949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I32X32_FLOAT 0x092 2959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_SSCALED 0x093 2969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16A16_USCALED 0x094 2979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_SSCALED 0x095 2989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32G32_USCALED 0x096 2999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM 0x0C0 3009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB 0x0C1 3019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM 0x0C2 3029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB 0x0C3 3039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10A2_UINT 0x0C4 3049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM 0x0C5 3059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM 0x0C7 3069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB 0x0C8 3079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SNORM 0x0C9 3089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SINT 0x0CA 3099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_UINT 0x0CB 3109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_UNORM 0x0CC 3119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SNORM 0x0CD 3129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SINT 0x0CE 3139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_UINT 0x0CF 3149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_FLOAT 0x0D0 3159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM 0x0D1 3169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB 0x0D2 3179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R11G11B10_FLOAT 0x0D3 3189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SINT 0x0D6 3199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_UINT 0x0D7 3209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_FLOAT 0x0D8 3219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R24_UNORM_X8_TYPELESS 0x0D9 3229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_X24_TYPELESS_G8_UINT 0x0DA 3239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16A16_UNORM 0x0DF 3249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I24X8_UNORM 0x0E0 3259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L24X8_UNORM 0x0E1 3269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A24X8_UNORM 0x0E2 3279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I32_FLOAT 0x0E3 3289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L32_FLOAT 0x0E4 3299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A32_FLOAT 0x0E5 3309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM 0x0E9 3319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB 0x0EA 3329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM 0x0EB 3339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB 0x0EC 3349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R9G9B9E5_SHAREDEXP 0x0ED 3359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B10G10R10X2_UNORM 0x0EE 3369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16A16_FLOAT 0x0F0 3379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_UNORM 0x0F1 3389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SNORM 0x0F2 3399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R10G10B10X2_USCALED 0x0F3 3409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_SSCALED 0x0F4 3419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8A8_USCALED 0x0F5 3429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_SSCALED 0x0F6 3439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16_USCALED 0x0F7 3449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_SSCALED 0x0F8 3459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R32_USCALED 0x0F9 3469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G6R5_UNORM 0x100 3479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G6R5_UNORM_SRGB 0x101 3489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM 0x102 3499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB 0x103 3509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM 0x104 3519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB 0x105 3529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_UNORM 0x106 3539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SNORM 0x107 3549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SINT 0x108 3559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_UINT 0x109 3569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_UNORM 0x10A 3579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SNORM 0x10B 3589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SINT 0x10C 3599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_UINT 0x10D 3609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_FLOAT 0x10E 3619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I16_UNORM 0x111 3629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16_UNORM 0x112 3639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A16_UNORM 0x113 3649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L8A8_UNORM 0x114 3659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I16_FLOAT 0x115 3669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L16_FLOAT 0x116 367a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_A16_FLOAT 0x117 368a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_L8A8_UNORM_SRGB 0x118 369a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_R5G5_SNORM_B6_UNORM 0x119 370a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM 0x11A 3719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB 0x11B 3729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_SSCALED 0x11C 3739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8_USCALED 0x11D 3749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_SSCALED 0x11E 3759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16_USCALED 0x11F 3769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_UNORM 0x140 3779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SNORM 0x141 3789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SINT 0x142 3799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_UINT 0x143 3809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A8_UNORM 0x144 3819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_I8_UNORM 0x145 3829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_L8_UNORM 0x146 3839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_P4A4_UNORM 0x147 3849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_A4P4_UNORM 0x148 3859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_SSCALED 0x149 3869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8_USCALED 0x14A 387a693a2998c996f063edec8a83a4f6a175f39c471Roland Scheidegger#define BRW_SURFACEFORMAT_L8_UNORM_SRGB 0x14C 38806cb1a6a5bdba5654408e3568584e1ab168266b7Eric Anholt#define BRW_SURFACEFORMAT_DXT1_RGB_SRGB 0x180 3899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R1_UINT 0x181 3909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_NORMAL 0x182 3919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPUVY 0x183 3929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC1_UNORM 0x186 3939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC2_UNORM 0x187 3949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC3_UNORM 0x188 3959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC4_UNORM 0x189 3969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC5_UNORM 0x18A 3979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC1_UNORM_SRGB 0x18B 3989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC2_UNORM_SRGB 0x18C 3999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC3_UNORM_SRGB 0x18D 4009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_MONO8 0x18E 4019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPUV 0x18F 4029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_YCRCB_SWAPY 0x190 4039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_DXT1_RGB 0x191 4049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_FXT1 0x192 4059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_UNORM 0x193 4069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_SNORM 0x194 4079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_SSCALED 0x195 4089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R8G8B8_USCALED 0x196 4099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64B64A64_FLOAT 0x197 4109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R64G64B64_FLOAT 0x198 4119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC4_SNORM 0x199 4129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_BC5_SNORM 0x19A 4139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_UNORM 0x19C 4149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_SNORM 0x19D 4159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_SSCALED 0x19E 4169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACEFORMAT_R16G16B16_USCALED 0x19F 4177d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_FORMAT_SHIFT 18 4187d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_FORMAT_MASK INTEL_MASK(26, 18) 4199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACERETURNFORMAT_FLOAT32 0 4219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACERETURNFORMAT_S1 1 4229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4237d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_TYPE_SHIFT 29 4247d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_TYPE_MASK INTEL_MASK(31, 29) 4259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_1D 0 4269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_2D 1 4279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_3D 2 4289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_CUBE 3 4299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_BUFFER 4 4309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SURFACE_NULL 7 4319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4327d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt/* Surface state DW2 */ 4337d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_HEIGHT_SHIFT 19 4347d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_HEIGHT_MASK INTEL_MASK(31, 19) 4357d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_WIDTH_SHIFT 6 4367d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_WIDTH_MASK INTEL_MASK(18, 6) 4377d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_LOD_SHIFT 2 4387d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_LOD_MASK INTEL_MASK(5, 2) 4397d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt 4407d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt/* Surface state DW3 */ 4417d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_DEPTH_SHIFT 21 4427d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_DEPTH_MASK INTEL_MASK(31, 21) 4437d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_PITCH_SHIFT 3 4447d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_PITCH_MASK INTEL_MASK(19, 3) 4457d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_TILED (1 << 1) 4467d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_TILED_Y (1 << 0) 4477d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt 4487d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt/* Surface state DW5 */ 4497d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_X_OFFSET_SHIFT 25 4507d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_X_OFFSET_MASK INTEL_MASK(31, 25) 4517d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_Y_OFFSET_SHIFT 20 4527d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt#define BRW_SURFACE_Y_OFFSET_MASK INTEL_MASK(23, 20) 4537d437b1f7fb64f187125a393eebe1d1c17db9961Eric Anholt 4549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_WRAP 0 4559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_MIRROR 1 4569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CLAMP 2 4579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CUBE 3 4589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_CLAMP_BORDER 4 4599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TEXCOORDMODE_MIRROR_ONCE 5 4609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_PRIORITY_NORMAL 0 4629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_PRIORITY_HIGH 1 4639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TILEWALK_XMAJOR 0 4659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_TILEWALK_YMAJOR 1 4669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTEX_SUBPIXEL_PRECISION_8BITS 0 4689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTEX_SUBPIXEL_PRECISION_4BITS 1 4699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* Execution Unit (EU) defines 4719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */ 4729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALIGN_1 0 4749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ALIGN_16 1 4759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ADDRESS_DIRECT 0 4779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ADDRESS_REGISTER_INDIRECT_REGISTER 1 4789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_X 0 4809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_Y 1 4819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_Z 2 4829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CHANNEL_W 3 4839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 4849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_NONE 0 4859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_2NDHALF 1 4869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_COMPRESSION_COMPRESSED 2 4879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 488245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_1Q 0 489245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_2Q 1 490245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_3Q 2 491245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_4Q 3 492245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_1H 0 493245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt#define GEN6_COMPRESSION_2H 2 494245662f3083795e272fe9ef5d4cbeb6d048cf0e5Eric Anholt 4959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NONE 0 4969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_Z 1 4979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NZ 2 4989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_EQ 1 /* Z */ 4999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_NEQ 2 /* NZ */ 5009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_G 3 5019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_GE 4 5029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_L 5 5039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_LE 6 5041d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_CONDITIONAL_R 7 5059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CONDITIONAL_O 8 5061d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_CONDITIONAL_U 9 5079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEBUG_NONE 0 5099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEBUG_BREAKPOINT 1 5109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NORMAL 0 5129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NOTCLEARED 1 5139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_NOTCHECKED 2 5149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DEPENDENCY_DISABLE 3 5159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_1 0 5179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_2 1 5189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_4 2 5199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_8 3 5209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_16 4 5219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_EXECUTE_32 5 5229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_0 0 5249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_1 1 5259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_2 2 5269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_HORIZONTAL_STRIDE_4 3 5279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INSTRUCTION_NORMAL 0 5299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_INSTRUCTION_SATURATE 1 5309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MASK_ENABLE 0 5329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MASK_DISABLE 1 5339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 5345d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt/** @{ 5355d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * 5365d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * Gen6 has replaced "mask enable/disable" with WECtrl, which is 5375d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * effectively the same but much simpler to think about. Now, there 5385d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * are two contributors ANDed together to whether channels are 5395d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * executed: The predication on the instruction, and the channel write 5405d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * enable. 5415d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt */ 5425d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt/** 5435d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * This is the default value. It means that a channel's write enable is set 5445d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * if the per-channel IP is pointing at this instruction. 5455d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt */ 54604466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang#define BRW_WE_NORMAL 0 5475d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt/** 5485d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * This is used like BRW_MASK_DISABLE, and causes all channels to have 5495d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * their write enable set. Note that predication still contributes to 5505d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt * whether the channel actually gets written. 5515d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt */ 5525d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt#define BRW_WE_ALL 1 5535d99b01501128c7179cdd6aa29bc8953d0d81e75Eric Anholt/** @} */ 55404466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang 5559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MOV 1 5569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SEL 2 5579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_NOT 4 5589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_AND 5 5599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_OR 6 5609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_XOR 7 5619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SHR 8 5629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SHL 9 5639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RSR 10 5649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RSL 11 5659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ASR 12 5669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_CMP 16 5671d4bace9fca64c61ccd9f4205262417fa0ae3883Eric Anholt#define BRW_OPCODE_CMPN 17 5689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_JMPI 32 5699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_IF 34 5709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_IFF 35 5719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ELSE 36 5729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ENDIF 37 5739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DO 38 5749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_WHILE 39 5759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_BREAK 40 5769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_CONTINUE 41 5779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_HALT 42 5789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MSAVE 44 5799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MRESTORE 45 5809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_PUSH 46 5819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_POP 47 5829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_WAIT 48 5839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SEND 49 5841732a8bc72fe0a8eaf7449eda65eba1a017ae909Eric Anholt#define BRW_OPCODE_SENDC 50 58538c449409207c8948c1961a3132475bbd422f8f1Eric Anholt#define BRW_OPCODE_MATH 56 5869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_ADD 64 5879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MUL 65 5889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_AVG 66 5899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_FRC 67 5909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDU 68 5919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDD 69 5929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDE 70 5939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_RNDZ 71 5949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MAC 72 5959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_MACH 73 5969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_LZD 74 5979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SAD2 80 5989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_SADA2 81 5999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP4 84 6009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DPH 85 6019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP3 86 6029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DP2 87 6039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_DPA2 88 6049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_LINE 89 60556ff30a9f97a1a7094432333906544d6138d6bf2Eric Anholt#define BRW_OPCODE_PLN 90 6069f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_OPCODE_NOP 126 6079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_NONE 0 6099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_NORMAL 1 6109f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANYV 2 6119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALLV 3 6129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY2H 4 6139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL2H 5 6149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY4H 6 6159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL4H 7 6169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY8H 8 6179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL8H 9 6189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ANY16H 10 6199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN1_ALL16H 11 6209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_X 2 6219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_Y 3 6229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_Z 4 6239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_REPLICATE_W 5 6249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_ANY4H 6 6259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_PREDICATE_ALIGN16_ALL4H 7 6269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARCHITECTURE_REGISTER_FILE 0 6289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_GENERAL_REGISTER_FILE 1 6299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_REGISTER_FILE 2 6309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_IMMEDIATE_VALUE 3 6319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UD 0 6339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_D 1 6349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UW 2 6359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_W 3 6369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_UB 4 6379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_B 5 6389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_VF 5 /* packed float vector, immediates only? */ 6399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_HF 6 6409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_V 6 /* packed int vector, immediates only, uword dest only */ 6419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_REGISTER_TYPE_F 7 6429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_NULL 0x00 6449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_ADDRESS 0x10 6459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_ACCUMULATOR 0x20 6469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_FLAG 0x30 6479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK 0x40 6489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK_STACK 0x50 6499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_MASK_STACK_DEPTH 0x60 6509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_STATE 0x70 6519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_CONTROL 0x80 6529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_NOTIFICATION_COUNT 0x90 6539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_ARF_IP 0xA0 6549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 655b3ea15f12b931a38d18b4b250031832916380174Eric Anholt#define BRW_MRF_COMPR4 (1 << 7) 656b3ea15f12b931a38d18b4b250031832916380174Eric Anholt 6579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_AMASK 0 6589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_IMASK 1 6599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_LMASK 2 6609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_CMASK 3 6619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_NORMAL 0 6659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_ATOMIC 1 6669f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_THREAD_SWITCH 2 6679f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_0 0 6699f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_1 1 6709f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_2 2 6719f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_4 3 6729f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_8 4 6739f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_16 5 6749f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_32 6 6759f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_64 7 6769f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_128 8 6779f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_256 9 6789f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL 0xF 6799f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6809f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_1 0 6819f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_2 1 6829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_4 2 6839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_8 3 6849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_WIDTH_16 4 6859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_1K 0 6879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_2K 1 6889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_4K 2 6899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_8K 3 6909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_16K 4 6919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_32K 5 6929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_64K 6 6939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_128K 7 6949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_256K 8 6959f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_512K 9 6969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_1M 10 6979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_STATELESS_BUFFER_BOUNDARY_2M 11 6989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 6999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FACING_FRONT 0 7009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_POLYGON_FACING_BACK 1 7019f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7029f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_NULL 0 70304466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang#define BRW_MESSAGE_TARGET_MATH 1 /* reserved on GEN6 */ 7049f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_SAMPLER 2 7059f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_GATEWAY 3 70617eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke#define BRW_MESSAGE_TARGET_DATAPORT_READ 4 70717eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke#define BRW_MESSAGE_TARGET_DATAPORT_WRITE 5 7089f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_URB 6 7099f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MESSAGE_TARGET_THREAD_SPAWNER 7 71017eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke 71117eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke#define GEN6_MESSAGE_TARGET_DP_SAMPLER_CACHE 4 71217eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke#define GEN6_MESSAGE_TARGET_DP_RENDER_CACHE 5 71317eaff77b09d356aae46c5d89a8eaa67cfa4c1e7Kenneth Graunke#define GEN6_MESSAGE_TARGET_DP_CONST_CACHE 9 7149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_FLOAT32 0 7169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_UINT32 2 7179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_RETURN_FORMAT_SINT32 3 7189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7199f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE 0 7209f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE 0 7219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS 0 7229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_KILLPIX 1 7239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD 1 7249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD 1 7259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS 2 7269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS 2 7279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE 0 7289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE 2 729a3cd542894606e3f2c892a4218cc6f7370c827a5Kenneth Graunke#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_BIAS_COMPARE 0 730a3cd542894606e3f2c892a4218cc6f7370c827a5Kenneth Graunke#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_LOD_COMPARE 1 7319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_RESINFO 2 7329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_RESINFO 2 7339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_RESINFO 2 7349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD4X2_LD 3 7359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD8_LD 3 7369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SAMPLER_MESSAGE_SIMD16_LD 3 7379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 738cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE 0 739cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS 1 740cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD 2 741cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_COMPARE 3 742cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS 4 743cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS_COMPARE 5 744cc48d663f7282411d88c6187ce3d03f21df0acd3Kenneth Graunke#define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD_COMPARE 6 7452995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao 746cdcef6cbf4dd80047819e9098e34a3b98bd502a4Zhenyu Wang/* for GEN5 only */ 7472995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD4X2 0 7482995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD8 1 7492995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD16 2 7502995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao#define BRW_SAMPLER_SIMD_MODE_SIMD32_64 3 7512995bf0d68f1b28ba68b81e9dc79e3ab52bc2795Xiang, Haihao 7529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDLOW 0 7539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_1_OWORDHIGH 1 7549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_2_OWORDS 2 7559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_4_OWORDS 3 7569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_BLOCK_8_OWORDS 4 7579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_DUAL_BLOCK_1OWORD 0 7599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS 2 7609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7619f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS 2 7629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS 3 7639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7649e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt/* This one stays the same across generations. */ 7659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ 0 7669e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt/* GEN4 */ 7679e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ 1 7689e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ 2 7699e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define BRW_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ 3 7709e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt/* G45, GEN5 */ 7719e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define G45_DATAPORT_READ_MESSAGE_RENDER_UNORM_READ 1 7729e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define G45_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ 2 7739e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define G45_DATAPORT_READ_MESSAGE_AVC_LOOP_FILTER_READ 3 7749e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define G45_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ 4 7759e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define G45_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ 6 77604466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang/* GEN6 */ 7779e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define GEN6_DATAPORT_READ_MESSAGE_RENDER_UNORM_READ 1 7789e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define GEN6_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ 2 7799e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define GEN6_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ 4 7809e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define GEN6_DATAPORT_READ_MESSAGE_OWORD_UNALIGN_BLOCK_READ 5 7819e9e87a9b20c581315ff679dc2541d9e442a6301Eric Anholt#define GEN6_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ 6 7829f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7839f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_DATA_CACHE 0 7849f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_RENDER_CACHE 1 7859f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_READ_TARGET_SAMPLER_CACHE 2 7869f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7879f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE 0 7889f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED 1 7899f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01 2 7909f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23 3 7919f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01 4 7929f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 7939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE 0 7949f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE 1 795f247b2d633f85d70f006df8e8588072f57ee847cKenneth Graunke#define BRW_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE 2 7969f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE 3 7979f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE 4 7989f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE 5 7999f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE 7 8009f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 80104466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang/* GEN6 */ 8022baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_ATOMIC_WRITE 7 8032baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE 8 8042baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE 9 8052baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE 10 806ceaec241494ddde8ab49c7d90814b0350c99d222Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE 11 8072baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE 12 8082baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_STREAMED_VB_WRITE 13 8092baac48f3900b6e7a6443c6c116899cf95275629Kenneth Graunke#define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_UNORM_WRITE 14 81004466795511bc93e4301e71b9e0c7a9154ecf042Zhenyu Wang 8119f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INV 1 8129f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_LOG 2 8139f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_EXP 3 8149f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SQRT 4 8159f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_RSQ 5 8169f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SIN 6 /* was 7 */ 8179f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_COS 7 /* was 8 */ 8189f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_SINCOS 8 /* was 6 */ 81938c449409207c8948c1961a3132475bbd422f8f1Eric Anholt#define BRW_MATH_FUNCTION_TAN 9 /* gen4 */ 82038c449409207c8948c1961a3132475bbd422f8f1Eric Anholt#define BRW_MATH_FUNCTION_FDIV 9 /* gen6+ */ 8219f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_POW 10 8229f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER 11 8239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT 12 8249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_FUNCTION_INT_DIV_REMAINDER 13 8259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_INTEGER_UNSIGNED 0 8279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_INTEGER_SIGNED 1 8289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_PRECISION_FULL 0 8309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_PRECISION_PARTIAL 1 8319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_SATURATE_NONE 0 8339f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_SATURATE_SATURATE 1 8349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_DATA_VECTOR 0 8369f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_MATH_DATA_SCALAR 1 8379f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8389f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_OPCODE_WRITE 0 8399f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8409f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_NONE 0 8419f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_INTERLEAVE 1 8429f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_URB_SWIZZLE_TRANSPOSE 2 8439f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8449f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_1K 0 8459f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_2K 1 8469f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_4K 2 8479f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_8K 3 8489f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_16K 4 8499f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_32K 5 8509f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_64K 6 8519f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_128K 7 8529f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_256K 8 8539f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_512K 9 8549f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_1M 10 8559f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define BRW_SCRATCH_SPACE_SIZE_2M 11 8569f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8579f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8589f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8599f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8609f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_URB_FENCE 0x6000 861d0415a5a01c1a8c2c2a389d977401a7f6cee031bEric Anholt#define CMD_CS_URB_STATE 0x6001 8629f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_CONST_BUFFER 0x6002 8639f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 8649f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_STATE_BASE_ADDRESS 0x6101 8659f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_STATE_INSN_POINTER 0x6102 8668e444fb9e2685e3eac42beb848b08e91dc20c88aXiang, Haihao#define CMD_PIPELINE_SELECT_965 0x6104 86792c075eeb7c330ea420400d1c2bae57356b19f03Xiang, Haihao#define CMD_PIPELINE_SELECT_GM45 0x6904 8689f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 86971acbb54f49089b03d3498b6f88c1681d3f649acKenneth Graunke#define _3DSTATE_PIPELINED_POINTERS 0x7800 87071acbb54f49089b03d3498b6f88c1681d3f649acKenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS 0x7801 8719dce60f35b25f4f5605b22d75447bac5d9f55515Eric Anholt# define GEN6_BINDING_TABLE_MODIFY_VS (1 << 8) 8729dce60f35b25f4f5605b22d75447bac5d9f55515Eric Anholt# define GEN6_BINDING_TABLE_MODIFY_GS (1 << 9) 8730f88ce1b0a98c7cacaa0dc53bbbb1f3c379aaa6aZou Nan hai# define GEN6_BINDING_TABLE_MODIFY_PS (1 << 12) 874931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt 875706dbf85f15d42c320481dabe2a3db0c2cbbebb8Kenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS_VS 0x7826 /* GEN7+ */ 876a94fe79464df088d8e26386d3f0db9a231bfdb61Kenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS_HS 0x7827 /* GEN7+ */ 877a94fe79464df088d8e26386d3f0db9a231bfdb61Kenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS_DS 0x7828 /* GEN7+ */ 878706dbf85f15d42c320481dabe2a3db0c2cbbebb8Kenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS_GS 0x7829 /* GEN7+ */ 879706dbf85f15d42c320481dabe2a3db0c2cbbebb8Kenneth Graunke#define _3DSTATE_BINDING_TABLE_POINTERS_PS 0x782A /* GEN7+ */ 880706dbf85f15d42c320481dabe2a3db0c2cbbebb8Kenneth Graunke 881e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_SAMPLER_STATE_POINTERS 0x7802 /* GEN6+ */ 882c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt# define PS_SAMPLER_STATE_CHANGE (1 << 12) 883c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt# define GS_SAMPLER_STATE_CHANGE (1 << 9) 884c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt# define VS_SAMPLER_STATE_CHANGE (1 << 8) 885c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt/* DW1: VS */ 886c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt/* DW2: GS */ 887c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt/* DW3: PS */ 888c791f8a1e532834ae7a517c042e9efe262b62233Eric Anholt 889bc08d4ebb832769aacb4aecaaf1e490f97c53d65Kenneth Graunke#define _3DSTATE_SAMPLER_STATE_POINTERS_VS 0x782B /* GEN7+ */ 890bc08d4ebb832769aacb4aecaaf1e490f97c53d65Kenneth Graunke#define _3DSTATE_SAMPLER_STATE_POINTERS_GS 0x782E /* GEN7+ */ 891bc08d4ebb832769aacb4aecaaf1e490f97c53d65Kenneth Graunke#define _3DSTATE_SAMPLER_STATE_POINTERS_PS 0x782F /* GEN7+ */ 892bc08d4ebb832769aacb4aecaaf1e490f97c53d65Kenneth Graunke 8939f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_VERTEX_BUFFER 0x7808 894931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_INDEX_SHIFT 27 895ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_INDEX_SHIFT 26 896931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_ACCESS_VERTEXDATA (0 << 26) 897931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_ACCESS_INSTANCEDATA (1 << 26) 898ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_ACCESS_VERTEXDATA (0 << 20) 899ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VB0_ACCESS_INSTANCEDATA (1 << 20) 90062b79b4bb9d8a4a8679c3d1e1f5455ce33d7b90aKenneth Graunke# define GEN7_VB0_ADDRESS_MODIFYENABLE (1 << 14) 901931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VB0_PITCH_SHIFT 0 902931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt 9039f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_VERTEX_ELEMENT 0x7809 904931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_INDEX_SHIFT 27 905ff3997904ab988824e744fdbecde6eb79d9bf40fEric Anholt# define GEN6_VE0_INDEX_SHIFT 26 906931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_FORMAT_SHIFT 16 907931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_VALID (1 << 26) 908d790564f9452d6fa0378346a85c792aa346c1a57Eric Anholt# define GEN6_VE0_VALID (1 << 25) 909931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE0_SRC_OFFSET_SHIFT 0 910931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_NOSTORE 0 911931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_SRC 1 912931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_0 2 913931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_1_FLT 3 914931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_1_INT 4 915931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_VID 5 916931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_IID 6 917931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_STORE_PID 7 918931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_0_SHIFT 28 919931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_1_SHIFT 24 920931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_2_SHIFT 20 921931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_COMPONENT_3_SHIFT 16 922931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt# define BRW_VE1_DST_OFFSET_SHIFT 0 923931685e243af52271d4cdc0ddc8ea153036dee42Eric Anholt 9249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_INDEX_BUFFER 0x780a 925ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt#define CMD_VF_STATISTICS_965 0x780b 92692c075eeb7c330ea420400d1c2bae57356b19f03Xiang, Haihao#define CMD_VF_STATISTICS_GM45 0x680b 927e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_CC_STATE_POINTERS 0x780e /* GEN6+ */ 92824d0ed72c1817b624e3021b12a0987b2c5edd71bKenneth Graunke#define _3DSTATE_BLEND_STATE_POINTERS 0x7824 /* GEN7+ */ 92924d0ed72c1817b624e3021b12a0987b2c5edd71bKenneth Graunke#define _3DSTATE_DEPTH_STENCIL_STATE_POINTERS 0x7825 /* GEN7+ */ 930ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt 9318832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_URB 0x7805 /* GEN6 */ 932c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_VS_SIZE_SHIFT 16 933c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt# define GEN6_URB_VS_ENTRIES_SHIFT 0 934073f8d1c00165acccb60f878a2aa770c2b885aecEric Anholt# define GEN6_URB_GS_ENTRIES_SHIFT 8 935073f8d1c00165acccb60f878a2aa770c2b885aecEric Anholt# define GEN6_URB_GS_SIZE_SHIFT 0 936c9dc6d425e645f2988118ff51cabe167a0cd3971Eric Anholt 9378832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_URB_VS 0x7830 /* GEN7+ */ 9388832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_URB_HS 0x7831 /* GEN7+ */ 9398832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_URB_DS 0x7832 /* GEN7+ */ 9408832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_URB_GS 0x7833 /* GEN7+ */ 9418832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke# define GEN7_URB_ENTRY_SIZE_SHIFT 16 9428832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke# define GEN7_URB_STARTING_ADDRESS_SHIFT 25 9438832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke 9448832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_PUSH_CONSTANT_ALLOC_VS 0x7912 /* GEN7+ */ 9458832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke#define _3DSTATE_PUSH_CONSTANT_ALLOC_PS 0x7916 /* GEN7+ */ 9468832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16 9478832920c298f4e13ffd5e53feeba509be69edb16Kenneth Graunke 948e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_VIEWPORT_STATE_POINTERS 0x780d /* GEN6+ */ 9491ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_CC_VIEWPORT_MODIFY (1 << 12) 9501ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_SF_VIEWPORT_MODIFY (1 << 11) 9511ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt# define GEN6_CLIP_VIEWPORT_MODIFY (1 << 10) 9521ae0cb5f286bbba10e99c8e3bc1c55d2aeb38b59Eric Anholt 95318402fbf79e96d7afb6b690906a7656f01a92b9dKenneth Graunke#define _3DSTATE_VIEWPORT_STATE_POINTERS_CC 0x7823 /* GEN7+ */ 95418402fbf79e96d7afb6b690906a7656f01a92b9dKenneth Graunke#define _3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL 0x7821 /* GEN7+ */ 95518402fbf79e96d7afb6b690906a7656f01a92b9dKenneth Graunke 956e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_SCISSOR_STATE_POINTERS 0x780f /* GEN6+ */ 95764e0c586a74553b2941f18feb199d8cddb192102Eric Anholt 958e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_VS 0x7810 /* GEN6+ */ 959520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW2 */ 960ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_SPF_MODE (1 << 31) 961ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_VECTOR_MASK_ENABLE (1 << 30) 962ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_SAMPLER_COUNT_SHIFT 27 963ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 964c52adfc2e1d130effea940e75690897eb5d3ceaaEric Anholt# define GEN6_VS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 965c52adfc2e1d130effea940e75690897eb5d3ceaaEric Anholt# define GEN6_VS_FLOATING_POINT_MODE_ALT (1 << 16) 966520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW4 */ 967d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_VS_DISPATCH_START_GRF_SHIFT 20 968ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_URB_READ_LENGTH_SHIFT 11 969d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT 4 970a935cb2acafab199ac5ed4f2484af77be2af6363Eric Anholt/* DW5 */ 971ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_MAX_THREADS_SHIFT 25 972ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_STATISTICS_ENABLE (1 << 10) 973ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_CACHE_DISABLE (1 << 1) 974ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt# define GEN6_VS_ENABLE (1 << 0) 975ba882d7827e5526e99c9d5c453d56c5e029c7476Eric Anholt 976e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_GS 0x7811 /* GEN6+ */ 977520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW2 */ 978520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SPF_MODE (1 << 31) 979520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_VECTOR_MASK_ENABLE (1 << 30) 980520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SAMPLER_COUNT_SHIFT 27 981520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 982520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW4 */ 983520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_URB_READ_LENGTH_SHIFT 11 984bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke# define GEN7_GS_INCLUDE_VERTEX_HANDLES (1 << 10) 985d512aa3d6d9948f5c294110fdae7a24aaf37051fEric Anholt# define GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT 4 986da577ee8800b940fcf416716c13133cd43c3d035Eric Anholt# define GEN6_GS_DISPATCH_START_GRF_SHIFT 0 987520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW5 */ 988520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_MAX_THREADS_SHIFT 25 989520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_STATISTICS_ENABLE (1 << 10) 990520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_SO_STATISTICS_ENABLE (1 << 9) 991520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_RENDERING_ENABLE (1 << 8) 992bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke# define GEN7_GS_ENABLE (1 << 0) 993520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt/* DW6 */ 994520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_GS_ENABLE (1 << 15) 995520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt 996bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_HS 0x781B /* GEN7+ */ 997bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_TE 0x781C /* GEN7+ */ 998bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_DS 0x781D /* GEN7+ */ 999bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke 1000e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_CLIP 0x7812 /* GEN6+ */ 1001f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW1 */ 100281fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_WINDING_CW (0 << 20) 100381fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_WINDING_CCW (1 << 20) 100481fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_8 (0 << 19) 100581fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_4 (1 << 19) 100681fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_EARLY_CULL (1 << 18) 100781fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_CULLMODE_BOTH (0 << 16) 100881fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_CULLMODE_NONE (1 << 16) 100981fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_CULLMODE_FRONT (2 << 16) 101081fd03fe56372c5c702bf257e821cea71ee25448Kenneth Graunke# define GEN7_CLIP_CULLMODE_BACK (3 << 16) 1011f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_STATISTICS_ENABLE (1 << 10) 1012e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt/** 1013e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt * Just does cheap culling based on the clip distance. Bits must be 1014e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt * disjoint with USER_CLIP_CLIP_DISTANCE bits. 1015e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt */ 1016e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt# define GEN6_USER_CLIP_CULL_DISTANCES_SHIFT 0 1017f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW2 */ 1018f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_ENABLE (1 << 31) 1019dedfc0e6e606594b9b1772c6b0689f7fa547c3aaEric Anholt# define GEN6_CLIP_API_OGL (0 << 30) 1020dedfc0e6e606594b9b1772c6b0689f7fa547c3aaEric Anholt# define GEN6_CLIP_API_D3D (1 << 30) 1021f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_XY_TEST (1 << 28) 1022f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_Z_TEST (1 << 27) 1023f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_GB_TEST (1 << 26) 1024e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt/** 8-bit field of which user clip distances to clip aganist. */ 1025e30a3e7aa09c373c0a02df555d090693718f0fe8Eric Anholt# define GEN6_USER_CLIP_CLIP_DISTANCES_SHIFT 16 1026f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_NORMAL (0 << 13) 1027f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_REJECT_ALL (3 << 13) 1028f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MODE_ACCEPT_ALL (4 << 13) 1029f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_PERSPECTIVE_DIVIDE_DISABLE (1 << 9) 1030f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_BARYCENTRIC_ENABLE (1 << 8) 1031f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_TRI_PROVOKE_SHIFT 4 1032f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_LINE_PROVOKE_SHIFT 2 1033f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_TRIFAN_PROVOKE_SHIFT 0 1034f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt/* DW3 */ 1035f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MIN_POINT_WIDTH_SHIFT 17 1036f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt# define GEN6_CLIP_MAX_POINT_WIDTH_SHIFT 6 103703218a00932e83f0ffd0c3077bbbe65a7765c572Zhenyu Wang# define GEN6_CLIP_FORCE_ZERO_RTAINDEX (1 << 5) 1038f58fbcf7618bcc6ef9da8e8939100b14ea4d584bEric Anholt 1039e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_SF 0x7813 /* GEN6+ */ 10407d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW1 (for gen6) */ 104170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_NUM_OUTPUTS_SHIFT 22 104270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_SWIZZLE_ENABLE (1 << 21) 104370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_POINT_SPRITE_LOWERLEFT (1 << 20) 104470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_URB_ENTRY_READ_LENGTH_SHIFT 11 104570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_URB_ENTRY_READ_OFFSET_SHIFT 4 104670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW2 */ 104770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LEGACY_GLOBAL_DEPTH_BIAS (1 << 11) 104870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_STATISTICS_ENABLE (1 << 10) 104970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_SOLID (1 << 9) 105070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_WIREFRAME (1 << 8) 105170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_GLOBAL_DEPTH_OFFSET_POINT (1 << 7) 105270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_SOLID (0 << 5) 105370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_WIREFRAME (1 << 5) 105470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_FRONT_POINT (2 << 5) 105570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_SOLID (0 << 3) 105670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_WIREFRAME (1 << 3) 105770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_BACK_POINT (2 << 3) 105870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VIEWPORT_TRANSFORM_ENABLE (1 << 1) 105970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_WINDING_CCW (1 << 0) 106070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW3 */ 106170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_ENABLE (1 << 31) 106270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_BOTH (0 << 29) 106370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_NONE (1 << 29) 106470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_FRONT (2 << 29) 106570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_CULL_BACK (3 << 29) 106670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_WIDTH_SHIFT 18 /* U3.7 */ 106770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_0_5 (0 << 16) 106870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_1_0 (1 << 16) 106970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_2_0 (2 << 16) 107070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_END_CAP_WIDTH_4_0 (3 << 16) 107170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_SCISSOR_ENABLE (1 << 11) 107270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_OFF_PIXEL (0 << 8) 107370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_OFF_PATTERN (1 << 8) 107470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_ON_PIXEL (2 << 8) 107570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_MSRAST_ON_PATTERN (3 << 8) 107670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW4 */ 107770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_TRI_PROVOKE_SHIFT 29 107870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_PROVOKE_SHIFT 27 107970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_TRIFAN_PROVOKE_SHIFT 25 108070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_MODE_MANHATTAN (0 << 14) 108170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_LINE_AA_MODE_TRUE (1 << 14) 108270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VERTEX_SUBPIXEL_8BITS (0 << 12) 108370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_VERTEX_SUBPIXEL_4BITS (1 << 12) 108470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_USE_STATE_POINT_WIDTH (1 << 11) 108570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define GEN6_SF_POINT_WIDTH_SHIFT 0 /* U8.3 */ 108670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW5: depth offset constant */ 108770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW6: depth offset scale */ 108870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW7: depth offset clamp */ 108970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW8 */ 109070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_W (1 << 31) 109170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_Z (1 << 30) 109270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_Y (1 << 29) 109370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_OVERRIDE_X (1 << 28) 109470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_CONST_SOURCE_SHIFT 25 109570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_SWIZZLE_SHIFT 22 109670be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_1_SOURCE_SHIFT 16 109770be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_W (1 << 15) 109870be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_Z (1 << 14) 109970be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_Y (1 << 13) 110070be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_OVERRIDE_X (1 << 12) 110170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_CONST_SOURCE_SHIFT 9 110270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_SWIZZLE_SHIFT 6 110370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt# define ATTRIBUTE_0_SOURCE_SHIFT 0 1104e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao 1105e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao# define ATTRIBUTE_SWIZZLE_INPUTATTR 0 1106e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao# define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING 1 1107e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao# define ATTRIBUTE_SWIZZLE_INPUTATTR_W 2 1108e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao# define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING_W 3 1109e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao# define ATTRIBUTE_SWIZZLE_SHIFT 6 1110e47eacdc53aec6743c42c8d9ab8298f802161733Xiang, Haihao 111170be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW16: Point sprite texture coordinate enables */ 111270be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW17: Constant interpolation enables */ 111370be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW18: attr 0-7 wrap shortest enables */ 111470be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt/* DW19: attr 8-16 wrap shortest enables */ 111570be48dff6bb68c61285641e4d976bfd53e0f00cEric Anholt 11167d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* On GEN7, many fields of 3DSTATE_SF were split out into a new command: 11177d608d0c331c101088273655708965fb9f1be56eKenneth Graunke * 3DSTATE_SBE. The remaining fields live in different DWords, but retain 11187d608d0c331c101088273655708965fb9f1be56eKenneth Graunke * the same bit-offset. The only new field: 11197d608d0c331c101088273655708965fb9f1be56eKenneth Graunke */ 11207d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* GEN7/DW1: */ 11217d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT 12 11227d608d0c331c101088273655708965fb9f1be56eKenneth Graunke 11237d608d0c331c101088273655708965fb9f1be56eKenneth Graunke#define _3DSTATE_SBE 0x781F /* GEN7+ */ 11247d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW1 */ 11257d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_SWIZZLE_CONTROL_MODE (1 << 28) 11267d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_NUM_OUTPUTS_SHIFT 22 11277d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_SWIZZLE_ENABLE (1 << 21) 11287d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20) 11297d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11 11307d608d0c331c101088273655708965fb9f1be56eKenneth Graunke# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4 11317d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW2-9: Attribute setup (same as DW8-15 of gen6 _3DSTATE_SF) */ 11327d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW10: Point sprite texture coordinate enables */ 11337d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW11: Constant interpolation enables */ 11347d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW12: attr 0-7 wrap shortest enables */ 11357d608d0c331c101088273655708965fb9f1be56eKenneth Graunke/* DW13: attr 8-16 wrap shortest enables */ 11367d608d0c331c101088273655708965fb9f1be56eKenneth Graunke 1137e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_WM 0x7814 /* GEN6+ */ 1138ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW1: kernel pointer */ 1139ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW2 */ 1140ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_SPF_MODE (1 << 31) 1141ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_VECTOR_MASK_ENABLE (1 << 30) 1142ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_SAMPLER_COUNT_SHIFT 27 1143ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 1144c52adfc2e1d130effea940e75690897eb5d3ceaaEric Anholt# define GEN6_WM_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 1145c52adfc2e1d130effea940e75690897eb5d3ceaaEric Anholt# define GEN6_WM_FLOATING_POINT_MODE_ALT (1 << 16) 1146ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW3: scratch space */ 1147ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW4 */ 1148ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_STATISTICS_ENABLE (1 << 31) 1149ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DEPTH_CLEAR (1 << 30) 1150ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DEPTH_RESOLVE (1 << 28) 1151ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) 1152ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DISPATCH_START_GRF_SHIFT_0 16 1153ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DISPATCH_START_GRF_SHIFT_1 8 1154ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DISPATCH_START_GRF_SHIFT_2 0 1155ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW5 */ 1156ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MAX_THREADS_SHIFT 25 1157ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_KILL_ENABLE (1 << 22) 1158ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_COMPUTED_DEPTH (1 << 21) 1159ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_USES_SOURCE_DEPTH (1 << 20) 1160ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DISPATCH_ENABLE (1 << 19) 1161ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 16) 1162ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 16) 1163ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 16) 1164ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 16) 1165ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_AA_WIDTH_0_5 (0 << 14) 1166ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_AA_WIDTH_1_0 (1 << 14) 1167ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_AA_WIDTH_2_0 (2 << 14) 1168ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_LINE_AA_WIDTH_4_0 (3 << 14) 1169ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POLYGON_STIPPLE_ENABLE (1 << 13) 11709a1ce46fce4f2a4317fd4e2d0b4309e774b3adcaZhenyu Wang# define GEN6_WM_LINE_STIPPLE_ENABLE (1 << 11) 1171ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_OMASK_TO_RENDER_TARGET (1 << 9) 1172ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_USES_SOURCE_W (1 << 8) 1173ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_DUAL_SOURCE_BLEND_ENABLE (1 << 7) 1174ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_32_DISPATCH_ENABLE (1 << 2) 1175ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_16_DISPATCH_ENABLE (1 << 1) 1176ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_8_DISPATCH_ENABLE (1 << 0) 1177ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW6 */ 1178ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_NUM_SF_OUTPUTS_SHIFT 20 1179ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSOFFSET_NONE (0 << 18) 1180ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSOFFSET_CENTROID (2 << 18) 1181ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSOFFSET_SAMPLE (3 << 18) 1182ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSITION_ZW_PIXEL (0 << 16) 1183ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSITION_ZW_CENTROID (2 << 16) 1184ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POSITION_ZW_SAMPLE (3 << 16) 1185ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15) 1186ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14) 1187ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13) 1188ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12) 1189ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11) 1190ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10) 1191ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 9) 1192ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MSRAST_OFF_PIXEL (0 << 1) 1193ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MSRAST_OFF_PATTERN (1 << 1) 1194ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MSRAST_ON_PIXEL (2 << 1) 1195ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MSRAST_ON_PATTERN (3 << 1) 1196ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt# define GEN6_WM_MSDISPMODE_PERPIXEL (1 << 0) 1197ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW7: kernel 1 pointer */ 1198ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt/* DW8: kernel 2 pointer */ 1199ab8c37fe18e0367e8718774198a0d0086fde0cf9Eric Anholt 1200e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_CONSTANT_VS 0x7815 /* GEN6+ */ 1201e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_CONSTANT_GS 0x7816 /* GEN6+ */ 1202e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_CONSTANT_PS 0x7817 /* GEN6+ */ 1203520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_3_ENABLE (1 << 15) 1204520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_2_ENABLE (1 << 14) 1205520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_1_ENABLE (1 << 13) 1206520b64ddfb4c2efa742bc2217fef96fdec5eea9bEric Anholt# define GEN6_CONSTANT_BUFFER_0_ENABLE (1 << 12) 12079f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 1208bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_CONSTANT_HS 0x7819 /* GEN7+ */ 1209bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_CONSTANT_DS 0x781A /* GEN7+ */ 1210bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke 1211a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* 3DSTATE_WM for Gen7 */ 1212a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW1 */ 1213a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_STATISTICS_ENABLE (1 << 31) 1214a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_DEPTH_CLEAR (1 << 30) 1215a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_DISPATCH_ENABLE (1 << 29) 1216a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN6_WM_DEPTH_RESOLVE (1 << 28) 1217a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) 1218a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_KILL_ENABLE (1 << 25) 1219a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PSCDEPTH_OFF (0 << 23) 1220a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PSCDEPTH_ON (1 << 23) 1221a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PSCDEPTH_ON_GE (2 << 23) 1222a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PSCDEPTH_ON_LE (3 << 23) 1223a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_USES_SOURCE_DEPTH (1 << 20) 1224a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_USES_SOURCE_W (1 << 19) 1225a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_POSITION_ZW_PIXEL (0 << 17) 1226a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_POSITION_ZW_CENTROID (2 << 17) 1227a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_POSITION_ZW_SAMPLE (3 << 17) 1228a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16) 1229a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15) 1230a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14) 1231a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13) 1232a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12) 1233a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11) 1234a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_USES_INPUT_COVERAGE_MASK (1 << 10) 1235a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8) 1236a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8) 1237a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8) 1238a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8) 1239a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_AA_WIDTH_0_5 (0 << 6) 1240a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_AA_WIDTH_1_0 (1 << 6) 1241a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_AA_WIDTH_2_0 (2 << 6) 1242a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_AA_WIDTH_4_0 (3 << 6) 1243a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_POLYGON_STIPPLE_ENABLE (1 << 4) 1244a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_LINE_STIPPLE_ENABLE (1 << 3) 1245a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2) 1246a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_MSRAST_OFF_PIXEL (0 << 0) 1247a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_MSRAST_OFF_PATTERN (1 << 0) 1248a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_MSRAST_ON_PIXEL (2 << 0) 1249a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_MSRAST_ON_PATTERN (3 << 0) 1250a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW2 */ 1251a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_WM_MSDISPMODE_PERPIXEL (1 << 31) 1252a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke 1253a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke#define _3DSTATE_PS 0x7820 /* GEN7+ */ 1254a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW1: kernel pointer */ 1255a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW2 */ 1256a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_SPF_MODE (1 << 31) 1257a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30) 1258a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_SAMPLER_COUNT_SHIFT 27 1259a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 1260a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) 1261a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16) 1262a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW3: scratch space */ 1263a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW4 */ 1264a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_MAX_THREADS_SHIFT 23 1265a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_PUSH_CONSTANT_ENABLE (1 << 11) 1266a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_ATTRIBUTE_ENABLE (1 << 10) 1267a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_OMASK_TO_RENDER_TARGET (1 << 9) 1268a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7) 1269a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_POSOFFSET_NONE (0 << 3) 1270a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_POSOFFSET_CENTROID (2 << 3) 1271a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_POSOFFSET_SAMPLE (3 << 3) 1272a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_32_DISPATCH_ENABLE (1 << 2) 1273a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_16_DISPATCH_ENABLE (1 << 1) 1274a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_8_DISPATCH_ENABLE (1 << 0) 1275a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW5 */ 1276a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0 16 1277a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1 8 1278a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2 0 1279a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW6: kernel 1 pointer */ 1280a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke/* DW7: kernel 2 pointer */ 1281a924d69b57a82c02f2d4fba3fc0b31bf6a4f744eKenneth Graunke 1282bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke#define _3DSTATE_STREAMOUT 0x781e /* GEN7+ */ 1283bac10b58de69108bdb2cc3358733e2648ab7c5d2Kenneth Graunke 1284e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_SAMPLE_MASK 0x7818 /* GEN6+ */ 1285f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt 12861feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_DRAWING_RECTANGLE 0x7900 12871feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_BLEND_CONSTANT_COLOR 0x7901 12881feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_CHROMA_KEY 0x7904 12898c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define _3DSTATE_DEPTH_BUFFER 0x7905 /* GEN4-6 */ 12901feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_POLY_STIPPLE_OFFSET 0x7906 12911feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_POLY_STIPPLE_PATTERN 0x7907 12921feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_LINE_STIPPLE_PATTERN 0x7908 12931feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP 0x7909 12941feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_AA_LINE_PARAMETERS 0x790a /* G45+ */ 12951feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke 12961feee7b1b39e54c279ffdc3c27f3911c04658430Kenneth Graunke#define _3DSTATE_GS_SVB_INDEX 0x790b /* CTG+ */ 1297f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt/* DW1 */ 1298f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define SVB_INDEX_SHIFT 29 1299f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define SVB_LOAD_INTERNAL_VERTEX_COUNT (1 << 0) /* SNB+ */ 1300f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt/* DW2: SVB index */ 1301f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt/* DW3: SVB maximum index */ 1302f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt 1303e31defc825ee94f1d1092e277954abad7097c552Kenneth Graunke#define _3DSTATE_MULTISAMPLE 0x790d /* GEN6+ */ 1304f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt/* DW1 */ 1305f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define MS_PIXEL_LOCATION_CENTER (0 << 4) 1306f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define MS_PIXEL_LOCATION_UPPER_LEFT (1 << 4) 1307f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define MS_NUMSAMPLES_1 (0 << 1) 1308f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define MS_NUMSAMPLES_4 (2 << 1) 1309f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define MS_NUMSAMPLES_8 (3 << 1) 1310f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt 1311da0c0dbab060416452e7c96415abef91ec7d64f4Kenneth Graunke#define _3DSTATE_STENCIL_BUFFER 0x790e /* ILK, SNB */ 1312da0c0dbab060416452e7c96415abef91ec7d64f4Kenneth Graunke#define _3DSTATE_HIER_DEPTH_BUFFER 0x790f /* ILK, SNB */ 1313da0c0dbab060416452e7c96415abef91ec7d64f4Kenneth Graunke 13148c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define GEN7_3DSTATE_CLEAR_PARAMS 0x7804 13158c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define GEN7_3DSTATE_DEPTH_BUFFER 0x7805 13168c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define GEN7_3DSTATE_STENCIL_BUFFER 0x7806 13178c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define GEN7_3DSTATE_HIER_DEPTH_BUFFER 0x7807 13188c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke 13198c8985bdd714f43a96ce922a7c0284d50aec3d1aKenneth Graunke#define _3DSTATE_CLEAR_PARAMS 0x7910 /* ILK, SNB */ 1320f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt# define DEPTH_CLEAR_VALID (1 << 15) 1321f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt/* DW1: depth clear value */ 1322f69d46150c308285a518391db02cc9cba0f2a12dEric Anholt 13239f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_PIPE_CONTROL 0x7a00 13249f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 13259f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define CMD_MI_FLUSH 0x0200 13269f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 13279f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 13289f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt/* Various values from the R0 vertex header: 13299f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt */ 13309f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define R02_PRIM_END 0x1 13319f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#define R02_PRIM_START 0x2 13329f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 13338e444fb9e2685e3eac42beb848b08e91dc20c88aXiang, Haihao#include "intel_chipset.h" 13349f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt 13359f344b3e7d6e23674dd4747faec253f103563b36Eric Anholt#endif 1336