~ubuntu-branches/ubuntu/raring/mesa/raring-proposed

« back to all changes in this revision

Viewing changes to src/mesa/drivers/dri/i965/brw_defines.h

  • Committer: Bazaar Package Importer
  • Author(s): Cyril Brulebois
  • Date: 2011-06-19 21:26:00 UTC
  • mfrom: (1.6.1 upstream) (3.3.18 sid)
  • mto: (3.3.20 sid)
  • mto: This revision was merged to the branch mainline in revision 145.
  • Revision ID: james.westby@ubuntu.com-20110619212600-rleaapdmnbtstekb
Tags: 7.11~0-2
Thank you sbuild for giving a green light when that's not actually the
case. Fix missing Pre-Depends for the libegl1-mesa-drivers package
(multiarch-support).

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
  * Authors:
29
29
  *   Keith Whitwell <keith@tungstengraphics.com>
30
30
  */
31
 
 
 
31
 
 
32
#define INTEL_MASK(high, low) (((1<<((high)-(low)+1))-1)<<(low))
 
33
#define SET_FIELD(value, field) (((value) << field ## _SHIFT) & field ## _MASK)
 
34
#define GET_FIELD(word, field) (((word)  & field ## _MASK) >> field ## _SHIFT)
32
35
 
33
36
#ifndef BRW_DEFINES_H
34
37
#define BRW_DEFINES_H
35
38
 
36
39
/* 3D state:
37
40
 */
38
 
#define _3DOP_3DSTATE_PIPELINED       0x0
39
 
#define _3DOP_3DSTATE_NONPIPELINED    0x1
40
 
#define _3DOP_3DCONTROL               0x2
41
 
#define _3DOP_3DPRIMITIVE             0x3
42
 
 
43
 
#define _3DSTATE_PIPELINED_POINTERS       0x00
44
 
#define _3DSTATE_BINDING_TABLE_POINTERS   0x01
45
 
#define _3DSTATE_VERTEX_BUFFERS           0x08
46
 
#define _3DSTATE_VERTEX_ELEMENTS          0x09
47
 
#define _3DSTATE_INDEX_BUFFER             0x0A
48
 
#define _3DSTATE_VF_STATISTICS            0x0B
49
 
#define _3DSTATE_DRAWING_RECTANGLE            0x00
50
 
#define _3DSTATE_CONSTANT_COLOR               0x01
51
 
#define _3DSTATE_SAMPLER_PALETTE_LOAD         0x02
52
 
#define _3DSTATE_CHROMA_KEY                   0x04
53
 
#define _3DSTATE_DEPTH_BUFFER                 0x05
54
 
#define _3DSTATE_POLY_STIPPLE_OFFSET          0x06
55
 
#define _3DSTATE_POLY_STIPPLE_PATTERN         0x07
56
 
#define _3DSTATE_LINE_STIPPLE                 0x08
57
 
#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP    0x09
58
 
#define _3DCONTROL    0x00
59
 
 
60
41
#define PIPE_CONTROL_NOWRITE          0x00
61
42
#define PIPE_CONTROL_WRITEIMMEDIATE   0x01
62
43
#define PIPE_CONTROL_WRITEDEPTH       0x02
65
46
#define PIPE_CONTROL_GTTWRITE_PROCESS_LOCAL 0x00
66
47
#define PIPE_CONTROL_GTTWRITE_GLOBAL        0x01
67
48
 
 
49
#define CMD_3D_PRIM                                 0x7b00 /* 3DPRIMITIVE */
 
50
/* DW0 */
 
51
# define GEN4_3DPRIM_TOPOLOGY_TYPE_SHIFT            10
 
52
# define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 15)
 
53
# define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     (1 << 15)
 
54
/* DW1 */
 
55
# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8)
 
56
# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     (1 << 8)
 
57
 
68
58
#define _3DPRIM_POINTLIST         0x01
69
59
#define _3DPRIM_LINELIST          0x02
70
60
#define _3DPRIM_LINESTRIP         0x03
87
77
#define _3DPRIM_LINESTRIP_CONT_BF 0x14
88
78
#define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
89
79
 
90
 
#define _3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL 0
91
 
#define _3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     1
92
 
 
93
80
#define BRW_ANISORATIO_2     0 
94
81
#define BRW_ANISORATIO_4     1 
95
82
#define BRW_ANISORATIO_6     2 
169
156
#define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT     0
170
157
#define BRW_DEPTHFORMAT_D32_FLOAT                1
171
158
#define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT        2
 
159
#define BRW_DEPTHFORMAT_D24_UNORM_X8_UINT        3 /* GEN5 */
172
160
#define BRW_DEPTHFORMAT_D16_UNORM                5
173
161
 
