Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #ifndef _I965_DEFINES_H_
  2. #define _I965_DEFINES_H_
  3.  
  4. #define CMD(pipeline,op,sub_op)         ((3 << 29) | \
  5.                                                 ((pipeline) << 27) | \
  6.                                                 ((op) << 24) | \
  7.                                                 ((sub_op) << 16))
  8.  
  9. #define CMD_URB_FENCE                           CMD(0, 0, 0)
  10. #define CMD_CS_URB_STATE                        CMD(0, 0, 1)
  11. #define CMD_CONSTANT_BUFFER                     CMD(0, 0, 2)
  12. #define CMD_STATE_PREFETCH                      CMD(0, 0, 3)
  13.  
  14. #define CMD_STATE_BASE_ADDRESS                  CMD(0, 1, 1)
  15. #define CMD_STATE_SIP                           CMD(0, 1, 2)
  16. #define CMD_PIPELINE_SELECT                     CMD(1, 1, 4)
  17. #define CMD_SAMPLER_PALETTE_LOAD                CMD(3, 1, 2)
  18.  
  19. #define CMD_MEDIA_STATE_POINTERS                CMD(2, 0, 0)
  20. #define CMD_MEDIA_VFE_STATE                     CMD(2, 0, 0)
  21. #define CMD_MEDIA_CURBE_LOAD                    CMD(2, 0, 1)
  22. #define CMD_MEDIA_INTERFACE_LOAD                CMD(2, 0, 2)
  23. #define CMD_MEDIA_OBJECT                        CMD(2, 1, 0)
  24. #define CMD_MEDIA_OBJECT_EX                     CMD(2, 1, 1)
  25.  
  26. #define CMD_AVC_BSD_IMG_STATE                   CMD(2, 4, 0)
  27. #define CMD_AVC_BSD_QM_STATE                    CMD(2, 4, 1)
  28. #define CMD_AVC_BSD_SLICE_STATE                 CMD(2, 4, 2)
  29. #define CMD_AVC_BSD_BUF_BASE_STATE              CMD(2, 4, 3)
  30. #define CMD_BSD_IND_OBJ_BASE_ADDR               CMD(2, 4, 4)
  31. #define CMD_AVC_BSD_OBJECT                      CMD(2, 4, 8)
  32.  
  33. #define CMD_MEDIA_VFE_STATE                     CMD(2, 0, 0)
  34. #define CMD_MEDIA_CURBE_LOAD                    CMD(2, 0, 1)
  35. #define CMD_MEDIA_INTERFACE_DESCRIPTOR_LOAD     CMD(2, 0, 2)
  36. #define CMD_MEDIA_GATEWAY_STATE                 CMD(2, 0, 3)
  37. #define CMD_MEDIA_STATE_FLUSH                   CMD(2, 0, 4)
  38. #define CMD_MEDIA_OBJECT_WALKER                 CMD(2, 1, 3)
  39.  
  40. #define CMD_PIPELINED_POINTERS                  CMD(3, 0, 0)
  41. #define CMD_BINDING_TABLE_POINTERS              CMD(3, 0, 1)
  42. # define GEN6_BINDING_TABLE_MODIFY_PS           (1 << 12)/* for GEN6 */
  43. # define GEN6_BINDING_TABLE_MODIFY_GS           (1 << 9) /* for GEN6 */
  44. # define GEN6_BINDING_TABLE_MODIFY_VS           (1 << 8) /* for GEN6 */
  45.  
  46. #define CMD_VERTEX_BUFFERS                      CMD(3, 0, 8)
  47. #define CMD_VERTEX_ELEMENTS                     CMD(3, 0, 9)
  48. #define CMD_DRAWING_RECTANGLE                   CMD(3, 1, 0)
  49. #define CMD_CONSTANT_COLOR                      CMD(3, 1, 1)
  50. #define CMD_3DPRIMITIVE                         CMD(3, 3, 0)
  51.  
  52. #define CMD_DEPTH_BUFFER                        CMD(3, 1, 5)
  53. # define CMD_DEPTH_BUFFER_TYPE_SHIFT            29
  54. # define CMD_DEPTH_BUFFER_FORMAT_SHIFT          18
  55.  
  56. #define CMD_CLEAR_PARAMS                        CMD(3, 1, 0x10)
  57. /* DW1 */
  58. # define CMD_CLEAR_PARAMS_DEPTH_CLEAR_VALID     (1 << 15)
  59.  
  60. /* for GEN6+ */
  61. #define GEN6_3DSTATE_SAMPLER_STATE_POINTERS     CMD(3, 0, 0x02)
  62. # define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS   (1 << 12)
  63. # define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS   (1 << 9)
  64. # define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS   (1 << 8)
  65.  
  66. #define GEN6_3DSTATE_URB                        CMD(3, 0, 0x05)
  67. /* DW1 */
  68. # define GEN6_3DSTATE_URB_VS_SIZE_SHIFT         16
  69. # define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT      0
  70. /* DW2 */
  71. # define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT      8
  72. # define GEN6_3DSTATE_URB_GS_SIZE_SHIFT         0
  73.  
  74. #define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS    CMD(3, 0, 0x0d)
  75. # define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC          (1 << 12)
  76. # define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF          (1 << 11)
  77. # define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP        (1 << 10)
  78.  
  79. #define GEN6_3DSTATE_CC_STATE_POINTERS          CMD(3, 0, 0x0e)
  80.  
  81. #define GEN6_3DSTATE_VS                         CMD(3, 0, 0x10)
  82.  
  83. #define GEN6_3DSTATE_GS                         CMD(3, 0, 0x11)
  84. /* DW4 */
  85. # define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT       0
  86.  
  87. #define GEN6_3DSTATE_CLIP                       CMD(3, 0, 0x12)
  88.  
  89. #define GEN6_3DSTATE_SF                         CMD(3, 0, 0x13)
  90. /* DW1 on GEN6 */
  91. # define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT              22
  92. # define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT    11
  93. # define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT    4
  94. /* DW1 on GEN7 */
  95. # define GEN7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT      12
  96.  
  97.  
  98. /* DW2 */
  99. /* DW3 */
  100. # define GEN6_3DSTATE_SF_CULL_BOTH                      (0 << 29)
  101. # define GEN6_3DSTATE_SF_CULL_NONE                      (1 << 29)
  102. # define GEN6_3DSTATE_SF_CULL_FRONT                     (2 << 29)
  103. # define GEN6_3DSTATE_SF_CULL_BACK                      (3 << 29)
  104. /* DW4 */
  105. # define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT              29
  106. # define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT             27
  107. # define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT           25
  108.  
  109. #define GEN8_3DSTATE_RASTER                     CMD(3, 0, 0x50)
  110. # define GEN8_3DSTATE_RASTER_CULL_BOTH                  (0 << 16)
  111. # define GEN8_3DSTATE_RASTER_CULL_NONE                  (1 << 16)
  112. # define GEN8_3DSTATE_RASTER_CULL_FRONT                 (2 << 16)
  113. # define GEN8_3DSTATE_RASTER_CULL_BACK                  (3 << 16)
  114.  
  115. #define GEN6_3DSTATE_WM                         CMD(3, 0, 0x14)
  116. /* DW2 */
  117. # define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF                    27
  118. # define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT        18
  119. /* DW4 */
  120. # define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT             16
  121. /* DW5 */
  122. # define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT                      25
  123. # define GEN6_3DSTATE_WM_DISPATCH_ENABLE                        (1 << 19)
  124. # define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE                     (1 << 1)
  125. # define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE                      (1 << 0)
  126. /* DW6 */
  127. # define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT                   20
  128. # define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC      (1 << 15)
  129. # define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC    (1 << 14)
  130. # define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC       (1 << 13)
  131. # define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC         (1 << 12)
  132. # define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC       (1 << 11)
  133. # define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC          (1 << 10)
  134.  
  135. /* 3DSTATE_WM on GEN7 */
  136. /* DW1 */
  137. # define GEN7_WM_STATISTICS_ENABLE                              (1 << 31)
  138. # define GEN7_WM_DEPTH_CLEAR                                    (1 << 30)
  139. # define GEN7_WM_DISPATCH_ENABLE                                (1 << 29)
  140. # define GEN6_WM_DEPTH_RESOLVE                                  (1 << 28)
  141. # define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE                     (1 << 27)
  142. # define GEN7_WM_KILL_ENABLE                                    (1 << 25)
  143. # define GEN7_WM_PSCDEPTH_OFF                                   (0 << 23)
  144. # define GEN7_WM_PSCDEPTH_ON                                    (1 << 23)
  145. # define GEN7_WM_PSCDEPTH_ON_GE                                 (2 << 23)
  146. # define GEN7_WM_PSCDEPTH_ON_LE                                 (3 << 23)
  147. # define GEN7_WM_USES_SOURCE_DEPTH                              (1 << 20)
  148. # define GEN7_WM_USES_SOURCE_W                                  (1 << 19)
  149. # define GEN7_WM_POSITION_ZW_PIXEL                              (0 << 17)
  150. # define GEN7_WM_POSITION_ZW_CENTROID                           (2 << 17)
  151. # define GEN7_WM_POSITION_ZW_SAMPLE                             (3 << 17)
  152. # define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC              (1 << 16)
  153. # define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC            (1 << 15)
  154. # define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC               (1 << 14)
  155. # define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC                 (1 << 13)
  156. # define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC               (1 << 12)
  157. # define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC                  (1 << 11)
  158. # define GEN7_WM_USES_INPUT_COVERAGE_MASK                       (1 << 10)
  159. # define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5                      (0 << 8)
  160. # define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0                      (1 << 8)
  161. # define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0                      (2 << 8)
  162. # define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0                      (3 << 8)
  163. # define GEN7_WM_LINE_AA_WIDTH_0_5                              (0 << 6)
  164. # define GEN7_WM_LINE_AA_WIDTH_1_0                              (1 << 6)
  165. # define GEN7_WM_LINE_AA_WIDTH_2_0                              (2 << 6)
  166. # define GEN7_WM_LINE_AA_WIDTH_4_0                              (3 << 6)
  167. # define GEN7_WM_POLYGON_STIPPLE_ENABLE                         (1 << 4)
  168. # define GEN7_WM_LINE_STIPPLE_ENABLE                            (1 << 3)
  169. # define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT                     (1 << 2)
  170. # define GEN7_WM_MSRAST_OFF_PIXEL                               (0 << 0)
  171. # define GEN7_WM_MSRAST_OFF_PATTERN                             (1 << 0)
  172. # define GEN7_WM_MSRAST_ON_PIXEL                                (2 << 0)
  173. # define GEN7_WM_MSRAST_ON_PATTERN                              (3 << 0)
  174. /* DW2 */
  175. # define GEN7_WM_MSDISPMODE_PERPIXEL                            (1 << 31)
  176.  
  177. #define GEN6_3DSTATE_CONSTANT_VS                CMD(3, 0, 0x15)
  178. #define GEN6_3DSTATE_CONSTANT_GS                CMD(3, 0, 0x16)
  179. #define GEN6_3DSTATE_CONSTANT_PS                CMD(3, 0, 0x17)
  180.  
  181. /* Gen8 WM_HZ_OP */
  182. #define GEN8_3DSTATE_WM_HZ_OP                   CMD(3, 0, 0x52)
  183.  
  184.  
  185. # define GEN6_3DSTATE_CONSTANT_BUFFER_3_ENABLE  (1 << 15)
  186. # define GEN6_3DSTATE_CONSTANT_BUFFER_2_ENABLE  (1 << 14)
  187. # define GEN6_3DSTATE_CONSTANT_BUFFER_1_ENABLE  (1 << 13)
  188. # define GEN6_3DSTATE_CONSTANT_BUFFER_0_ENABLE  (1 << 12)
  189.  
  190. #define GEN6_3DSTATE_SAMPLE_MASK                CMD(3, 0, 0x18)
  191.  
  192. #define GEN6_3DSTATE_MULTISAMPLE                CMD(3, 1, 0x0d)
  193. /* DW1 */
  194. # define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER         (0 << 4)
  195. # define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT     (1 << 4)
  196. # define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1                  (0 << 1)
  197. # define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4                  (2 << 1)
  198. # define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8                  (3 << 1)
  199.  
  200. #define GEN8_3DSTATE_MULTISAMPLE                CMD(3, 0, 0x0d)
  201. #define GEN8_3DSTATE_SAMPLE_PATTERN             CMD(3, 1, 0x1C)
  202.  
  203. /* GEN7 */
  204. #define GEN7_3DSTATE_CLEAR_PARAMS               CMD(3, 0, 0x04)
  205. #define GEN7_3DSTATE_DEPTH_BUFFER               CMD(3, 0, 0x05)
  206. #define GEN7_3DSTATE_HIER_DEPTH_BUFFER          CMD(3, 0, 0x07)
  207.  
  208. #define GEN7_3DSTATE_URB_VS                     CMD(3, 0, 0x30)
  209. #define GEN7_3DSTATE_URB_HS                     CMD(3, 0, 0x31)
  210. #define GEN7_3DSTATE_URB_DS                     CMD(3, 0, 0x32)
  211. #define GEN7_3DSTATE_URB_GS                     CMD(3, 0, 0x33)
  212. /* DW1 */
  213. # define GEN7_URB_ENTRY_NUMBER_SHIFT            0
  214. # define GEN7_URB_ENTRY_SIZE_SHIFT              16
  215. # define GEN7_URB_STARTING_ADDRESS_SHIFT        25
  216.  
  217. #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS     CMD(3, 1, 0x12)
  218. #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS     CMD(3, 1, 0x16)
  219.  
  220. #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS     CMD(3, 1, 0x14)
  221. #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS     CMD(3, 1, 0x13)
  222. #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS     CMD(3, 1, 0x15)
  223. /* DW1 */
  224. # define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16
  225. # define GEN8_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16
  226. # define GEN8_PUSH_CONSTANT_BUFFER_SIZE_SHIFT   0
  227.  
  228. #define GEN7_3DSTATE_CONSTANT_HS                CMD(3, 0, 0x19)
  229. #define GEN7_3DSTATE_CONSTANT_DS                CMD(3, 0, 0x1a)
  230.  
  231. #define GEN7_3DSTATE_HS                         CMD(3, 0, 0x1b)
  232. #define GEN7_3DSTATE_TE                         CMD(3, 0, 0x1c)
  233. #define GEN7_3DSTATE_DS                         CMD(3, 0, 0x1d)
  234. #define GEN7_3DSTATE_STREAMOUT                  CMD(3, 0, 0x1e)
  235. #define GEN7_3DSTATE_SBE                        CMD(3, 0, 0x1f)
  236.  
  237. /* DW1 */
  238. # define GEN7_SBE_SWIZZLE_CONTROL_MODE          (1 << 28)
  239. # define GEN7_SBE_NUM_OUTPUTS_SHIFT             22
  240. # define GEN7_SBE_SWIZZLE_ENABLE                (1 << 21)
  241. # define GEN7_SBE_POINT_SPRITE_LOWERLEFT        (1 << 20)
  242. # define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT   11
  243. # define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT   4
  244. # define GEN8_SBE_FORCE_URB_ENTRY_READ_LENGTH  (1 << 29)
  245. # define GEN8_SBE_FORCE_URB_ENTRY_READ_OFFSET  (1 << 28)
  246.  
  247. # define GEN8_SBE_URB_ENTRY_READ_OFFSET_SHIFT   5
  248. #define GEN8_3DSTATE_SBE_SWIZ                    CMD(3, 0, 0x51)
  249.  
  250. #define GEN7_3DSTATE_PS                                 CMD(3, 0, 0x20)
  251. /* DW1: kernel pointer */
  252. /* DW2 */
  253. # define GEN7_PS_SPF_MODE                               (1 << 31)
  254. # define GEN7_PS_VECTOR_MASK_ENABLE                     (1 << 30)
  255. # define GEN7_PS_SAMPLER_COUNT_SHIFT                    27
  256. # define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT        18
  257. # define GEN7_PS_FLOATING_POINT_MODE_IEEE_754           (0 << 16)
  258. # define GEN7_PS_FLOATING_POINT_MODE_ALT                (1 << 16)
  259. /* DW3: scratch space */
  260. /* DW4 */
  261. # define GEN7_PS_MAX_THREADS_SHIFT_IVB                  24
  262. # define GEN7_PS_MAX_THREADS_SHIFT_HSW                  23
  263. # define GEN7_PS_SAMPLE_MASK_SHIFT_HSW                  12
  264. # define GEN7_PS_PUSH_CONSTANT_ENABLE                   (1 << 11)
  265. # define GEN7_PS_ATTRIBUTE_ENABLE                       (1 << 10)
  266. # define GEN7_PS_OMASK_TO_RENDER_TARGET                 (1 << 9)
  267. # define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE               (1 << 7)
  268. # define GEN7_PS_POSOFFSET_NONE                         (0 << 3)
  269. # define GEN7_PS_POSOFFSET_CENTROID                     (2 << 3)
  270. # define GEN7_PS_POSOFFSET_SAMPLE                       (3 << 3)
  271. # define GEN7_PS_32_DISPATCH_ENABLE                     (1 << 2)
  272. # define GEN7_PS_16_DISPATCH_ENABLE                     (1 << 1)
  273. # define GEN7_PS_8_DISPATCH_ENABLE                      (1 << 0)
  274. /* DW5 */
  275. # define GEN7_PS_DISPATCH_START_GRF_SHIFT_0             16
  276. # define GEN7_PS_DISPATCH_START_GRF_SHIFT_1             8
  277. # define GEN7_PS_DISPATCH_START_GRF_SHIFT_2             0
  278. /* DW6: kernel 1 pointer */
  279. /* DW7: kernel 2 pointer */
  280.  
  281. # define GEN8_PS_MAX_THREADS_SHIFT                      23
  282.  
  283. #define GEN8_3DSTATE_PSEXTRA                            CMD(3, 0, 0x4f)
  284. /* DW1 */
  285. # define GEN8_PSX_PIXEL_SHADER_VALID                    (1 << 31)
  286. # define GEN8_PSX_PSCDEPTH_OFF                          (0 << 26)
  287. # define GEN8_PSX_PSCDEPTH_ON                           (1 << 26)
  288. # define GEN8_PSX_PSCDEPTH_ON_GE                        (2 << 26)
  289. # define GEN8_PSX_PSCDEPTH_ON_LE                        (3 << 26)
  290. # define GEN8_PSX_ATTRIBUTE_ENABLE                      (1 << 8)
  291.  
  292. #define GEN8_3DSTATE_PSBLEND                            CMD(3, 0, 0x4d)
  293. /* DW1 */
  294. # define GEN8_PS_BLEND_ALPHA_TO_COVERAGE_ENABLE         (1 << 31)
  295. # define GEN8_PS_BLEND_HAS_WRITEABLE_RT                 (1 << 30)
  296. # define GEN8_PS_BLEND_COLOR_BUFFER_BLEND_ENABLE        (1 << 29)
  297. # define GEN8_PS_BLEND_SRC_ALPHA_BLEND_FACTOR_MASK      INTEL_MASK(28, 24)
  298. # define GEN8_PS_BLEND_SRC_ALPHA_BLEND_FACTOR_SHIFT     24
  299. # define GEN8_PS_BLEND_DST_ALPHA_BLEND_FACTOR_MASK      INTEL_MASK(23, 19)
  300. # define GEN8_PS_BLEND_DST_ALPHA_BLEND_FACTOR_SHIFT     19
  301. # define GEN8_PS_BLEND_SRC_BLEND_FACTOR_MASK            INTEL_MASK(18, 14)
  302. # define GEN8_PS_BLEND_SRC_BLEND_FACTOR_SHIFT           14
  303. # define GEN8_PS_BLEND_DST_BLEND_FACTOR_MASK            INTEL_MASK(13, 9)
  304. # define GEN8_PS_BLEND_DST_BLEND_FACTOR_SHIFT           9
  305. # define GEN8_PS_BLEND_ALPHA_TEST_ENABLE                (1 << 8)
  306. # define GEN8_PS_BLEND_INDEPENDENT_ALPHA_BLEND_ENABLE   (1 << 7)
  307.  
  308.  
  309. #define GEN7_3DSTATE_STENCIL_BUFFER                     CMD(3, 0, 0x06)
  310. #define GEN8_3DSTATE_WM_DEPTH_STENCIL                   CMD(3, 0, 0x4e)
  311.  
  312. #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL      CMD(3, 0, 0x21)
  313. #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC         CMD(3, 0, 0x23)
  314.  
  315. #define GEN7_3DSTATE_BLEND_STATE_POINTERS               CMD(3, 0, 0x24)
  316. #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS       CMD(3, 0, 0x25)
  317.  
  318. #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS          CMD(3, 0, 0x26)
  319. #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS          CMD(3, 0, 0x27)
  320. #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS          CMD(3, 0, 0x28)
  321. #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS          CMD(3, 0, 0x29)
  322. #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS          CMD(3, 0, 0x2a)
  323.  
  324. #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS          CMD(3, 0, 0x2b)
  325. #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS          CMD(3, 0, 0x2e)
  326. #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS          CMD(3, 0, 0x2f)
  327. #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS          CMD(3, 0, 0x2c)
  328. #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS          CMD(3, 0, 0x2d)
  329.  
  330. #define MFX(pipeline, op, sub_opa, sub_opb)     \
  331.     (3 << 29 |                                  \
  332.      (pipeline) << 27 |                         \
  333.      (op) << 24 |                               \
  334.      (sub_opa) << 21 |                          \
  335.      (sub_opb) << 16)
  336.  
  337. #define MFX_PIPE_MODE_SELECT                    MFX(2, 0, 0, 0)
  338. #define MFX_SURFACE_STATE                       MFX(2, 0, 0, 1)
  339. #define MFX_PIPE_BUF_ADDR_STATE                 MFX(2, 0, 0, 2)
  340. #define MFX_IND_OBJ_BASE_ADDR_STATE             MFX(2, 0, 0, 3)
  341. #define MFX_BSP_BUF_BASE_ADDR_STATE             MFX(2, 0, 0, 4)
  342. #define MFX_AES_STATE                           MFX(2, 0, 0, 5)
  343. #define MFX_STATE_POINTER                       MFX(2, 0, 0, 6)
  344. #define MFX_QM_STATE                            MFX(2, 0, 0, 7)
  345. #define MFX_FQM_STATE                           MFX(2, 0, 0, 8)
  346.  
  347. #define MFX_INSERT_OBJECT                       MFX(2, 0, 2, 8)
  348.  
  349. #define MFX_WAIT                                MFX(1, 0, 0, 0)
  350.  
  351. #define MFX_AVC_IMG_STATE                       MFX(2, 1, 0, 0)
  352. #define MFX_AVC_QM_STATE                        MFX(2, 1, 0, 1)
  353. #define MFX_AVC_DIRECTMODE_STATE                MFX(2, 1, 0, 2)
  354. #define MFX_AVC_SLICE_STATE                     MFX(2, 1, 0, 3)
  355. #define MFX_AVC_REF_IDX_STATE                   MFX(2, 1, 0, 4)
  356. #define MFX_AVC_WEIGHTOFFSET_STATE              MFX(2, 1, 0, 5)
  357.  
  358. #define MFD_AVC_PICID_STATE                     MFX(2, 1, 1, 5)
  359. #define MFD_AVC_BSD_OBJECT                      MFX(2, 1, 1, 8)
  360.  
  361. #define MFC_AVC_FQM_STATE                       MFX(2, 1, 2, 2)
  362. #define MFC_AVC_INSERT_OBJECT                   MFX(2, 1, 2, 8)
  363. #define MFC_AVC_PAK_OBJECT                      MFX(2, 1, 2, 9)
  364.  
  365. #define MFX_MPEG2_PIC_STATE                     MFX(2, 3, 0, 0)
  366. #define MFX_MPEG2_QM_STATE                      MFX(2, 3, 0, 1)
  367.  
  368. #define MFD_MPEG2_BSD_OBJECT                    MFX(2, 3, 1, 8)
  369.  
  370. #define MFC_MPEG2_SLICEGROUP_STATE              MFX(2, 3, 2, 3)
  371. #define MFC_MPEG2_PAK_OBJECT                    MFX(2, 3, 2, 9)
  372.  
  373. #define MFX_VC1_PIC_STATE                       MFX(2, 2, 0, 0)
  374. #define MFX_VC1_PRED_PIPE_STATE                 MFX(2, 2, 0, 1)
  375. #define MFX_VC1_DIRECTMODE_STATE                MFX(2, 2, 0, 2)
  376.  
  377. #define MFD_VC1_SHORT_PIC_STATE                 MFX(2, 2, 1, 0)
  378. #define MFD_VC1_LONG_PIC_STATE                  MFX(2, 2, 1, 1)
  379.  
  380. #define MFD_VC1_BSD_OBJECT                      MFX(2, 2, 1, 8)
  381.  
  382. #define MFX_JPEG_PIC_STATE                      MFX(2, 7, 0, 0)
  383. #define MFX_JPEG_HUFF_TABLE_STATE               MFX(2, 7, 0, 2)
  384.  
  385. #define MFD_JPEG_BSD_OBJECT                     MFX(2, 7, 1, 8)
  386.  
  387. #define MFX_VP8_PIC_STATE                       MFX(2, 4, 0, 0)
  388.  
  389. #define MFD_VP8_BSD_OBJECT                      MFX(2, 4, 1, 8)
  390.  
  391.  
  392. #define VEB(pipeline, op, sub_opa, sub_opb)     \
  393.      (3 << 29 |                                 \
  394.      (pipeline) << 27 |                         \
  395.      (op) << 24 |                               \
  396.      (sub_opa) << 21 |                          \
  397.      (sub_opb) << 16)
  398.  
  399. #define VEB_SURFACE_STATE                       VEB(2, 4, 0, 0)
  400. #define VEB_STATE                               VEB(2, 4, 0, 2)
  401. #define VEB_DNDI_IECP_STATE                     VEB(2, 4, 0, 3)
  402.  
  403. #define I965_DEPTHFORMAT_D32_FLOAT              1
  404.  
  405. #define BASE_ADDRESS_MODIFY             (1 << 0)
  406.  
  407. #define PIPELINE_SELECT_3D              0
  408. #define PIPELINE_SELECT_MEDIA           1
  409.  
  410.  
  411. #define UF0_CS_REALLOC                  (1 << 13)
  412. #define UF0_VFE_REALLOC                 (1 << 12)
  413. #define UF0_SF_REALLOC                  (1 << 11)
  414. #define UF0_CLIP_REALLOC                (1 << 10)
  415. #define UF0_GS_REALLOC                  (1 << 9)
  416. #define UF0_VS_REALLOC                  (1 << 8)
  417. #define UF1_CLIP_FENCE_SHIFT            20
  418. #define UF1_GS_FENCE_SHIFT              10
  419. #define UF1_VS_FENCE_SHIFT              0
  420. #define UF2_CS_FENCE_SHIFT              20
  421. #define UF2_VFE_FENCE_SHIFT             10
  422. #define UF2_SF_FENCE_SHIFT              0
  423.  
  424. #define VFE_GENERIC_MODE        0x0
  425. #define VFE_VLD_MODE            0x1
  426. #define VFE_IS_MODE             0x2
  427. #define VFE_AVC_MC_MODE         0x4
  428. #define VFE_AVC_IT_MODE         0x7
  429.  
  430. #define FLOATING_POINT_IEEE_754        0
  431. #define FLOATING_POINT_NON_IEEE_754    1
  432.  
  433.  
  434. #define I965_SURFACE_1D      0
  435. #define I965_SURFACE_2D      1
  436. #define I965_SURFACE_3D      2
  437. #define I965_SURFACE_CUBE    3
  438. #define I965_SURFACE_BUFFER  4
  439. #define I965_SURFACE_NULL    7
  440.  
  441. #define I965_SURFACEFORMAT_R32G32B32A32_FLOAT             0x000
  442. #define I965_SURFACEFORMAT_R32G32B32A32_SINT              0x001
  443. #define I965_SURFACEFORMAT_R32G32B32A32_UINT              0x002
  444. #define I965_SURFACEFORMAT_R32G32B32A32_UNORM             0x003
  445. #define I965_SURFACEFORMAT_R32G32B32A32_SNORM             0x004
  446. #define I965_SURFACEFORMAT_R64G64_FLOAT                   0x005
  447. #define I965_SURFACEFORMAT_R32G32B32X32_FLOAT             0x006
  448. #define I965_SURFACEFORMAT_R32G32B32A32_SSCALED           0x007
  449. #define I965_SURFACEFORMAT_R32G32B32A32_USCALED           0x008
  450. #define I965_SURFACEFORMAT_R32G32B32_FLOAT                0x040
  451. #define I965_SURFACEFORMAT_R32G32B32_SINT                 0x041
  452. #define I965_SURFACEFORMAT_R32G32B32_UINT                 0x042
  453. #define I965_SURFACEFORMAT_R32G32B32_UNORM                0x043
  454. #define I965_SURFACEFORMAT_R32G32B32_SNORM                0x044
  455. #define I965_SURFACEFORMAT_R32G32B32_SSCALED              0x045
  456. #define I965_SURFACEFORMAT_R32G32B32_USCALED              0x046
  457. #define I965_SURFACEFORMAT_R16G16B16A16_UNORM             0x080
  458. #define I965_SURFACEFORMAT_R16G16B16A16_SNORM             0x081
  459. #define I965_SURFACEFORMAT_R16G16B16A16_SINT              0x082
  460. #define I965_SURFACEFORMAT_R16G16B16A16_UINT              0x083
  461. #define I965_SURFACEFORMAT_R16G16B16A16_FLOAT             0x084
  462. #define I965_SURFACEFORMAT_R32G32_FLOAT                   0x085
  463. #define I965_SURFACEFORMAT_R32G32_SINT                    0x086
  464. #define I965_SURFACEFORMAT_R32G32_UINT                    0x087
  465. #define I965_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS       0x088
  466. #define I965_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT        0x089
  467. #define I965_SURFACEFORMAT_L32A32_FLOAT                   0x08A
  468. #define I965_SURFACEFORMAT_R32G32_UNORM                   0x08B
  469. #define I965_SURFACEFORMAT_R32G32_SNORM                   0x08C
  470. #define I965_SURFACEFORMAT_R64_FLOAT                      0x08D
  471. #define I965_SURFACEFORMAT_R16G16B16X16_UNORM             0x08E
  472. #define I965_SURFACEFORMAT_R16G16B16X16_FLOAT             0x08F
  473. #define I965_SURFACEFORMAT_A32X32_FLOAT                   0x090
  474. #define I965_SURFACEFORMAT_L32X32_FLOAT                   0x091
  475. #define I965_SURFACEFORMAT_I32X32_FLOAT                   0x092
  476. #define I965_SURFACEFORMAT_R16G16B16A16_SSCALED           0x093
  477. #define I965_SURFACEFORMAT_R16G16B16A16_USCALED           0x094
  478. #define I965_SURFACEFORMAT_R32G32_SSCALED                 0x095
  479. #define I965_SURFACEFORMAT_R32G32_USCALED                 0x096
  480. #define I965_SURFACEFORMAT_B8G8R8A8_UNORM                 0x0C0
  481. #define I965_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB            0x0C1
  482. #define I965_SURFACEFORMAT_R10G10B10A2_UNORM              0x0C2
  483. #define I965_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB         0x0C3
  484. #define I965_SURFACEFORMAT_R10G10B10A2_UINT               0x0C4
  485. #define I965_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM       0x0C5
  486. #define I965_SURFACEFORMAT_R8G8B8A8_UNORM                 0x0C7
  487. #define I965_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB            0x0C8
  488. #define I965_SURFACEFORMAT_R8G8B8A8_SNORM                 0x0C9
  489. #define I965_SURFACEFORMAT_R8G8B8A8_SINT                  0x0CA
  490. #define I965_SURFACEFORMAT_R8G8B8A8_UINT                  0x0CB
  491. #define I965_SURFACEFORMAT_R16G16_UNORM                   0x0CC
  492. #define I965_SURFACEFORMAT_R16G16_SNORM                   0x0CD
  493. #define I965_SURFACEFORMAT_R16G16_SINT                    0x0CE
  494. #define I965_SURFACEFORMAT_R16G16_UINT                    0x0CF
  495. #define I965_SURFACEFORMAT_R16G16_FLOAT                   0x0D0
  496. #define I965_SURFACEFORMAT_B10G10R10A2_UNORM              0x0D1
  497. #define I965_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB         0x0D2
  498. #define I965_SURFACEFORMAT_R11G11B10_FLOAT                0x0D3
  499. #define I965_SURFACEFORMAT_R32_SINT                       0x0D6
  500. #define I965_SURFACEFORMAT_R32_UINT                       0x0D7
  501. #define I965_SURFACEFORMAT_R32_FLOAT                      0x0D8
  502. #define I965_SURFACEFORMAT_R24_UNORM_X8_TYPELESS          0x0D9
  503. #define I965_SURFACEFORMAT_X24_TYPELESS_G8_UINT           0x0DA
  504. #define I965_SURFACEFORMAT_L16A16_UNORM                   0x0DF
  505. #define I965_SURFACEFORMAT_I24X8_UNORM                    0x0E0
  506. #define I965_SURFACEFORMAT_L24X8_UNORM                    0x0E1
  507. #define I965_SURFACEFORMAT_A24X8_UNORM                    0x0E2
  508. #define I965_SURFACEFORMAT_I32_FLOAT                      0x0E3
  509. #define I965_SURFACEFORMAT_L32_FLOAT                      0x0E4
  510. #define I965_SURFACEFORMAT_A32_FLOAT                      0x0E5
  511. #define I965_SURFACEFORMAT_B8G8R8X8_UNORM                 0x0E9
  512. #define I965_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB            0x0EA
  513. #define I965_SURFACEFORMAT_R8G8B8X8_UNORM                 0x0EB
  514. #define I965_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB            0x0EC
  515. #define I965_SURFACEFORMAT_R9G9B9E5_SHAREDEXP             0x0ED
  516. #define I965_SURFACEFORMAT_B10G10R10X2_UNORM              0x0EE
  517. #define I965_SURFACEFORMAT_L16A16_FLOAT                   0x0F0
  518. #define I965_SURFACEFORMAT_R32_UNORM                      0x0F1
  519. #define I965_SURFACEFORMAT_R32_SNORM                      0x0F2
  520. #define I965_SURFACEFORMAT_R10G10B10X2_USCALED            0x0F3
  521. #define I965_SURFACEFORMAT_R8G8B8A8_SSCALED               0x0F4
  522. #define I965_SURFACEFORMAT_R8G8B8A8_USCALED               0x0F5
  523. #define I965_SURFACEFORMAT_R16G16_SSCALED                 0x0F6
  524. #define I965_SURFACEFORMAT_R16G16_USCALED                 0x0F7
  525. #define I965_SURFACEFORMAT_R32_SSCALED                    0x0F8
  526. #define I965_SURFACEFORMAT_R32_USCALED                    0x0F9
  527. #define I965_SURFACEFORMAT_B5G6R5_UNORM                   0x100
  528. #define I965_SURFACEFORMAT_B5G6R5_UNORM_SRGB              0x101
  529. #define I965_SURFACEFORMAT_B5G5R5A1_UNORM                 0x102
  530. #define I965_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB            0x103
  531. #define I965_SURFACEFORMAT_B4G4R4A4_UNORM                 0x104
  532. #define I965_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB            0x105
  533. #define I965_SURFACEFORMAT_R8G8_UNORM                     0x106
  534. #define I965_SURFACEFORMAT_R8G8_SNORM                     0x107
  535. #define I965_SURFACEFORMAT_R8G8_SINT                      0x108
  536. #define I965_SURFACEFORMAT_R8G8_UINT                      0x109
  537. #define I965_SURFACEFORMAT_R16_UNORM                      0x10A
  538. #define I965_SURFACEFORMAT_R16_SNORM                      0x10B
  539. #define I965_SURFACEFORMAT_R16_SINT                       0x10C
  540. #define I965_SURFACEFORMAT_R16_UINT                       0x10D
  541. #define I965_SURFACEFORMAT_R16_FLOAT                      0x10E
  542. #define I965_SURFACEFORMAT_I16_UNORM                      0x111
  543. #define I965_SURFACEFORMAT_L16_UNORM                      0x112
  544. #define I965_SURFACEFORMAT_A16_UNORM                      0x113
  545. #define I965_SURFACEFORMAT_L8A8_UNORM                     0x114
  546. #define I965_SURFACEFORMAT_I16_FLOAT                      0x115
  547. #define I965_SURFACEFORMAT_L16_FLOAT                      0x116
  548. #define I965_SURFACEFORMAT_A16_FLOAT                      0x117
  549. #define I965_SURFACEFORMAT_R5G5_SNORM_B6_UNORM            0x119
  550. #define I965_SURFACEFORMAT_B5G5R5X1_UNORM                 0x11A
  551. #define I965_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB            0x11B
  552. #define I965_SURFACEFORMAT_R8G8_SSCALED                   0x11C
  553. #define I965_SURFACEFORMAT_R8G8_USCALED                   0x11D
  554. #define I965_SURFACEFORMAT_R16_SSCALED                    0x11E
  555. #define I965_SURFACEFORMAT_R16_USCALED                    0x11F
  556. #define I965_SURFACEFORMAT_P8A8_UNORM                     0x122
  557. #define I965_SURFACEFORMAT_A8P8_UNORM                     0x123
  558. #define I965_SURFACEFORMAT_R8_UNORM                       0x140
  559. #define I965_SURFACEFORMAT_R8_SNORM                       0x141
  560. #define I965_SURFACEFORMAT_R8_SINT                        0x142
  561. #define I965_SURFACEFORMAT_R8_UINT                        0x143
  562. #define I965_SURFACEFORMAT_A8_UNORM                       0x144
  563. #define I965_SURFACEFORMAT_I8_UNORM                       0x145
  564. #define I965_SURFACEFORMAT_L8_UNORM                       0x146
  565. #define I965_SURFACEFORMAT_P4A4_UNORM                     0x147
  566. #define I965_SURFACEFORMAT_A4P4_UNORM                     0x148
  567. #define I965_SURFACEFORMAT_R8_SSCALED                     0x149
  568. #define I965_SURFACEFORMAT_R8_USCALED                     0x14A
  569. #define I965_SURFACEFORMAT_R1_UINT                        0x181
  570. #define I965_SURFACEFORMAT_YCRCB_NORMAL                   0x182
  571. #define I965_SURFACEFORMAT_YCRCB_SWAPUVY                  0x183
  572. #define I965_SURFACEFORMAT_BC1_UNORM                      0x186
  573. #define I965_SURFACEFORMAT_BC2_UNORM                      0x187
  574. #define I965_SURFACEFORMAT_BC3_UNORM                      0x188
  575. #define I965_SURFACEFORMAT_BC4_UNORM                      0x189
  576. #define I965_SURFACEFORMAT_BC5_UNORM                      0x18A
  577. #define I965_SURFACEFORMAT_BC1_UNORM_SRGB                 0x18B
  578. #define I965_SURFACEFORMAT_BC2_UNORM_SRGB                 0x18C
  579. #define I965_SURFACEFORMAT_BC3_UNORM_SRGB                 0x18D
  580. #define I965_SURFACEFORMAT_MONO8                          0x18E
  581. #define I965_SURFACEFORMAT_YCRCB_SWAPUV                   0x18F
  582. #define I965_SURFACEFORMAT_YCRCB_SWAPY                    0x190
  583. #define I965_SURFACEFORMAT_DXT1_RGB                       0x191
  584. #define I965_SURFACEFORMAT_FXT1                           0x192
  585. #define I965_SURFACEFORMAT_R8G8B8_UNORM                   0x193
  586. #define I965_SURFACEFORMAT_R8G8B8_SNORM                   0x194
  587. #define I965_SURFACEFORMAT_R8G8B8_SSCALED                 0x195
  588. #define I965_SURFACEFORMAT_R8G8B8_USCALED                 0x196
  589. #define I965_SURFACEFORMAT_R64G64B64A64_FLOAT             0x197
  590. #define I965_SURFACEFORMAT_R64G64B64_FLOAT                0x198
  591. #define I965_SURFACEFORMAT_BC4_SNORM                      0x199
  592. #define I965_SURFACEFORMAT_BC5_SNORM                      0x19A
  593. #define I965_SURFACEFORMAT_R16G16B16_UNORM                0x19C
  594. #define I965_SURFACEFORMAT_R16G16B16_SNORM                0x19D
  595. #define I965_SURFACEFORMAT_R16G16B16_SSCALED              0x19E
  596. #define I965_SURFACEFORMAT_R16G16B16_USCALED              0x19F
  597.  
  598. #define I965_CULLMODE_BOTH      0
  599. #define I965_CULLMODE_NONE      1
  600. #define I965_CULLMODE_FRONT     2
  601. #define I965_CULLMODE_BACK      3
  602.  
  603. #define I965_MAPFILTER_NEAREST        0x0
  604. #define I965_MAPFILTER_LINEAR         0x1
  605. #define I965_MAPFILTER_ANISOTROPIC    0x2
  606.  
  607. #define I965_MIPFILTER_NONE        0  
  608. #define I965_MIPFILTER_NEAREST     1  
  609. #define I965_MIPFILTER_LINEAR      3
  610.  
  611. #define HSW_SCS_ZERO                      0
  612. #define HSW_SCS_ONE                       1
  613. #define HSW_SCS_RED                       4
  614. #define HSW_SCS_GREEN                     5
  615. #define HSW_SCS_BLUE                      6
  616. #define HSW_SCS_ALPHA                     7
  617.  
  618. #define I965_TEXCOORDMODE_WRAP            0
  619. #define I965_TEXCOORDMODE_MIRROR          1
  620. #define I965_TEXCOORDMODE_CLAMP           2
  621. #define I965_TEXCOORDMODE_CUBE            3
  622. #define I965_TEXCOORDMODE_CLAMP_BORDER    4
  623. #define I965_TEXCOORDMODE_MIRROR_ONCE     5
  624.  
  625. #define I965_BLENDFACTOR_ONE                 0x1
  626. #define I965_BLENDFACTOR_SRC_COLOR           0x2
  627. #define I965_BLENDFACTOR_SRC_ALPHA           0x3
  628. #define I965_BLENDFACTOR_DST_ALPHA           0x4
  629. #define I965_BLENDFACTOR_DST_COLOR           0x5
  630. #define I965_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
  631. #define I965_BLENDFACTOR_CONST_COLOR         0x7
  632. #define I965_BLENDFACTOR_CONST_ALPHA         0x8
  633. #define I965_BLENDFACTOR_SRC1_COLOR          0x9
  634. #define I965_BLENDFACTOR_SRC1_ALPHA          0x0A
  635. #define I965_BLENDFACTOR_ZERO                0x11
  636. #define I965_BLENDFACTOR_INV_SRC_COLOR       0x12
  637. #define I965_BLENDFACTOR_INV_SRC_ALPHA       0x13
  638. #define I965_BLENDFACTOR_INV_DST_ALPHA       0x14
  639. #define I965_BLENDFACTOR_INV_DST_COLOR       0x15
  640. #define I965_BLENDFACTOR_INV_CONST_COLOR     0x17
  641. #define I965_BLENDFACTOR_INV_CONST_ALPHA     0x18
  642. #define I965_BLENDFACTOR_INV_SRC1_COLOR      0x19
  643. #define I965_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
  644.  
  645. #define I965_BLENDFUNCTION_ADD               0
  646. #define I965_BLENDFUNCTION_SUBTRACT          1
  647. #define I965_BLENDFUNCTION_REVERSE_SUBTRACT  2
  648. #define I965_BLENDFUNCTION_MIN               3
  649. #define I965_BLENDFUNCTION_MAX               4
  650.  
  651. #define I965_SURFACERETURNFORMAT_FLOAT32  0
  652. #define I965_SURFACERETURNFORMAT_S1       1
  653.  
  654. #define I965_VFCOMPONENT_NOSTORE      0
  655. #define I965_VFCOMPONENT_STORE_SRC    1
  656. #define I965_VFCOMPONENT_STORE_0      2
  657. #define I965_VFCOMPONENT_STORE_1_FLT  3
  658. #define I965_VFCOMPONENT_STORE_1_INT  4
  659. #define I965_VFCOMPONENT_STORE_VID    5
  660. #define I965_VFCOMPONENT_STORE_IID    6
  661. #define I965_VFCOMPONENT_STORE_PID    7
  662.  
  663. #define VE0_VERTEX_BUFFER_INDEX_SHIFT   27
  664. #define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT      26 /* for GEN6 */
  665. #define VE0_VALID                       (1 << 26)
  666. #define GEN6_VE0_VALID                  (1 << 25) /* for GEN6 */
  667. #define VE0_FORMAT_SHIFT                16
  668. #define VE0_OFFSET_SHIFT                0
  669. #define VE1_VFCOMPONENT_0_SHIFT         28
  670. #define VE1_VFCOMPONENT_1_SHIFT         24
  671. #define VE1_VFCOMPONENT_2_SHIFT         20
  672. #define VE1_VFCOMPONENT_3_SHIFT         16
  673. #define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT    0
  674. #define GEN8_VE0_VERTEX_BUFFER_INDEX_SHIFT      26 /* for GEN8 */
  675. #define GEN8_VE0_VALID                  (1 << 25)  /* for GEN8 */
  676.  
  677. #define VB0_BUFFER_INDEX_SHIFT          27
  678. #define GEN6_VB0_BUFFER_INDEX_SHIFT     26
  679. #define VB0_VERTEXDATA                  (0 << 26)
  680. #define VB0_INSTANCEDATA                (1 << 26)
  681. #define GEN6_VB0_VERTEXDATA             (0 << 20)
  682. #define GEN6_VB0_INSTANCEDATA           (1 << 20)
  683. #define GEN7_VB0_ADDRESS_MODIFYENABLE   (1 << 14)
  684. #define VB0_BUFFER_PITCH_SHIFT          0
  685. #define GEN8_VB0_BUFFER_INDEX_SHIFT     26
  686. #define GEN8_VB0_MOCS_SHIFT             16
  687.  
  688. #define _3DPRIMITIVE_VERTEX_SEQUENTIAL  (0 << 15)
  689. #define _3DPRIMITIVE_VERTEX_RANDOM      (1 << 15)
  690. #define _3DPRIMITIVE_TOPOLOGY_SHIFT     10
  691. /* DW1 on GEN7*/
  692. # define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL     (0 << 8)
  693. # define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM         (1 << 8)
  694.  
  695. #define _3DPRIM_POINTLIST         0x01
  696. #define _3DPRIM_LINELIST          0x02
  697. #define _3DPRIM_LINESTRIP         0x03
  698. #define _3DPRIM_TRILIST           0x04
  699. #define _3DPRIM_TRISTRIP          0x05
  700. #define _3DPRIM_TRIFAN            0x06
  701. #define _3DPRIM_QUADLIST          0x07
  702. #define _3DPRIM_QUADSTRIP         0x08
  703. #define _3DPRIM_LINELIST_ADJ      0x09
  704. #define _3DPRIM_LINESTRIP_ADJ     0x0A
  705. #define _3DPRIM_TRILIST_ADJ       0x0B
  706. #define _3DPRIM_TRISTRIP_ADJ      0x0C
  707. #define _3DPRIM_TRISTRIP_REVERSE  0x0D
  708. #define _3DPRIM_POLYGON           0x0E
  709. #define _3DPRIM_RECTLIST          0x0F
  710. #define _3DPRIM_LINELOOP          0x10
  711. #define _3DPRIM_POINTLIST_BF      0x11
  712. #define _3DPRIM_LINESTRIP_CONT    0x12
  713. #define _3DPRIM_LINESTRIP_BF      0x13
  714. #define _3DPRIM_LINESTRIP_CONT_BF 0x14
  715. #define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
  716.  
  717. #define GEN8_3DSTATE_VF_TOPOLOGY        CMD(3, 0, 0x4b)
  718.  
  719. #define I965_TILEWALK_XMAJOR                 0
  720. #define I965_TILEWALK_YMAJOR                 1
  721.  
  722. #define SCAN_RASTER_ORDER       0
  723. #define SCAN_SPECIAL_ORDER      1
  724.  
  725. #define ENTROPY_CAVLD           0
  726. #define ENTROPY_CABAC           1
  727.  
  728. #define SLICE_TYPE_P            0
  729. #define SLICE_TYPE_B            1
  730. #define SLICE_TYPE_I            2
  731. #define SLICE_TYPE_SP           3
  732. #define SLICE_TYPE_SI           4
  733.  
  734. #define PRESENT_REF_LIST0               (1 << 0)
  735. #define PRESENT_REF_LIST1               (1 << 1)
  736. #define PRESENT_WEIGHT_OFFSET_L0        (1 << 2)
  737. #define PRESENT_WEIGHT_OFFSET_L1        (1 << 3)
  738.  
  739. #define RESIDUAL_DATA_OFFSET    48
  740.  
  741. #define PRESENT_NOMV            0
  742. #define PRESENT_NOWO            1
  743. #define PRESENT_MV_WO           3
  744.  
  745. #define SCOREBOARD_STALLING     0
  746. #define SCOREBOARD_NON_STALLING 1
  747.  
  748. #define SURFACE_FORMAT_YCRCB_NORMAL     0
  749. #define SURFACE_FORMAT_YCRCB_SWAPUVY    1
  750. #define SURFACE_FORMAT_YCRCB_SWAPUV     2
  751. #define SURFACE_FORMAT_YCRCB_SWAPY      3
  752. #define SURFACE_FORMAT_PLANAR_420_8     4
  753. #define SURFACE_FORMAT_PLANAR_411_8     5
  754. #define SURFACE_FORMAT_PLANAR_422_8     6
  755. #define SURFACE_FORMAT_STMM_DN_STATISTICS       7
  756. #define SURFACE_FORMAT_R10G10B10A2_UNORM        8
  757. #define SURFACE_FORMAT_R8G8B8A8_UNORM   9
  758. #define SURFACE_FORMAT_R8B8_UNORM       10
  759. #define SURFACE_FORMAT_R8_UNORM         11
  760. #define SURFACE_FORMAT_Y8_UNORM         12
  761.  
  762. #define AVS_FILTER_ADAPTIVE_8_TAP       0
  763. #define AVS_FILTER_NEAREST              1
  764.  
  765. #define IEF_FILTER_COMBO                0
  766. #define IEF_FILTER_DETAIL               1
  767.  
  768. #define IEF_FILTER_SIZE_3X3             0
  769. #define IEF_FILTER_SIZE_5X5             1
  770.  
  771. #define MFX_FORMAT_MPEG2        0
  772. #define MFX_FORMAT_VC1          1
  773. #define MFX_FORMAT_AVC          2
  774. #define MFX_FORMAT_JPEG         3
  775. #define MFX_FORMAT_SVC          4
  776. #define MFX_FORMAT_VP8          5
  777.  
  778. #define MFX_SHORT_MODE          0
  779. #define MFX_LONG_MODE           1
  780.  
  781. #define MFX_CODEC_DECODE        0
  782. #define MFX_CODEC_ENCODE        1
  783.  
  784. #define MFX_QM_AVC_4X4_INTRA_MATRIX     0
  785. #define MFX_QM_AVC_4X4_INTER_MATRIX     1
  786. #define MFX_QM_AVC_8x8_INTRA_MATRIX     2
  787. #define MFX_QM_AVC_8x8_INTER_MATRIX     3
  788.  
  789. #define MFX_QM_MPEG_INTRA_QUANTIZER_MATRIX      0
  790. #define MFX_QM_MPEG_NON_INTRA_QUANTIZER_MATRIX  1
  791.  
  792. #define MFX_QM_JPEG_LUMA_Y_QUANTIZER_MATRIX     0
  793. #define MFX_QM_JPEG_CHROMA_CB_QUANTIZER_MATRIX  1
  794. #define MFX_QM_JPEG_CHROMA_CR_QUANTIZER_MATRIX  2
  795. #define MFX_QM_JPEG_ALPHA_QUANTIZER_MATRIX      3 /* for new device */
  796.  
  797. #define MFX_HUFFTABLE_ID_Y                      0
  798. #define MFX_HUFFTABLE_ID_UV                     1 /* UV on Ivybridge */
  799.  
  800. #define MFD_MODE_VLD            0
  801. #define MFD_MODE_IT             1
  802.  
  803. #define MFX_SURFACE_PLANAR_420_8        4
  804. #define MFX_SURFACE_PLANAR_411_8        5
  805. #define MFX_SURFACE_PLANAR_422_8        6
  806. #define MFX_SURFACE_MONOCHROME          12
  807.  
  808. #define MPEG_I_PICTURE          1
  809. #define MPEG_P_PICTURE          2
  810. #define MPEG_B_PICTURE          3
  811.  
  812. #define MPEG_TOP_FIELD          1
  813. #define MPEG_BOTTOM_FIELD       2
  814. #define MPEG_FRAME              3
  815.  
  816. #define SUBSAMPLE_YUV400        0
  817. #define SUBSAMPLE_YUV420        1
  818. #define SUBSAMPLE_YUV422H       2
  819. #define SUBSAMPLE_YUV422V       3
  820. #define SUBSAMPLE_YUV444        4
  821. #define SUBSAMPLE_YUV411        5
  822. #define SUBSAMPLE_RGBX          6
  823.  
  824. #endif /* _I965_DEFINES_H_ */
  825.