~mmach/netext73/mesa-ryzen

« back to all changes in this revision

Viewing changes to src/intel/compiler/brw_eu_defines.h

  • Committer: mmach
  • Date: 2023-11-02 21:31:35 UTC
  • Revision ID: netbit73@gmail.com-20231102213135-18d4tzh7tj0uz752
2023-11-02 22:11:57

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
#define GFX6_COMPRESSION_1H             0
97
97
#define GFX6_COMPRESSION_2H             2
98
98
 
99
 
enum PACKED brw_conditional_mod {
 
99
enum ENUM_PACKED brw_conditional_mod {
100
100
   BRW_CONDITIONAL_NONE = 0,
101
101
   BRW_CONDITIONAL_Z    = 1,
102
102
   BRW_CONDITIONAL_NZ   = 2,
119
119
#define BRW_DEPENDENCY_NOTCHECKED     2
120
120
#define BRW_DEPENDENCY_DISABLE        3
121
121
 
122
 
enum PACKED brw_execution_size {
 
122
enum ENUM_PACKED brw_execution_size {
123
123
   BRW_EXECUTE_1  = 0,
124
124
   BRW_EXECUTE_2  = 1,
125
125
   BRW_EXECUTE_4  = 2,
128
128
   BRW_EXECUTE_32 = 5,
129
129
};
130
130
 
131
 
enum PACKED brw_horizontal_stride {
 
131
enum ENUM_PACKED brw_horizontal_stride {
132
132
   BRW_HORIZONTAL_STRIDE_0 = 0,
133
133
   BRW_HORIZONTAL_STRIDE_1 = 1,
134
134
   BRW_HORIZONTAL_STRIDE_2 = 2,
135
135
   BRW_HORIZONTAL_STRIDE_4 = 3,
136
136
};
137
137
 
138
 
enum PACKED gfx10_align1_3src_src_horizontal_stride {
 
138
enum ENUM_PACKED gfx10_align1_3src_src_horizontal_stride {
139
139
   BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_0 = 0,
140
140
   BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_1 = 1,
141
141
   BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_2 = 2,
142
142
   BRW_ALIGN1_3SRC_SRC_HORIZONTAL_STRIDE_4 = 3,
143
143
};
144
144
 
145
 
enum PACKED gfx10_align1_3src_dst_horizontal_stride {
 
145
enum ENUM_PACKED gfx10_align1_3src_dst_horizontal_stride {
146
146
   BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_1 = 0,
147
147
   BRW_ALIGN1_3SRC_DST_HORIZONTAL_STRIDE_2 = 1,
148
148
};
890
890
enum pull_uniform_constant_srcs {
891
891
   /** Surface binding table index */
892
892
   PULL_UNIFORM_CONSTANT_SRC_SURFACE,
 
893
   /** Surface bindless handle */
 
894
   PULL_UNIFORM_CONSTANT_SRC_SURFACE_HANDLE,
893
895
   /** Surface offset */
894
896
   PULL_UNIFORM_CONSTANT_SRC_OFFSET,
895
897
   /** Pull size */
898
900
   PULL_UNIFORM_CONSTANT_SRCS,
899
901
};
900
902
 
 
903
enum pull_varying_constant_srcs {
 
904
   /** Surface binding table index */
 
905
   PULL_VARYING_CONSTANT_SRC_SURFACE,
 
906
   /** Surface bindless handle */
 
907
   PULL_VARYING_CONSTANT_SRC_SURFACE_HANDLE,
 
908
   /** Surface offset */
 
909
   PULL_VARYING_CONSTANT_SRC_OFFSET,
 
910
   /** Pull alignment */
 
911
   PULL_VARYING_CONSTANT_SRC_ALIGNMENT,
 
912
 
 
913
   PULL_VARYING_CONSTANT_SRCS,
 
914
};
 
915
 
 
916
enum get_buffer_size_srcs {
 
917
   /** Surface binding table index */
 
918
   GET_BUFFER_SIZE_SRC_SURFACE,
 
919
   /** Surface bindless handle */
 
920
   GET_BUFFER_SIZE_SRC_SURFACE_HANDLE,
 
921
   /** LOD */
 
922
   GET_BUFFER_SIZE_SRC_LOD,
 
923
 
 
924
   GET_BUFFER_SIZE_SRCS
 
925
};
 
926
 
901
927
enum surface_logical_srcs {
902
928
   /** Surface binding table index */
903
929
   SURFACE_LOGICAL_SRC_SURFACE,
971
997
}
972
998
#endif
973
999
 
974
 
enum PACKED brw_predicate {
 
1000
enum ENUM_PACKED brw_predicate {
975
1001
   BRW_PREDICATE_NONE                =  0,
976
1002
   BRW_PREDICATE_NORMAL              =  1,
977
1003
   BRW_PREDICATE_ALIGN1_ANYV         =  2,
994
1020
   BRW_PREDICATE_ALIGN16_ALL4H       =  7,
995
1021
};
996
1022
 
997
 
enum PACKED brw_reg_file {
 
1023
enum ENUM_PACKED brw_reg_file {
998
1024
   BRW_ARCHITECTURE_REGISTER_FILE = 0,
999
1025
   BRW_GENERAL_REGISTER_FILE      = 1,
1000
1026
   BRW_MESSAGE_REGISTER_FILE      = 2,
1012
1038
   BAD_FILE,
1013
1039
};
1014
1040
 
1015
 
enum PACKED gfx10_align1_3src_reg_file {
 
1041
enum ENUM_PACKED gfx10_align1_3src_reg_file {
1016
1042
   BRW_ALIGN1_3SRC_GENERAL_REGISTER_FILE = 0,
1017
1043
   BRW_ALIGN1_3SRC_IMMEDIATE_VALUE       = 1, /* src0, src2 */
1018
1044
   BRW_ALIGN1_3SRC_ACCUMULATOR           = 1, /* dest, src1 */
1023
1049
 * on float or integer types. The register arguments have fields that offer
1024
1050
 * more fine control their respective types.
1025
1051
 */
1026
 
enum PACKED gfx10_align1_3src_exec_type {
 
1052
enum ENUM_PACKED gfx10_align1_3src_exec_type {
1027
1053
   BRW_ALIGN1_3SRC_EXEC_TYPE_INT   = 0,
1028
1054
   BRW_ALIGN1_3SRC_EXEC_TYPE_FLOAT = 1,
1029
1055
};
1055
1081
#define BRW_THREAD_ATOMIC     1
1056
1082
#define BRW_THREAD_SWITCH     2
1057
1083
 
1058
 
enum PACKED brw_vertical_stride {
 
1084
enum ENUM_PACKED brw_vertical_stride {
1059
1085
   BRW_VERTICAL_STRIDE_0               = 0,
1060
1086
   BRW_VERTICAL_STRIDE_1               = 1,
1061
1087
   BRW_VERTICAL_STRIDE_2               = 2,
1066
1092
   BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL = 0xF,
1067
1093
};
1068
1094
 
1069
 
enum PACKED gfx10_align1_3src_vertical_stride {
 
1095
enum ENUM_PACKED gfx10_align1_3src_vertical_stride {
1070
1096
   BRW_ALIGN1_3SRC_VERTICAL_STRIDE_0 = 0,
1071
1097
   BRW_ALIGN1_3SRC_VERTICAL_STRIDE_1 = 1,
1072
1098
   BRW_ALIGN1_3SRC_VERTICAL_STRIDE_2 = 1,
1074
1100
   BRW_ALIGN1_3SRC_VERTICAL_STRIDE_8 = 3,
1075
1101
};
1076
1102
 
1077
 
enum PACKED brw_width {
 
1103
enum ENUM_PACKED brw_width {
1078
1104
   BRW_WIDTH_1  = 0,
1079
1105
   BRW_WIDTH_2  = 1,
1080
1106
   BRW_WIDTH_4  = 2,
1701
1727
#define BRW_CR0_RND_MODE_MASK     0x30
1702
1728
#define BRW_CR0_RND_MODE_SHIFT    4
1703
1729
 
1704
 
enum PACKED brw_rnd_mode {
 
1730
enum ENUM_PACKED brw_rnd_mode {
1705
1731
   BRW_RND_MODE_RTNE = 0,  /* Round to Nearest or Even */
1706
1732
   BRW_RND_MODE_RU = 1,    /* Round Up, toward +inf */
1707
1733
   BRW_RND_MODE_RD = 2,    /* Round Down, toward -inf */
1778
1804
/*
1779
1805
 * Specifies the size of the dataport address payload in registers.
1780
1806
 */
1781
 
enum PACKED lsc_addr_reg_size {
 
1807
enum ENUM_PACKED lsc_addr_reg_size {
1782
1808
   LSC_ADDR_REG_SIZE_1  = 1,
1783
1809
   LSC_ADDR_REG_SIZE_2  = 2,
1784
1810
   LSC_ADDR_REG_SIZE_3  = 3,
1790
1816
/*
1791
1817
 * Specifies the size of the address payload item in a dataport message.
1792
1818
 */
1793
 
enum PACKED lsc_addr_size {
 
1819
enum ENUM_PACKED lsc_addr_size {
1794
1820
  LSC_ADDR_SIZE_A16 = 1,    /* 16-bit address offset */
1795
1821
  LSC_ADDR_SIZE_A32 = 2,    /* 32-bit address offset */
1796
1822
  LSC_ADDR_SIZE_A64 = 3,    /* 64-bit address offset */
1801
1827
 * address type specifies how the dataport message decodes the Extended
1802
1828
 * Descriptor for the surface attributes and address calculation.
1803
1829
 */
1804
 
enum PACKED lsc_addr_surface_type {
 
1830
enum ENUM_PACKED lsc_addr_surface_type {
1805
1831
   LSC_ADDR_SURFTYPE_FLAT = 0, /* Flat */
1806
1832
   LSC_ADDR_SURFTYPE_BSS = 1,  /* Bindless surface state */
1807
1833
   LSC_ADDR_SURFTYPE_SS = 2,   /* Surface state */
1841
1867
 * (WT), write-back (WB) and streaming (S). Dataport L3 cache policies are
1842
1868
 * uncached (UC) and cached (WB).
1843
1869
 */
1844
 
enum PACKED lsc_cache_store {
 
1870
enum ENUM_PACKED lsc_cache_store {
1845
1871
   /* No override. Use the non-pipelined or surface state cache settings for L1
1846
1872
    * and L3.
1847
1873
    */
1867
1893
 * Specifies which components of the data payload 4-element vector (X,Y,Z,W) is
1868
1894
 * packed into the register payload.
1869
1895
 */
1870
 
enum PACKED lsc_cmask {
 
1896
enum ENUM_PACKED lsc_cmask {
1871
1897
   LSC_CMASK_X = 0x1,
1872
1898
   LSC_CMASK_Y = 0x2,
1873
1899
   LSC_CMASK_XY = 0x3,
1888
1914
/*
1889
1915
 * Specifies the size of the data payload item in a dataport message.
1890
1916
 */
1891
 
enum PACKED lsc_data_size {
 
1917
enum ENUM_PACKED lsc_data_size {
1892
1918
   /* 8-bit scalar data value in memory, packed into a 8-bit data value in
1893
1919
    * register.
1894
1920
    */
1922
1948
/*
1923
1949
 *  Enum specifies the scope of the fence.
1924
1950
 */
1925
 
enum PACKED lsc_fence_scope {
 
1951
enum ENUM_PACKED lsc_fence_scope {
1926
1952
   /* Wait until all previous memory transactions from this thread are observed
1927
1953
    * within the local thread-group.
1928
1954
    */
1959
1985
 * Specifies the type of cache flush operation to perform after a fence is
1960
1986
 * complete.
1961
1987
 */
1962
 
enum PACKED lsc_flush_type {
 
1988
enum ENUM_PACKED lsc_flush_type {
1963
1989
   LSC_FLUSH_TYPE_NONE = 0,
1964
1990
   /*
1965
1991
    * For a R/W cache, evict dirty lines (M to I state) and invalidate clean
1992
2018
 
1993
2019
};
1994
2020
 
1995
 
enum PACKED lsc_backup_fence_routing {
 
2021
enum ENUM_PACKED lsc_backup_fence_routing {
1996
2022
   /* Normal routing: UGM fence is routed to UGM pipeline. */
1997
2023
   LSC_NORMAL_ROUTING,
1998
2024
   /* Route UGM fence to LSC unit. */
2002
2028
/*
2003
2029
 * Specifies the size of the vector in a dataport message.
2004
2030
 */
2005
 
enum PACKED lsc_vect_size {
 
2031
enum ENUM_PACKED lsc_vect_size {
2006
2032
   LSC_VECT_SIZE_V1 = 0,    /* vector length 1 */
2007
2033
   LSC_VECT_SIZE_V2 = 1,    /* vector length 2 */
2008
2034
   LSC_VECT_SIZE_V3 = 2,    /* Vector length 3 */