174
162
#define BRW_FLOATING_POINT_IEEE_754        0
258
246
#define BRW_STENCILOP_DECR               6
259
247
#define BRW_STENCILOP_INVERT             7
260
248
 
 
249
/* Surface state DW0 */
 
250
#define BRW_SURFACE_RC_READ_WRITE       (1 << 8)
 
251
#define BRW_SURFACE_MIPLAYOUT_SHIFT     10
261
252
#define BRW_SURFACE_MIPMAPLAYOUT_BELOW   0
262
253
#define BRW_SURFACE_MIPMAPLAYOUT_RIGHT   1
 
254
#define BRW_SURFACE_CUBEFACE_ENABLES    0x3f
 
255
#define BRW_SURFACE_BLEND_ENABLED       (1 << 13)
 
256
#define BRW_SURFACE_WRITEDISABLE_B_SHIFT        14
 
257
#define BRW_SURFACE_WRITEDISABLE_G_SHIFT        15
 
258
#define BRW_SURFACE_WRITEDISABLE_R_SHIFT        16
 
259
#define BRW_SURFACE_WRITEDISABLE_A_SHIFT        17
263
260
 
264
261
#define BRW_SURFACEFORMAT_R32G32B32A32_FLOAT             0x000 
265
262
#define BRW_SURFACEFORMAT_R32G32B32A32_SINT              0x001 
389
386
#define BRW_SURFACEFORMAT_R8_SSCALED                     0x149
390
387
#define BRW_SURFACEFORMAT_R8_USCALED                     0x14A
391
388
#define BRW_SURFACEFORMAT_L8_UNORM_SRGB                  0x14C
 
389
#define BRW_SURFACEFORMAT_DXT1_RGB_SRGB                  0x180
392
390
#define BRW_SURFACEFORMAT_R1_UINT                        0x181 
393
391
#define BRW_SURFACEFORMAT_YCRCB_NORMAL                   0x182 
394
392
#define BRW_SURFACEFORMAT_YCRCB_SWAPUVY                  0x183 
417
415
#define BRW_SURFACEFORMAT_R16G16B16_SNORM                0x19D 
418
416
#define BRW_SURFACEFORMAT_R16G16B16_SSCALED              0x19E 
419
417
#define BRW_SURFACEFORMAT_R16G16B16_USCALED              0x19F
 
418
#define BRW_SURFACE_FORMAT_SHIFT        18
 
419
#define BRW_SURFACE_FORMAT_MASK         INTEL_MASK(26, 18)
420
420
 
421
421
#define BRW_SURFACERETURNFORMAT_FLOAT32  0
422
422
#define BRW_SURFACERETURNFORMAT_S1       1
423
423
 
 
424
#define BRW_SURFACE_TYPE_SHIFT          29
 
425
#define BRW_SURFACE_TYPE_MASK           INTEL_MASK(31, 29)
424
426
#define BRW_SURFACE_1D      0
425
427
#define BRW_SURFACE_2D      1
426
428
#define BRW_SURFACE_3D      2
428
430
#define BRW_SURFACE_BUFFER  4
429
431
#define BRW_SURFACE_NULL    7
430
432
 
 
433
/* Surface state DW2 */
 
434
#define BRW_SURFACE_HEIGHT_SHIFT        19
 
435
#define BRW_SURFACE_HEIGHT_MASK         INTEL_MASK(31, 19)
 
436
#define BRW_SURFACE_WIDTH_SHIFT         6
 
437
#define BRW_SURFACE_WIDTH_MASK          INTEL_MASK(18, 6)
 
438
#define BRW_SURFACE_LOD_SHIFT           2
 
439
#define BRW_SURFACE_LOD_MASK            INTEL_MASK(5, 2)
 
440
 
 
441
/* Surface state DW3 */
 
442
#define BRW_SURFACE_DEPTH_SHIFT         21
 
443
#define BRW_SURFACE_DEPTH_MASK          INTEL_MASK(31, 21)
 
444
#define BRW_SURFACE_PITCH_SHIFT         3
 
445
#define BRW_SURFACE_PITCH_MASK          INTEL_MASK(19, 3)
 
446
#define BRW_SURFACE_TILED               (1 << 1)
 
447
#define BRW_SURFACE_TILED_Y             (1 << 0)
 
448
 
 
449
/* Surface state DW4 */
 
450
#define BRW_SURFACE_MIN_LOD_SHIFT       28
 
451
#define BRW_SURFACE_MIN_LOD_MASK        INTEL_MASK(31, 28)
 
452
 
 
453
/* Surface state DW5 */
 
454
#define BRW_SURFACE_X_OFFSET_SHIFT      25
 
455
#define BRW_SURFACE_X_OFFSET_MASK       INTEL_MASK(31, 25)
 
456
#define BRW_SURFACE_Y_OFFSET_SHIFT      20
 
457
#define BRW_SURFACE_Y_OFFSET_MASK       INTEL_MASK(23, 20)
 
458
 
431
459
#define BRW_TEXCOORDMODE_WRAP            0
432
460
#define BRW_TEXCOORDMODE_MIRROR          1
433
461
#define BRW_TEXCOORDMODE_CLAMP           2
680
708
#define BRW_MESSAGE_TARGET_MATH               1 /* reserved on GEN6 */
681
709
#define BRW_MESSAGE_TARGET_SAMPLER            2
682
710
#define BRW_MESSAGE_TARGET_GATEWAY            3
683
 
#define BRW_MESSAGE_TARGET_DATAPORT_READ      4 /* sampler cache on GEN6 */
684
 
#define BRW_MESSAGE_TARGET_DATAPORT_WRITE     5 /* render cache on Gen6 */
 
711
#define BRW_MESSAGE_TARGET_DATAPORT_READ      4
 
712
#define BRW_MESSAGE_TARGET_DATAPORT_WRITE     5
685
713
#define BRW_MESSAGE_TARGET_URB                6
686
714
#define BRW_MESSAGE_TARGET_THREAD_SPAWNER     7
687
 
#define BRW_MESSAGE_TARGET_CONST_CACHE        9 /* GEN6 */
 
715
 
 
716
#define GEN6_MESSAGE_TARGET_DP_SAMPLER_CACHE  4
 
717
#define GEN6_MESSAGE_TARGET_DP_RENDER_CACHE   5
 
718
#define GEN6_MESSAGE_TARGET_DP_CONST_CACHE    9
688
719
 
689
720
#define BRW_SAMPLER_RETURN_FORMAT_FLOAT32     0
690
721
#define BRW_SAMPLER_RETURN_FORMAT_UINT32      2
700
731
#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS    2
701
732
#define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE    0
702
733
#define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE     2
 
734
#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_BIAS_COMPARE 0
 
735
#define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_LOD_COMPARE  1
703
736
#define BRW_SAMPLER_MESSAGE_SIMD4X2_RESINFO           2
704
737
#define BRW_SAMPLER_MESSAGE_SIMD8_RESINFO             2
705
738
#define BRW_SAMPLER_MESSAGE_SIMD16_RESINFO            2
707
740
#define BRW_SAMPLER_MESSAGE_SIMD8_LD                  3
708
741
#define BRW_SAMPLER_MESSAGE_SIMD16_LD                 3
709
742
 
710
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_GEN5            0
711
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_BIAS_GEN5       1
712
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_LOD_GEN5        2
713
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_COMPARE_GEN5    3
714
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_DERIVS_GEN5     4
715
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_BIAS_COMPARE_GEN5 5
716
 
#define BRW_SAMPLER_MESSAGE_SAMPLE_LOD_COMPARE_GEN5 6
 
743
#define GEN5_SAMPLER_MESSAGE_SAMPLE              0
 
744
#define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS         1
 
745
#define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD          2
 
746
#define GEN5_SAMPLER_MESSAGE_SAMPLE_COMPARE      3
 
747
#define GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS       4
 
748
#define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS_COMPARE 5
 
749
#define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD_COMPARE  6
717
750
 
718
751
/* for GEN5 only */
719
752
#define BRW_SAMPLER_SIMD_MODE_SIMD4X2                   0
764
797
 
765
798
#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE                0
766
799
#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE           1
767
 
#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_BLOCK_WRITE                2
 
800
#define BRW_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE                2
768
801
#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE            3
769
802
#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE              4
770
803
#define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE     5
771
804
#define BRW_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE               7
772
805
 
773
806
/* GEN6 */
774
 
#define BRW_DATAPORT_WRITE_MESSAGE_DWORD_ATOMIC_WRITE_GEN6              7
775
 
#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE_GEN6               8
776
 
#define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE_GEN6          9
777
 
#define BRW_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE_GEN6               10
778
 
#define BRW_DATAPORT_WRITE_MESSAGE_DWORLD_SCATTERED_WRITE_GEN6          11
779
 
#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE_GEN6             12
780
 
#define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VB_WRITE_GEN6               13
781
 
#define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_UNORM_WRITE_GEN6       14
 
807
#define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_ATOMIC_WRITE              7
 
808
#define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE               8
 
809
#define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE          9
 
810
#define GEN6_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE               10
 
811
#define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE           11
 
812
#define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE             12
 
813
#define GEN6_DATAPORT_WRITE_MESSAGE_STREAMED_VB_WRITE               13
 
814
#define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_UNORM_WRITE       14
782
815
 
783
816
#define BRW_MATH_FUNCTION_INV                              1
784
817
#define BRW_MATH_FUNCTION_LOG                              2
838
871
#define CMD_PIPELINE_SELECT_965       0x6104
839
872
#define CMD_PIPELINE_SELECT_GM45      0x6904
840
873
 
841
 
#define CMD_PIPELINED_STATE_POINTERS  0x7800
842
 
#define CMD_BINDING_TABLE_PTRS        0x7801
 
874
#define _3DSTATE_PIPELINED_POINTERS             0x7800
 
875
#define _3DSTATE_BINDING_TABLE_POINTERS         0x7801
843
876
# define GEN6_BINDING_TABLE_MODIFY_VS   (1 << 8)
844
877
# define GEN6_BINDING_TABLE_MODIFY_GS   (1 << 9)
845
878
# define GEN6_BINDING_TABLE_MODIFY_PS   (1 << 12)
846
879
 
847
 
#define CMD_3D_SAMPLER_STATE_POINTERS                   0x7802 /* SNB+ */
 
880
#define _3DSTATE_BINDING_TABLE_POINTERS_VS      0x7826 /* GEN7+ */
 
881
#define _3DSTATE_BINDING_TABLE_POINTERS_HS      0x7827 /* GEN7+ */
 
882
#define _3DSTATE_BINDING_TABLE_POINTERS_DS      0x7828 /* GEN7+ */
 
883
#define _3DSTATE_BINDING_TABLE_POINTERS_GS      0x7829 /* GEN7+ */
 
884
#define _3DSTATE_BINDING_TABLE_POINTERS_PS      0x782A /* GEN7+ */
 
885
 
 
886
#define _3DSTATE_SAMPLER_STATE_POINTERS         0x7802 /* GEN6+ */
848
887
# define PS_SAMPLER_STATE_CHANGE                                (1 << 12)
849
888
# define GS_SAMPLER_STATE_CHANGE                                (1 << 9)
850
889
# define VS_SAMPLER_STATE_CHANGE                                (1 << 8)
852
891
/* DW2: GS */
853
892
/* DW3: PS */
854
893
 
 
894
#define _3DSTATE_SAMPLER_STATE_POINTERS_VS      0x782B /* GEN7+ */
 
895
#define _3DSTATE_SAMPLER_STATE_POINTERS_GS      0x782E /* GEN7+ */
 
896
#define _3DSTATE_SAMPLER_STATE_POINTERS_PS      0x782F /* GEN7+ */
 
897
 
855
898
#define CMD_VERTEX_BUFFER             0x7808
856
899
# define BRW_VB0_INDEX_SHIFT            27
857
900
# define GEN6_VB0_INDEX_SHIFT           26
859
902
# define BRW_VB0_ACCESS_INSTANCEDATA    (1 << 26)
860
903
# define GEN6_VB0_ACCESS_VERTEXDATA     (0 << 20)
861
904
# define GEN6_VB0_ACCESS_INSTANCEDATA   (1 << 20)
 
905
# define GEN7_VB0_ADDRESS_MODIFYENABLE  (1 << 14)
862
906
# define BRW_VB0_PITCH_SHIFT            0
863
907
 
864
908
#define CMD_VERTEX_ELEMENT            0x7809
885
929
#define CMD_INDEX_BUFFER              0x780a
886
930
#define CMD_VF_STATISTICS_965          0x780b
887
931
#define CMD_VF_STATISTICS_GM45        0x680b
888
 
#define CMD_3D_CC_STATE_POINTERS      0x780e /* GEN6+ */
 
932
#define _3DSTATE_CC_STATE_POINTERS              0x780e /* GEN6+ */
 
933
#define _3DSTATE_BLEND_STATE_POINTERS           0x7824 /* GEN7+ */
 
934
#define _3DSTATE_DEPTH_STENCIL_STATE_POINTERS   0x7825 /* GEN7+ */
889
935
 
890
 
#define CMD_URB                                 0x7805 /* GEN6+ */
 
936
#define _3DSTATE_URB                            0x7805 /* GEN6 */
891
937
# define GEN6_URB_VS_SIZE_SHIFT                         16
892
938
# define GEN6_URB_VS_ENTRIES_SHIFT                      0
893
939
# define GEN6_URB_GS_ENTRIES_SHIFT                      8
894
940
# define GEN6_URB_GS_SIZE_SHIFT                         0
895
941
 
896
 
#define CMD_VIEWPORT_STATE_POINTERS                     0x780d /* GEN6+ */
 
942
#define _3DSTATE_URB_VS                         0x7830 /* GEN7+ */
 
943
#define _3DSTATE_URB_HS                         0x7831 /* GEN7+ */
 
944
#define _3DSTATE_URB_DS                         0x7832 /* GEN7+ */
 
945
#define _3DSTATE_URB_GS                         0x7833 /* GEN7+ */
 
946
# define GEN7_URB_ENTRY_SIZE_SHIFT                      16
 
947
# define GEN7_URB_STARTING_ADDRESS_SHIFT                25
 
948
 
 
949
#define _3DSTATE_PUSH_CONSTANT_ALLOC_VS         0x7912 /* GEN7+ */
 
950
#define _3DSTATE_PUSH_CONSTANT_ALLOC_PS         0x7916 /* GEN7+ */
 
951
# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT         16
 
952
 
 
953
#define _3DSTATE_VIEWPORT_STATE_POINTERS        0x780d /* GEN6+ */
897
954
# define GEN6_CC_VIEWPORT_MODIFY                        (1 << 12)
898
955
# define GEN6_SF_VIEWPORT_MODIFY                        (1 << 11)
899
956
# define GEN6_CLIP_VIEWPORT_MODIFY                      (1 << 10)
900
957
 
901
 
#define CMD_3D_SCISSOR_STATE_POINTERS           0x780f /* GEN6+ */
902
 
 
903
 
#define CMD_3D_VS_STATE               0x7810 /* GEN6+ */
 
958
#define _3DSTATE_VIEWPORT_STATE_POINTERS_CC     0x7823 /* GEN7+ */
 
959
#define _3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL  0x7821 /* GEN7+ */
 
960
 
 
961
#define _3DSTATE_SCISSOR_STATE_POINTERS         0x780f /* GEN6+ */
 
962
 
 
963
#define _3DSTATE_VS                             0x7810 /* GEN6+ */
904
964
/* DW2 */
905
965
# define GEN6_VS_SPF_MODE                               (1 << 31)
906
966
# define GEN6_VS_VECTOR_MASK_ENABLE                     (1 << 30)
918
978
# define GEN6_VS_CACHE_DISABLE                          (1 << 1)
919
979
# define GEN6_VS_ENABLE                                 (1 << 0)
920
980
 
921
 
#define CMD_3D_GS_STATE               0x7811 /* GEN6+ */
 
981
#define _3DSTATE_GS                             0x7811 /* GEN6+ */
922
982
/* DW2 */
923
983
# define GEN6_GS_SPF_MODE                               (1 << 31)
924
984
# define GEN6_GS_VECTOR_MASK_ENABLE                     (1 << 30)
926
986
# define GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT        18
927
987
/* DW4 */
928
988
# define GEN6_GS_URB_READ_LENGTH_SHIFT                  11
 
989
# define GEN7_GS_INCLUDE_VERTEX_HANDLES                 (1 << 10)
929
990
# define GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT            4
930
991
# define GEN6_GS_DISPATCH_START_GRF_SHIFT               0
931
992
/* DW5 */
933
994
# define GEN6_GS_STATISTICS_ENABLE                      (1 << 10)
934
995
# define GEN6_GS_SO_STATISTICS_ENABLE                   (1 << 9)
935
996
# define GEN6_GS_RENDERING_ENABLE                       (1 << 8)
 
997
# define GEN7_GS_ENABLE                                 (1 << 0)
936
998
/* DW6 */
937
999
# define GEN6_GS_ENABLE                                 (1 << 15)
938
1000
 
939
 
#define CMD_3D_CLIP_STATE                     0x7812 /* GEN6+ */
 
1001
#define _3DSTATE_HS                             0x781B /* GEN7+ */
 
1002
#define _3DSTATE_TE                             0x781C /* GEN7+ */
 
1003
#define _3DSTATE_DS                             0x781D /* GEN7+ */
 
1004
 
 
1005
#define _3DSTATE_CLIP                           0x7812 /* GEN6+ */
940
1006
/* DW1 */
 
1007
# define GEN7_CLIP_WINDING_CW                           (0 << 20)
 
1008
# define GEN7_CLIP_WINDING_CCW                          (1 << 20)
 
1009
# define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_8          (0 << 19)
 
1010
# define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_4          (1 << 19)
 
1011
# define GEN7_CLIP_EARLY_CULL                           (1 << 18)
 
1012
# define GEN7_CLIP_CULLMODE_BOTH                        (0 << 16)
 
1013
# define GEN7_CLIP_CULLMODE_NONE                        (1 << 16)
 
1014
# define GEN7_CLIP_CULLMODE_FRONT                       (2 << 16)
 
1015
# define GEN7_CLIP_CULLMODE_BACK                        (3 << 16)
941
1016
# define GEN6_CLIP_STATISTICS_ENABLE                    (1 << 10)
942
1017
/**
943
1018
 * Just does cheap culling based on the clip distance.  Bits must be
966
1041
# define GEN6_CLIP_MAX_POINT_WIDTH_SHIFT                6
967
1042
# define GEN6_CLIP_FORCE_ZERO_RTAINDEX                  (1 << 5)
968
1043
 
969
 
#define CMD_3D_SF_STATE                         0x7813 /* GEN6+ */
970
 
/* DW1 */
 
1044
#define _3DSTATE_SF                             0x7813 /* GEN6+ */
 
1045
/* DW1 (for gen6) */
971
1046
# define GEN6_SF_NUM_OUTPUTS_SHIFT                      22
972
1047
# define GEN6_SF_SWIZZLE_ENABLE                         (1 << 21)
973
1048
# define GEN6_SF_POINT_SPRITE_LOWERLEFT                 (1 << 20)
1043
1118
/* DW18: attr 0-7 wrap shortest enables */
1044
1119
/* DW19: attr 8-16 wrap shortest enables */
1045
1120
 
1046
 
#define CMD_3D_WM_STATE               0x7814 /* GEN6+ */
 
1121
/* On GEN7, many fields of 3DSTATE_SF were split out into a new command:
 
1122
 * 3DSTATE_SBE.  The remaining fields live in different DWords, but retain
 
1123
 * the same bit-offset.  The only new field:
 
1124
 */
 
1125
/* GEN7/DW1: */
 
1126
# define GEN7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT      12
 
1127
 
 
1128
#define _3DSTATE_SBE                            0x781F /* GEN7+ */
 
1129
/* DW1 */
 
1130
# define GEN7_SBE_SWIZZLE_CONTROL_MODE                  (1 << 28)
 
1131
# define GEN7_SBE_NUM_OUTPUTS_SHIFT                     22
 
1132
# define GEN7_SBE_SWIZZLE_ENABLE                        (1 << 21)
 
1133
# define GEN7_SBE_POINT_SPRITE_LOWERLEFT                (1 << 20)
 
1134
# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT           11
 
1135
# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT           4
 
1136
/* DW2-9: Attribute setup (same as DW8-15 of gen6 _3DSTATE_SF) */
 
1137
/* DW10: Point sprite texture coordinate enables */
 
1138
/* DW11: Constant interpolation enables */
 
1139
/* DW12: attr 0-7 wrap shortest enables */
 
1140
/* DW13: attr 8-16 wrap shortest enables */
 
1141
 
 
1142
#define _3DSTATE_WM                             0x7814 /* GEN6+ */
1047
1143
/* DW1: kernel pointer */
1048
1144
/* DW2 */
1049
1145
# define GEN6_WM_SPF_MODE                               (1 << 31)
1106
1202
/* DW7: kernel 1 pointer */
1107
1203
/* DW8: kernel 2 pointer */
1108
1204
 
1109
 
#define CMD_3D_CONSTANT_VS_STATE              0x7815 /* GEN6+ */
1110
 
#define CMD_3D_CONSTANT_GS_STATE              0x7816 /* GEN6+ */
1111
 
#define CMD_3D_CONSTANT_PS_STATE              0x7817 /* GEN6+ */
 
1205
#define _3DSTATE_CONSTANT_VS                  0x7815 /* GEN6+ */
 
1206
#define _3DSTATE_CONSTANT_GS                  0x7816 /* GEN6+ */
 
1207
#define _3DSTATE_CONSTANT_PS                  0x7817 /* GEN6+ */
1112
1208
# define GEN6_CONSTANT_BUFFER_3_ENABLE                  (1 << 15)
1113
1209
# define GEN6_CONSTANT_BUFFER_2_ENABLE                  (1 << 14)
1114
1210
# define GEN6_CONSTANT_BUFFER_1_ENABLE                  (1 << 13)
1115
1211
# define GEN6_CONSTANT_BUFFER_0_ENABLE                  (1 << 12)
1116
1212
 
1117
 
#define CMD_3D_SAMPLE_MASK                      0x7818 /* GEN6+ */
1118
 
 
1119
 
#define CMD_DRAW_RECT                 0x7900
1120
 
#define CMD_BLEND_CONSTANT_COLOR      0x7901
1121
 
#define CMD_CHROMA_KEY                0x7904
1122
 
#define CMD_DEPTH_BUFFER              0x7905
1123
 
#define CMD_POLY_STIPPLE_OFFSET       0x7906
1124
 
#define CMD_POLY_STIPPLE_PATTERN      0x7907
1125
 
#define CMD_LINE_STIPPLE_PATTERN      0x7908
1126
 
#define CMD_GLOBAL_DEPTH_OFFSET_CLAMP 0x7909
1127
 
#define CMD_AA_LINE_PARAMETERS        0x790a
1128
 
 
1129
 
#define CMD_GS_SVB_INDEX                        0x790b /* CTG+ */
 
1213
#define _3DSTATE_CONSTANT_HS                  0x7819 /* GEN7+ */
 
1214
#define _3DSTATE_CONSTANT_DS                  0x781A /* GEN7+ */
 
1215
 
 
1216
/* 3DSTATE_WM for Gen7 */
 
1217
/* DW1 */
 
1218
# define GEN7_WM_STATISTICS_ENABLE                      (1 << 31)
 
1219
# define GEN7_WM_DEPTH_CLEAR                            (1 << 30)
 
1220
# define GEN7_WM_DISPATCH_ENABLE                        (1 << 29)
 
1221
# define GEN6_WM_DEPTH_RESOLVE                          (1 << 28)
 
1222
# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE             (1 << 27)
 
1223
# define GEN7_WM_KILL_ENABLE                            (1 << 25)
 
1224
# define GEN7_WM_PSCDEPTH_OFF                           (0 << 23)
 
1225
# define GEN7_WM_PSCDEPTH_ON                            (1 << 23)
 
1226
# define GEN7_WM_PSCDEPTH_ON_GE                         (2 << 23)
 
1227
# define GEN7_WM_PSCDEPTH_ON_LE                         (3 << 23)
 
1228
# define GEN7_WM_USES_SOURCE_DEPTH                      (1 << 20)
 
1229
# define GEN7_WM_USES_SOURCE_W                          (1 << 19)
 
1230
# define GEN7_WM_POSITION_ZW_PIXEL                      (0 << 17)
 
1231
# define GEN7_WM_POSITION_ZW_CENTROID                   (2 << 17)
 
1232
# define GEN7_WM_POSITION_ZW_SAMPLE                     (3 << 17)
 
1233
# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC      (1 << 16)
 
1234
# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC    (1 << 15)
 
1235
# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC       (1 << 14)
 
1236
# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC         (1 << 13)
 
1237
# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC       (1 << 12)
 
1238
# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC          (1 << 11)
 
1239
# define GEN7_WM_USES_INPUT_COVERAGE_MASK               (1 << 10)
 
1240
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5              (0 << 8)
 
1241
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0              (1 << 8)
 
1242
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0              (2 << 8)
 
1243
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0              (3 << 8)
 
1244
# define GEN7_WM_LINE_AA_WIDTH_0_5                      (0 << 6)
 
1245
# define GEN7_WM_LINE_AA_WIDTH_1_0                      (1 << 6)
 
1246
# define GEN7_WM_LINE_AA_WIDTH_2_0                      (2 << 6)
 
1247
# define GEN7_WM_LINE_AA_WIDTH_4_0                      (3 << 6)
 
1248
# define GEN7_WM_POLYGON_STIPPLE_ENABLE                 (1 << 4)
 
1249
# define GEN7_WM_LINE_STIPPLE_ENABLE                    (1 << 3)
 
1250
# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT             (1 << 2)
 
1251
# define GEN7_WM_MSRAST_OFF_PIXEL                       (0 << 0)
 
1252
# define GEN7_WM_MSRAST_OFF_PATTERN                     (1 << 0)
 
1253
# define GEN7_WM_MSRAST_ON_PIXEL                        (2 << 0)
 
1254
# define GEN7_WM_MSRAST_ON_PATTERN                      (3 << 0)
 
1255
/* DW2 */
 
1256
# define GEN7_WM_MSDISPMODE_PERPIXEL                    (1 << 31)
 
1257
 
 
1258
#define _3DSTATE_PS                             0x7820 /* GEN7+ */
 
1259
/* DW1: kernel pointer */
 
1260
/* DW2 */
 
1261
# define GEN7_PS_SPF_MODE                               (1 << 31)
 
1262
# define GEN7_PS_VECTOR_MASK_ENABLE                     (1 << 30)
 
1263
# define GEN7_PS_SAMPLER_COUNT_SHIFT                    27
 
1264
# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT        18
 
1265
# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754           (0 << 16)
 
1266
# define GEN7_PS_FLOATING_POINT_MODE_ALT                (1 << 16)
 
1267
/* DW3: scratch space */
 
1268
/* DW4 */
 
1269
# define GEN7_PS_MAX_THREADS_SHIFT                      23
 
1270
# define GEN7_PS_PUSH_CONSTANT_ENABLE                   (1 << 11)
 
1271
# define GEN7_PS_ATTRIBUTE_ENABLE                       (1 << 10)
 
1272
# define GEN7_PS_OMASK_TO_RENDER_TARGET                 (1 << 9)
 
1273
# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE               (1 << 7)
 
1274
# define GEN7_PS_POSOFFSET_NONE                         (0 << 3)
 
1275
# define GEN7_PS_POSOFFSET_CENTROID                     (2 << 3)
 
1276
# define GEN7_PS_POSOFFSET_SAMPLE                       (3 << 3)
 
1277
# define GEN7_PS_32_DISPATCH_ENABLE                     (1 << 2)
 
1278
# define GEN7_PS_16_DISPATCH_ENABLE                     (1 << 1)
 
1279
# define GEN7_PS_8_DISPATCH_ENABLE                      (1 << 0)
 
1280
/* DW5 */
 
1281
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0             16
 
1282
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1             8
 
1283
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2             0
 
1284
/* DW6: kernel 1 pointer */
 
1285
/* DW7: kernel 2 pointer */
 
1286
 
 
1287
#define _3DSTATE_STREAMOUT                      0x781e /* GEN7+ */
 
1288
 
 
1289
#define _3DSTATE_SAMPLE_MASK                    0x7818 /* GEN6+ */
 
1290
 
 
1291
#define _3DSTATE_DRAWING_RECTANGLE              0x7900
 
1292
#define _3DSTATE_BLEND_CONSTANT_COLOR           0x7901
 
1293
#define _3DSTATE_CHROMA_KEY                     0x7904
 
1294
#define _3DSTATE_DEPTH_BUFFER                   0x7905 /* GEN4-6 */
 
1295
#define _3DSTATE_POLY_STIPPLE_OFFSET            0x7906
 
1296
#define _3DSTATE_POLY_STIPPLE_PATTERN           0x7907
 
1297
#define _3DSTATE_LINE_STIPPLE_PATTERN           0x7908
 
1298
#define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP      0x7909
 
1299
#define _3DSTATE_AA_LINE_PARAMETERS             0x790a /* G45+ */
 
1300
 
 
1301
#define _3DSTATE_GS_SVB_INDEX                   0x790b /* CTG+ */
1130
1302
/* DW1 */
1131
1303
# define SVB_INDEX_SHIFT                                29
1132
1304
# define SVB_LOAD_INTERNAL_VERTEX_COUNT                 (1 << 0) /* SNB+ */
1133
1305
/* DW2: SVB index */
1134
1306
/* DW3: SVB maximum index */
1135
1307
 
1136
 
#define CMD_3D_MULTISAMPLE                      0x790d /* SNB+ */
 
1308
#define _3DSTATE_MULTISAMPLE                    0x790d /* GEN6+ */
1137
1309
/* DW1 */
1138
1310
# define MS_PIXEL_LOCATION_CENTER                       (0 << 4)
1139
1311
# define MS_PIXEL_LOCATION_UPPER_LEFT                   (1 << 4)
1141
1313
# define MS_NUMSAMPLES_4                                (2 << 1)
1142
1314
# define MS_NUMSAMPLES_8                                (3 << 1)
1143
1315
 
1144
 
#define CMD_3D_CLEAR_PARAMS                     0x7910 /* ILK+ */
 
1316
#define _3DSTATE_STENCIL_BUFFER                 0x790e /* ILK, SNB */
 
1317
#define _3DSTATE_HIER_DEPTH_BUFFER              0x790f /* ILK, SNB */
 
1318
 
 
1319
#define GEN7_3DSTATE_CLEAR_PARAMS               0x7804
 
1320
#define GEN7_3DSTATE_DEPTH_BUFFER               0x7805
 
1321
#define GEN7_3DSTATE_STENCIL_BUFFER             0x7806
 
1322
#define GEN7_3DSTATE_HIER_DEPTH_BUFFER          0x7807
 
1323
 
 
1324
#define _3DSTATE_CLEAR_PARAMS                   0x7910 /* ILK, SNB */
1145
1325
# define DEPTH_CLEAR_VALID                              (1 << 15)
1146
1326
/* DW1: depth clear value */
1147
1327
 
1148
1328
#define CMD_PIPE_CONTROL              0x7a00
1149
1329
 
1150
 
#define CMD_3D_PRIM                   0x7b00
1151
 
 
1152
1330
#define CMD_MI_FLUSH                  0x0200
1153
1331
 
1154
1332