1 | /**********************************************************
|
---|
2 | * Copyright 2007-2015 VMware, Inc. All rights reserved.
|
---|
3 | *
|
---|
4 | * Permission is hereby granted, free of charge, to any person
|
---|
5 | * obtaining a copy of this software and associated documentation
|
---|
6 | * files (the "Software"), to deal in the Software without
|
---|
7 | * restriction, including without limitation the rights to use, copy,
|
---|
8 | * modify, merge, publish, distribute, sublicense, and/or sell copies
|
---|
9 | * of the Software, and to permit persons to whom the Software is
|
---|
10 | * furnished to do so, subject to the following conditions:
|
---|
11 | *
|
---|
12 | * The above copyright notice and this permission notice shall be
|
---|
13 | * included in all copies or substantial portions of the Software.
|
---|
14 | *
|
---|
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
---|
16 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
---|
17 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
---|
18 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
---|
19 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
---|
20 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
---|
21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
---|
22 | * SOFTWARE.
|
---|
23 | *
|
---|
24 | **********************************************************/
|
---|
25 |
|
---|
26 | /*
|
---|
27 | * VGPU10ShaderTokens.h --
|
---|
28 | *
|
---|
29 | * VGPU10 shader token definitions.
|
---|
30 | *
|
---|
31 | */
|
---|
32 |
|
---|
33 | #ifndef VGPU10SHADERTOKENS_H
|
---|
34 | #define VGPU10SHADERTOKENS_H
|
---|
35 |
|
---|
36 | /* Shader limits */
|
---|
37 | #define VGPU10_MAX_VS_INPUTS 16
|
---|
38 | #define VGPU10_MAX_VS_OUTPUTS 16
|
---|
39 | #define VGPU10_MAX_GS_INPUTS 16
|
---|
40 | #define VGPU10_MAX_GS_OUTPUTS 32
|
---|
41 | #define VGPU10_MAX_FS_INPUTS 32
|
---|
42 | #define VGPU10_MAX_FS_OUTPUTS 8
|
---|
43 | #define VGPU10_MAX_TEMPS 4096
|
---|
44 | #define VGPU10_MAX_CONSTANT_BUFFERS (14 + 1)
|
---|
45 | #define VGPU10_MAX_CONSTANT_BUFFER_ELEMENT_COUNT 4096
|
---|
46 | #define VGPU10_MAX_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT 4096
|
---|
47 | #define VGPU10_MAX_SAMPLERS 16
|
---|
48 | #define VGPU10_MAX_RESOURCES 128
|
---|
49 | #define VGPU10_MIN_TEXEL_FETCH_OFFSET -8
|
---|
50 | #define VGPU10_MAX_TEXEL_FETCH_OFFSET 7
|
---|
51 |
|
---|
52 | /* Shader Model 4.1 limits */
|
---|
53 | #define VGPU10_1_MAX_VS_INPUTS 32
|
---|
54 | #define VGPU10_1_MAX_VS_OUTPUTS 32
|
---|
55 | #define VGPU10_1_MAX_GS_INPUTS 32
|
---|
56 |
|
---|
57 | /* Shader Model 5.0 limits */
|
---|
58 | #define VGPU11_MAX_HS_INPUTS 32
|
---|
59 | #define VGPU11_MAX_HS_INPUT_CONTROL_POINTS 32
|
---|
60 | #define VGPU11_MAX_HS_INPUT_PATCH_CONSTANTS 32
|
---|
61 | #define VGPU11_MAX_HS_OUTPUTS 32
|
---|
62 | #define VGPU11_MAX_DS_INPUT_CONTROL_POINTS 32
|
---|
63 | #define VGPU11_MAX_DS_INPUT_PATCH_CONSTANTS 32
|
---|
64 | #define VGPU11_MAX_DS_OUTPUTS 32
|
---|
65 | #define VGPU11_MAX_GS_STREAMS 4
|
---|
66 |
|
---|
67 | /* Maximums of limits for all stages */
|
---|
68 | #define VGPU10_MAX_INPUTS 32
|
---|
69 | #define VGPU10_MAX_OUTPUTS 32
|
---|
70 | #define VGPU10_MAX_INPUT_PATCH_CONSTANTS 32
|
---|
71 |
|
---|
72 | typedef enum {
|
---|
73 | VGPU10_PIXEL_SHADER = 0,
|
---|
74 | VGPU10_VERTEX_SHADER = 1,
|
---|
75 | VGPU10_GEOMETRY_SHADER = 2,
|
---|
76 |
|
---|
77 | /* DX11 */
|
---|
78 | VGPU10_HULL_SHADER = 3,
|
---|
79 | VGPU10_DOMAIN_SHADER = 4,
|
---|
80 | VGPU10_COMPUTE_SHADER = 5
|
---|
81 | } VGPU10_PROGRAM_TYPE;
|
---|
82 |
|
---|
83 | typedef union {
|
---|
84 | struct {
|
---|
85 | unsigned int minorVersion : 4;
|
---|
86 | unsigned int majorVersion : 4;
|
---|
87 | unsigned int : 8;
|
---|
88 | unsigned int programType : 16; /* VGPU10_PROGRAM_TYPE */
|
---|
89 | };
|
---|
90 | uint32 value;
|
---|
91 | } VGPU10ProgramToken;
|
---|
92 |
|
---|
93 |
|
---|
94 | typedef enum {
|
---|
95 | VGPU10_OPCODE_ADD = 0,
|
---|
96 | VGPU10_OPCODE_AND = 1,
|
---|
97 | VGPU10_OPCODE_BREAK = 2,
|
---|
98 | VGPU10_OPCODE_BREAKC = 3,
|
---|
99 | VGPU10_OPCODE_CALL = 4,
|
---|
100 | VGPU10_OPCODE_CALLC = 5,
|
---|
101 | VGPU10_OPCODE_CASE = 6,
|
---|
102 | VGPU10_OPCODE_CONTINUE = 7,
|
---|
103 | VGPU10_OPCODE_CONTINUEC = 8,
|
---|
104 | VGPU10_OPCODE_CUT = 9,
|
---|
105 | VGPU10_OPCODE_DEFAULT = 10,
|
---|
106 | VGPU10_OPCODE_DERIV_RTX = 11,
|
---|
107 | VGPU10_OPCODE_DERIV_RTY = 12,
|
---|
108 | VGPU10_OPCODE_DISCARD = 13,
|
---|
109 | VGPU10_OPCODE_DIV = 14,
|
---|
110 | VGPU10_OPCODE_DP2 = 15,
|
---|
111 | VGPU10_OPCODE_DP3 = 16,
|
---|
112 | VGPU10_OPCODE_DP4 = 17,
|
---|
113 | VGPU10_OPCODE_ELSE = 18,
|
---|
114 | VGPU10_OPCODE_EMIT = 19,
|
---|
115 | VGPU10_OPCODE_EMITTHENCUT = 20,
|
---|
116 | VGPU10_OPCODE_ENDIF = 21,
|
---|
117 | VGPU10_OPCODE_ENDLOOP = 22,
|
---|
118 | VGPU10_OPCODE_ENDSWITCH = 23,
|
---|
119 | VGPU10_OPCODE_EQ = 24,
|
---|
120 | VGPU10_OPCODE_EXP = 25,
|
---|
121 | VGPU10_OPCODE_FRC = 26,
|
---|
122 | VGPU10_OPCODE_FTOI = 27,
|
---|
123 | VGPU10_OPCODE_FTOU = 28,
|
---|
124 | VGPU10_OPCODE_GE = 29,
|
---|
125 | VGPU10_OPCODE_IADD = 30,
|
---|
126 | VGPU10_OPCODE_IF = 31,
|
---|
127 | VGPU10_OPCODE_IEQ = 32,
|
---|
128 | VGPU10_OPCODE_IGE = 33,
|
---|
129 | VGPU10_OPCODE_ILT = 34,
|
---|
130 | VGPU10_OPCODE_IMAD = 35,
|
---|
131 | VGPU10_OPCODE_IMAX = 36,
|
---|
132 | VGPU10_OPCODE_IMIN = 37,
|
---|
133 | VGPU10_OPCODE_IMUL = 38,
|
---|
134 | VGPU10_OPCODE_INE = 39,
|
---|
135 | VGPU10_OPCODE_INEG = 40,
|
---|
136 | VGPU10_OPCODE_ISHL = 41,
|
---|
137 | VGPU10_OPCODE_ISHR = 42,
|
---|
138 | VGPU10_OPCODE_ITOF = 43,
|
---|
139 | VGPU10_OPCODE_LABEL = 44,
|
---|
140 | VGPU10_OPCODE_LD = 45,
|
---|
141 | VGPU10_OPCODE_LD_MS = 46,
|
---|
142 | VGPU10_OPCODE_LOG = 47,
|
---|
143 | VGPU10_OPCODE_LOOP = 48,
|
---|
144 | VGPU10_OPCODE_LT = 49,
|
---|
145 | VGPU10_OPCODE_MAD = 50,
|
---|
146 | VGPU10_OPCODE_MIN = 51,
|
---|
147 | VGPU10_OPCODE_MAX = 52,
|
---|
148 | VGPU10_OPCODE_CUSTOMDATA = 53,
|
---|
149 | VGPU10_OPCODE_MOV = 54,
|
---|
150 | VGPU10_OPCODE_MOVC = 55,
|
---|
151 | VGPU10_OPCODE_MUL = 56,
|
---|
152 | VGPU10_OPCODE_NE = 57,
|
---|
153 | VGPU10_OPCODE_NOP = 58,
|
---|
154 | VGPU10_OPCODE_NOT = 59,
|
---|
155 | VGPU10_OPCODE_OR = 60,
|
---|
156 | VGPU10_OPCODE_RESINFO = 61,
|
---|
157 | VGPU10_OPCODE_RET = 62,
|
---|
158 | VGPU10_OPCODE_RETC = 63,
|
---|
159 | VGPU10_OPCODE_ROUND_NE = 64,
|
---|
160 | VGPU10_OPCODE_ROUND_NI = 65,
|
---|
161 | VGPU10_OPCODE_ROUND_PI = 66,
|
---|
162 | VGPU10_OPCODE_ROUND_Z = 67,
|
---|
163 | VGPU10_OPCODE_RSQ = 68,
|
---|
164 | VGPU10_OPCODE_SAMPLE = 69,
|
---|
165 | VGPU10_OPCODE_SAMPLE_C = 70,
|
---|
166 | VGPU10_OPCODE_SAMPLE_C_LZ = 71,
|
---|
167 | VGPU10_OPCODE_SAMPLE_L = 72,
|
---|
168 | VGPU10_OPCODE_SAMPLE_D = 73,
|
---|
169 | VGPU10_OPCODE_SAMPLE_B = 74,
|
---|
170 | VGPU10_OPCODE_SQRT = 75,
|
---|
171 | VGPU10_OPCODE_SWITCH = 76,
|
---|
172 | VGPU10_OPCODE_SINCOS = 77,
|
---|
173 | VGPU10_OPCODE_UDIV = 78,
|
---|
174 | VGPU10_OPCODE_ULT = 79,
|
---|
175 | VGPU10_OPCODE_UGE = 80,
|
---|
176 | VGPU10_OPCODE_UMUL = 81,
|
---|
177 | VGPU10_OPCODE_UMAD = 82,
|
---|
178 | VGPU10_OPCODE_UMAX = 83,
|
---|
179 | VGPU10_OPCODE_UMIN = 84,
|
---|
180 | VGPU10_OPCODE_USHR = 85,
|
---|
181 | VGPU10_OPCODE_UTOF = 86,
|
---|
182 | VGPU10_OPCODE_XOR = 87,
|
---|
183 | VGPU10_OPCODE_DCL_RESOURCE = 88,
|
---|
184 | VGPU10_OPCODE_DCL_CONSTANT_BUFFER = 89,
|
---|
185 | VGPU10_OPCODE_DCL_SAMPLER = 90,
|
---|
186 | VGPU10_OPCODE_DCL_INDEX_RANGE = 91,
|
---|
187 | VGPU10_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY = 92,
|
---|
188 | VGPU10_OPCODE_DCL_GS_INPUT_PRIMITIVE = 93,
|
---|
189 | VGPU10_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT = 94,
|
---|
190 | VGPU10_OPCODE_DCL_INPUT = 95,
|
---|
191 | VGPU10_OPCODE_DCL_INPUT_SGV = 96,
|
---|
192 | VGPU10_OPCODE_DCL_INPUT_SIV = 97,
|
---|
193 | VGPU10_OPCODE_DCL_INPUT_PS = 98,
|
---|
194 | VGPU10_OPCODE_DCL_INPUT_PS_SGV = 99,
|
---|
195 | VGPU10_OPCODE_DCL_INPUT_PS_SIV = 100,
|
---|
196 | VGPU10_OPCODE_DCL_OUTPUT = 101,
|
---|
197 | VGPU10_OPCODE_DCL_OUTPUT_SGV = 102,
|
---|
198 | VGPU10_OPCODE_DCL_OUTPUT_SIV = 103,
|
---|
199 | VGPU10_OPCODE_DCL_TEMPS = 104,
|
---|
200 | VGPU10_OPCODE_DCL_INDEXABLE_TEMP = 105,
|
---|
201 | VGPU10_OPCODE_DCL_GLOBAL_FLAGS = 106,
|
---|
202 |
|
---|
203 | /* GL guest */
|
---|
204 | VGPU10_OPCODE_VMWARE = 107,
|
---|
205 |
|
---|
206 | /* DX10.1 */
|
---|
207 | VGPU10_OPCODE_LOD = 108,
|
---|
208 | VGPU10_OPCODE_GATHER4 = 109,
|
---|
209 | VGPU10_OPCODE_SAMPLE_POS = 110,
|
---|
210 | VGPU10_OPCODE_SAMPLE_INFO = 111,
|
---|
211 |
|
---|
212 | /* DX11 */
|
---|
213 | VGPU10_OPCODE_RESERVED1 = 112,
|
---|
214 | VGPU10_OPCODE_HS_DECLS = 113,
|
---|
215 | VGPU10_OPCODE_HS_CONTROL_POINT_PHASE = 114,
|
---|
216 | VGPU10_OPCODE_HS_FORK_PHASE = 115,
|
---|
217 | VGPU10_OPCODE_HS_JOIN_PHASE = 116,
|
---|
218 | VGPU10_OPCODE_EMIT_STREAM = 117,
|
---|
219 | VGPU10_OPCODE_CUT_STREAM = 118,
|
---|
220 | VGPU10_OPCODE_EMITTHENCUT_STREAM = 119,
|
---|
221 | VGPU10_OPCODE_INTERFACE_CALL = 120,
|
---|
222 | VGPU10_OPCODE_BUFINFO = 121,
|
---|
223 | VGPU10_OPCODE_DERIV_RTX_COARSE = 122,
|
---|
224 | VGPU10_OPCODE_DERIV_RTX_FINE = 123,
|
---|
225 | VGPU10_OPCODE_DERIV_RTY_COARSE = 124,
|
---|
226 | VGPU10_OPCODE_DERIV_RTY_FINE = 125,
|
---|
227 | VGPU10_OPCODE_GATHER4_C = 126,
|
---|
228 | VGPU10_OPCODE_GATHER4_PO = 127,
|
---|
229 | VGPU10_OPCODE_GATHER4_PO_C = 128,
|
---|
230 | VGPU10_OPCODE_RCP = 129,
|
---|
231 | VGPU10_OPCODE_F32TOF16 = 130,
|
---|
232 | VGPU10_OPCODE_F16TOF32 = 131,
|
---|
233 | VGPU10_OPCODE_UADDC = 132,
|
---|
234 | VGPU10_OPCODE_USUBB = 133,
|
---|
235 | VGPU10_OPCODE_COUNTBITS = 134,
|
---|
236 | VGPU10_OPCODE_FIRSTBIT_HI = 135,
|
---|
237 | VGPU10_OPCODE_FIRSTBIT_LO = 136,
|
---|
238 | VGPU10_OPCODE_FIRSTBIT_SHI = 137,
|
---|
239 | VGPU10_OPCODE_UBFE = 138,
|
---|
240 | VGPU10_OPCODE_IBFE = 139,
|
---|
241 | VGPU10_OPCODE_BFI = 140,
|
---|
242 | VGPU10_OPCODE_BFREV = 141,
|
---|
243 | VGPU10_OPCODE_SWAPC = 142,
|
---|
244 | VGPU10_OPCODE_DCL_STREAM = 143,
|
---|
245 | VGPU10_OPCODE_DCL_FUNCTION_BODY = 144,
|
---|
246 | VGPU10_OPCODE_DCL_FUNCTION_TABLE = 145,
|
---|
247 | VGPU10_OPCODE_DCL_INTERFACE = 146,
|
---|
248 | VGPU10_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT = 147,
|
---|
249 | VGPU10_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT = 148,
|
---|
250 | VGPU10_OPCODE_DCL_TESS_DOMAIN = 149,
|
---|
251 | VGPU10_OPCODE_DCL_TESS_PARTITIONING = 150,
|
---|
252 | VGPU10_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE = 151,
|
---|
253 | VGPU10_OPCODE_DCL_HS_MAX_TESSFACTOR = 152,
|
---|
254 | VGPU10_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT = 153,
|
---|
255 | VGPU10_OPCODE_DCL_HS_JOIN_PHASE_INSTANCE_COUNT = 154,
|
---|
256 | VGPU10_OPCODE_DCL_THREAD_GROUP = 155,
|
---|
257 | VGPU10_OPCODE_DCL_UAV_TYPED = 156,
|
---|
258 | VGPU10_OPCODE_DCL_UAV_RAW = 157,
|
---|
259 | VGPU10_OPCODE_DCL_UAV_STRUCTURED = 158,
|
---|
260 | VGPU10_OPCODE_DCL_TGSM_RAW = 159,
|
---|
261 | VGPU10_OPCODE_DCL_TGSM_STRUCTURED = 160,
|
---|
262 | VGPU10_OPCODE_DCL_RESOURCE_RAW = 161,
|
---|
263 | VGPU10_OPCODE_DCL_RESOURCE_STRUCTURED = 162,
|
---|
264 | VGPU10_OPCODE_LD_UAV_TYPED = 163,
|
---|
265 | VGPU10_OPCODE_STORE_UAV_TYPED = 164,
|
---|
266 | VGPU10_OPCODE_LD_RAW = 165,
|
---|
267 | VGPU10_OPCODE_STORE_RAW = 166,
|
---|
268 | VGPU10_OPCODE_LD_STRUCTURED = 167,
|
---|
269 | VGPU10_OPCODE_STORE_STRUCTURED = 168,
|
---|
270 | VGPU10_OPCODE_ATOMIC_AND = 169,
|
---|
271 | VGPU10_OPCODE_ATOMIC_OR = 170,
|
---|
272 | VGPU10_OPCODE_ATOMIC_XOR = 171,
|
---|
273 | VGPU10_OPCODE_ATOMIC_CMP_STORE = 172,
|
---|
274 | VGPU10_OPCODE_ATOMIC_IADD = 173,
|
---|
275 | VGPU10_OPCODE_ATOMIC_IMAX = 174,
|
---|
276 | VGPU10_OPCODE_ATOMIC_IMIN = 175,
|
---|
277 | VGPU10_OPCODE_ATOMIC_UMAX = 176,
|
---|
278 | VGPU10_OPCODE_ATOMIC_UMIN = 177,
|
---|
279 | VGPU10_OPCODE_IMM_ATOMIC_ALLOC = 178,
|
---|
280 | VGPU10_OPCODE_IMM_ATOMIC_CONSUME = 179,
|
---|
281 | VGPU10_OPCODE_IMM_ATOMIC_IADD = 180,
|
---|
282 | VGPU10_OPCODE_IMM_ATOMIC_AND = 181,
|
---|
283 | VGPU10_OPCODE_IMM_ATOMIC_OR = 182,
|
---|
284 | VGPU10_OPCODE_IMM_ATOMIC_XOR = 183,
|
---|
285 | VGPU10_OPCODE_IMM_ATOMIC_EXCH = 184,
|
---|
286 | VGPU10_OPCODE_IMM_ATOMIC_CMP_EXCH = 185,
|
---|
287 | VGPU10_OPCODE_IMM_ATOMIC_IMAX = 186,
|
---|
288 | VGPU10_OPCODE_IMM_ATOMIC_IMIN = 187,
|
---|
289 | VGPU10_OPCODE_IMM_ATOMIC_UMAX = 188,
|
---|
290 | VGPU10_OPCODE_IMM_ATOMIC_UMIN = 189,
|
---|
291 | VGPU10_OPCODE_SYNC = 190,
|
---|
292 | VGPU10_OPCODE_DADD = 191,
|
---|
293 | VGPU10_OPCODE_DMAX = 192,
|
---|
294 | VGPU10_OPCODE_DMIN = 193,
|
---|
295 | VGPU10_OPCODE_DMUL = 194,
|
---|
296 | VGPU10_OPCODE_DEQ = 195,
|
---|
297 | VGPU10_OPCODE_DGE = 196,
|
---|
298 | VGPU10_OPCODE_DLT = 197,
|
---|
299 | VGPU10_OPCODE_DNE = 198,
|
---|
300 | VGPU10_OPCODE_DMOV = 199,
|
---|
301 | VGPU10_OPCODE_DMOVC = 200,
|
---|
302 | VGPU10_OPCODE_DTOF = 201,
|
---|
303 | VGPU10_OPCODE_FTOD = 202,
|
---|
304 | VGPU10_OPCODE_EVAL_SNAPPED = 203,
|
---|
305 | VGPU10_OPCODE_EVAL_SAMPLE_INDEX = 204,
|
---|
306 | VGPU10_OPCODE_EVAL_CENTROID = 205,
|
---|
307 | VGPU10_OPCODE_DCL_GS_INSTANCE_COUNT = 206,
|
---|
308 | VGPU10_OPCODE_ABORT = 207,
|
---|
309 | VGPU10_OPCODE_DEBUG_BREAK = 208,
|
---|
310 |
|
---|
311 | /* DX11.1 */
|
---|
312 | VGPU10_OPCODE_RESERVED0 = 209,
|
---|
313 | VGPU10_OPCODE_DDIV = 210,
|
---|
314 | VGPU10_OPCODE_DFMA = 211,
|
---|
315 | VGPU10_OPCODE_DRCP = 212,
|
---|
316 | VGPU10_OPCODE_MSAD = 213,
|
---|
317 | VGPU10_OPCODE_DTOI = 214,
|
---|
318 | VGPU10_OPCODE_DTOU = 215,
|
---|
319 | VGPU10_OPCODE_ITOD = 216,
|
---|
320 | VGPU10_OPCODE_UTOD = 217,
|
---|
321 |
|
---|
322 | VGPU10_NUM_OPCODES /* Should be the last entry. */
|
---|
323 | } VGPU10_OPCODE_TYPE;
|
---|
324 |
|
---|
325 | /* Sub-opcode of VGPU10_OPCODE_VMWARE. */
|
---|
326 | typedef enum {
|
---|
327 | VGPU10_VMWARE_OPCODE_IDIV = 0,
|
---|
328 | VGPU10_VMWARE_OPCODE_DFRC = 1,
|
---|
329 | VGPU10_VMWARE_OPCODE_DRSQ = 2,
|
---|
330 | VGPU10_VMWARE_NUM_OPCODES /* Should be the last entry. */
|
---|
331 | } VGPU10_VMWARE_OPCODE_TYPE;
|
---|
332 |
|
---|
333 | typedef enum {
|
---|
334 | VGPU10_INTERPOLATION_UNDEFINED = 0,
|
---|
335 | VGPU10_INTERPOLATION_CONSTANT = 1,
|
---|
336 | VGPU10_INTERPOLATION_LINEAR = 2,
|
---|
337 | VGPU10_INTERPOLATION_LINEAR_CENTROID = 3,
|
---|
338 | VGPU10_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
|
---|
339 | VGPU10_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
|
---|
340 | VGPU10_INTERPOLATION_LINEAR_SAMPLE = 6, /* DX10.1 */
|
---|
341 | VGPU10_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 /* DX10.1 */
|
---|
342 | } VGPU10_INTERPOLATION_MODE;
|
---|
343 |
|
---|
344 | typedef enum {
|
---|
345 | VGPU10_RESOURCE_DIMENSION_UNKNOWN = 0,
|
---|
346 | VGPU10_RESOURCE_DIMENSION_BUFFER = 1,
|
---|
347 | VGPU10_RESOURCE_DIMENSION_TEXTURE1D = 2,
|
---|
348 | VGPU10_RESOURCE_DIMENSION_TEXTURE2D = 3,
|
---|
349 | VGPU10_RESOURCE_DIMENSION_TEXTURE2DMS = 4,
|
---|
350 | VGPU10_RESOURCE_DIMENSION_TEXTURE3D = 5,
|
---|
351 | VGPU10_RESOURCE_DIMENSION_TEXTURECUBE = 6,
|
---|
352 | VGPU10_RESOURCE_DIMENSION_TEXTURE1DARRAY = 7,
|
---|
353 | VGPU10_RESOURCE_DIMENSION_TEXTURE2DARRAY = 8,
|
---|
354 | VGPU10_RESOURCE_DIMENSION_TEXTURE2DMSARRAY = 9,
|
---|
355 | VGPU10_RESOURCE_DIMENSION_TEXTURECUBEARRAY = 10
|
---|
356 | } VGPU10_RESOURCE_DIMENSION;
|
---|
357 |
|
---|
358 | typedef enum {
|
---|
359 | VGPU10_SAMPLER_MODE_DEFAULT = 0,
|
---|
360 | VGPU10_SAMPLER_MODE_COMPARISON = 1,
|
---|
361 | VGPU10_SAMPLER_MODE_MONO = 2
|
---|
362 | } VGPU10_SAMPLER_MODE;
|
---|
363 |
|
---|
364 | typedef enum {
|
---|
365 | VGPU10_INSTRUCTION_TEST_ZERO = 0,
|
---|
366 | VGPU10_INSTRUCTION_TEST_NONZERO = 1
|
---|
367 | } VGPU10_INSTRUCTION_TEST_BOOLEAN;
|
---|
368 |
|
---|
369 | typedef enum {
|
---|
370 | VGPU10_CB_IMMEDIATE_INDEXED = 0,
|
---|
371 | VGPU10_CB_DYNAMIC_INDEXED = 1
|
---|
372 | } VGPU10_CB_ACCESS_PATTERN;
|
---|
373 |
|
---|
374 | typedef enum {
|
---|
375 | VGPU10_PRIMITIVE_UNDEFINED = 0,
|
---|
376 | VGPU10_PRIMITIVE_POINT = 1,
|
---|
377 | VGPU10_PRIMITIVE_LINE = 2,
|
---|
378 | VGPU10_PRIMITIVE_TRIANGLE = 3,
|
---|
379 | VGPU10_PRIMITIVE_LINE_ADJ = 6,
|
---|
380 | VGPU10_PRIMITIVE_TRIANGLE_ADJ = 7,
|
---|
381 | VGPU10_PRIMITIVE_SM40_MAX = 7,
|
---|
382 |
|
---|
383 | /* DX11 */
|
---|
384 | VGPU10_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
|
---|
385 | VGPU10_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
|
---|
386 | VGPU10_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
|
---|
387 | VGPU10_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
|
---|
388 | VGPU10_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
|
---|
389 | VGPU10_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
|
---|
390 | VGPU10_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
|
---|
391 | VGPU10_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
|
---|
392 | VGPU10_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
|
---|
393 | VGPU10_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
|
---|
394 | VGPU10_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
|
---|
395 | VGPU10_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
|
---|
396 | VGPU10_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
|
---|
397 | VGPU10_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
|
---|
398 | VGPU10_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
|
---|
399 | VGPU10_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
|
---|
400 | VGPU10_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
|
---|
401 | VGPU10_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
|
---|
402 | VGPU10_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
|
---|
403 | VGPU10_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
|
---|
404 | VGPU10_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
|
---|
405 | VGPU10_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
|
---|
406 | VGPU10_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
|
---|
407 | VGPU10_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
|
---|
408 | VGPU10_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
|
---|
409 | VGPU10_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
|
---|
410 | VGPU10_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
|
---|
411 | VGPU10_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
|
---|
412 | VGPU10_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
|
---|
413 | VGPU10_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
|
---|
414 | VGPU10_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
|
---|
415 | VGPU10_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
|
---|
416 | VGPU10_PRIMITIVE_MAX = 39
|
---|
417 | } VGPU10_PRIMITIVE;
|
---|
418 |
|
---|
419 | typedef enum {
|
---|
420 | VGPU10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
|
---|
421 | VGPU10_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
|
---|
422 | VGPU10_PRIMITIVE_TOPOLOGY_LINELIST = 2,
|
---|
423 | VGPU10_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
|
---|
424 | VGPU10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
|
---|
425 | VGPU10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
|
---|
426 | VGPU10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
|
---|
427 | VGPU10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
|
---|
428 | VGPU10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
|
---|
429 | VGPU10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
|
---|
430 | } VGPU10_PRIMITIVE_TOPOLOGY;
|
---|
431 |
|
---|
432 | typedef enum {
|
---|
433 | VGPU10_CUSTOMDATA_COMMENT = 0,
|
---|
434 | VGPU10_CUSTOMDATA_DEBUGINFO = 1,
|
---|
435 | VGPU10_CUSTOMDATA_OPAQUE = 2,
|
---|
436 | VGPU10_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER = 3
|
---|
437 | } VGPU10_CUSTOMDATA_CLASS;
|
---|
438 |
|
---|
439 | typedef enum {
|
---|
440 | VGPU10_RESINFO_RETURN_FLOAT = 0,
|
---|
441 | VGPU10_RESINFO_RETURN_RCPFLOAT = 1,
|
---|
442 | VGPU10_RESINFO_RETURN_UINT = 2
|
---|
443 | } VGPU10_RESINFO_RETURN_TYPE;
|
---|
444 |
|
---|
445 |
|
---|
446 | typedef enum {
|
---|
447 | VGPU10_INSTRUCTION_RETURN_FLOAT = 0,
|
---|
448 | VGPU10_INSTRUCTION_RETURN_UINT = 1
|
---|
449 | } VGPU10_INSTRUCTION_RETURN_TYPE;
|
---|
450 |
|
---|
451 | /* DX11 */
|
---|
452 | typedef enum {
|
---|
453 | VGPU10_TESSELLATOR_DOMAIN_UNDEFINED = 0,
|
---|
454 | VGPU10_TESSELLATOR_DOMAIN_ISOLINE = 1,
|
---|
455 | VGPU10_TESSELLATOR_DOMAIN_TRI = 2,
|
---|
456 | VGPU10_TESSELLATOR_DOMAIN_QUAD = 3,
|
---|
457 | VGPU10_TESSELLATOR_DOMAIN_MAX = 3
|
---|
458 | } VGPU10_TESSELLATOR_DOMAIN;
|
---|
459 |
|
---|
460 | /* DX11 */
|
---|
461 | typedef enum {
|
---|
462 | VGPU10_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
|
---|
463 | VGPU10_TESSELLATOR_PARTITIONING_INTEGER = 1,
|
---|
464 | VGPU10_TESSELLATOR_PARTITIONING_POW2 = 2,
|
---|
465 | VGPU10_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
|
---|
466 | VGPU10_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
|
---|
467 | VGPU10_TESSELLATOR_PARTITIONING_MAX = 4
|
---|
468 | } VGPU10_TESSELLATOR_PARTITIONING;
|
---|
469 |
|
---|
470 | /* DX11 */
|
---|
471 | typedef enum {
|
---|
472 | VGPU10_TESSELLATOR_OUTPUT_UNDEFINED = 0,
|
---|
473 | VGPU10_TESSELLATOR_OUTPUT_POINT = 1,
|
---|
474 | VGPU10_TESSELLATOR_OUTPUT_LINE = 2,
|
---|
475 | VGPU10_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
|
---|
476 | VGPU10_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
|
---|
477 | VGPU10_TESSELLATOR_OUTPUT_MAX = 4
|
---|
478 | } VGPU10_TESSELLATOR_OUTPUT_PRIMITIVE;
|
---|
479 |
|
---|
480 | typedef union {
|
---|
481 | struct {
|
---|
482 | unsigned int opcodeType : 11; /* VGPU10_OPCODE_TYPE */
|
---|
483 | unsigned int interpolationMode : 4; /* VGPU10_INTERPOLATION_MODE */
|
---|
484 | unsigned int : 3;
|
---|
485 | unsigned int testBoolean : 1; /* VGPU10_INSTRUCTION_TEST_BOOLEAN */
|
---|
486 | unsigned int preciseValues : 4; /* DX11 VGPU10_OPERAND_4_COMPONENT_MASK_* */
|
---|
487 | unsigned int : 1;
|
---|
488 | unsigned int instructionLength : 7;
|
---|
489 | unsigned int extended : 1;
|
---|
490 | };
|
---|
491 | /* VGPU10_OPCODE_VMWARE */
|
---|
492 | struct {
|
---|
493 | unsigned int : 11;
|
---|
494 | unsigned int vmwareOpcodeType : 4; /* VGPU10_VMWARE_OPCODE_TYPE */
|
---|
495 | };
|
---|
496 | struct {
|
---|
497 | unsigned int : 11;
|
---|
498 | unsigned int resourceDimension : 5; /* VGPU10_RESOURCE_DIMENSION */
|
---|
499 | unsigned int sampleCount : 7;
|
---|
500 | };
|
---|
501 | struct {
|
---|
502 | unsigned int : 11;
|
---|
503 | unsigned int samplerMode : 4; /* VGPU10_SAMPLER_MODE */
|
---|
504 | };
|
---|
505 | struct {
|
---|
506 | unsigned int : 11;
|
---|
507 | unsigned int accessPattern : 1; /* VGPU10_CB_ACCESS_PATTERN */
|
---|
508 | };
|
---|
509 | struct {
|
---|
510 | unsigned int : 11;
|
---|
511 | unsigned int primitive : 6; /* VGPU10_PRIMITIVE */
|
---|
512 | };
|
---|
513 | struct {
|
---|
514 | unsigned int : 11;
|
---|
515 | unsigned int primitiveTopology : 6; /* VGPU10_PRIMITIVE_TOPOLOGY */
|
---|
516 | };
|
---|
517 | struct {
|
---|
518 | unsigned int : 11;
|
---|
519 | unsigned int customDataClass : 21; /* VGPU10_CUSTOMDATA_CLASS */
|
---|
520 | };
|
---|
521 | struct {
|
---|
522 | unsigned int : 11;
|
---|
523 | unsigned int resinfoReturnType : 2; /* VGPU10_RESINFO_RETURN_TYPE */
|
---|
524 | unsigned int saturate : 1;
|
---|
525 | };
|
---|
526 | struct {
|
---|
527 | unsigned int : 11;
|
---|
528 | unsigned int refactoringAllowed : 1;
|
---|
529 |
|
---|
530 | /* DX11 */
|
---|
531 | unsigned int enableDoublePrecisionFloatOps : 1;
|
---|
532 | unsigned int forceEarlyDepthStencil : 1;
|
---|
533 | unsigned int enableRawAndStructuredBuffers : 1;
|
---|
534 | };
|
---|
535 | struct {
|
---|
536 | unsigned int : 11;
|
---|
537 | unsigned int instReturnType : 2; /* VGPU10_INSTRUCTION_RETURN_TYPE */
|
---|
538 | };
|
---|
539 |
|
---|
540 | /* DX11 */
|
---|
541 | struct {
|
---|
542 | unsigned int : 11;
|
---|
543 | unsigned int syncThreadsInGroup : 1;
|
---|
544 | unsigned int syncThreadGroupShared : 1;
|
---|
545 | unsigned int syncUAVMemoryGroup : 1;
|
---|
546 | unsigned int syncUAVMemoryGlobal : 1;
|
---|
547 | };
|
---|
548 | struct {
|
---|
549 | unsigned int : 11; /* VGPU10_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT
|
---|
550 | * VGPU10_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT */
|
---|
551 | unsigned int controlPointCount : 6;
|
---|
552 | };
|
---|
553 | struct {
|
---|
554 | unsigned int : 11; /* VGPU10_OPCODE_DCL_TESS_DOMAIN */
|
---|
555 | unsigned int tessDomain : 2; /* VGPU10_TESSELLATOR_DOMAIN */
|
---|
556 | };
|
---|
557 | struct {
|
---|
558 | unsigned int : 11; /* VGPU10_OPCODE_DCL_TESS_PARTITIONING */
|
---|
559 | unsigned int tessPartitioning : 3; /* VGPU10_TESSELLATOR_PARTITIONING */
|
---|
560 | };
|
---|
561 | struct {
|
---|
562 | unsigned int : 11; /* VGPU10_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE */
|
---|
563 | unsigned int tessOutputPrimitive : 3; /* VGPU10_TESSELLATOR_OUTPUT_PRIMITIVE */
|
---|
564 | };
|
---|
565 | struct {
|
---|
566 | unsigned int : 11; /* VGPU10_OPCODE_DCL_INTERFACE */
|
---|
567 | unsigned int interfaceIndexedDynamically : 1;
|
---|
568 | };
|
---|
569 | struct {
|
---|
570 | unsigned int : 11; /* VGPU10_OPCODE_DCL_UAV_* */
|
---|
571 | unsigned int uavResourceDimension : 5; /* VGPU10_RESOURCE_DIMENSION */
|
---|
572 | unsigned int globallyCoherent : 1;
|
---|
573 | unsigned int : 6;
|
---|
574 | unsigned int uavHasCounter : 1;
|
---|
575 | };
|
---|
576 | uint32 value;
|
---|
577 | } VGPU10OpcodeToken0;
|
---|
578 |
|
---|
579 |
|
---|
580 | typedef enum {
|
---|
581 | VGPU10_EXTENDED_OPCODE_EMPTY = 0,
|
---|
582 | VGPU10_EXTENDED_OPCODE_SAMPLE_CONTROLS
|
---|
583 | } VGPU10_EXTENDED_OPCODE_TYPE;
|
---|
584 |
|
---|
585 | typedef union {
|
---|
586 | struct {
|
---|
587 | unsigned int opcodeType : 6; /* VGPU10_EXTENDED_OPCODE_TYPE */
|
---|
588 | unsigned int : 3;
|
---|
589 | unsigned int offsetU : 4; /* Two's complement. */
|
---|
590 | unsigned int offsetV : 4; /* Two's complement. */
|
---|
591 | unsigned int offsetW : 4; /* Two's complement. */
|
---|
592 | unsigned int : 10;
|
---|
593 | unsigned int extended : 1;
|
---|
594 | };
|
---|
595 | uint32 value;
|
---|
596 | } VGPU10OpcodeToken1;
|
---|
597 |
|
---|
598 |
|
---|
599 | typedef enum {
|
---|
600 | VGPU10_OPERAND_0_COMPONENT = 0,
|
---|
601 | VGPU10_OPERAND_1_COMPONENT = 1,
|
---|
602 | VGPU10_OPERAND_4_COMPONENT = 2,
|
---|
603 | VGPU10_OPERAND_N_COMPONENT = 3 /* Unused for now. */
|
---|
604 | } VGPU10_OPERAND_NUM_COMPONENTS;
|
---|
605 |
|
---|
606 | typedef enum {
|
---|
607 | VGPU10_OPERAND_4_COMPONENT_MASK_MODE = 0,
|
---|
608 | VGPU10_OPERAND_4_COMPONENT_SWIZZLE_MODE = 1,
|
---|
609 | VGPU10_OPERAND_4_COMPONENT_SELECT_1_MODE = 2
|
---|
610 | } VGPU10_OPERAND_4_COMPONENT_SELECTION_MODE;
|
---|
611 |
|
---|
612 | #define VGPU10_OPERAND_4_COMPONENT_MASK_X 0x1
|
---|
613 | #define VGPU10_OPERAND_4_COMPONENT_MASK_Y 0x2
|
---|
614 | #define VGPU10_OPERAND_4_COMPONENT_MASK_Z 0x4
|
---|
615 | #define VGPU10_OPERAND_4_COMPONENT_MASK_W 0x8
|
---|
616 |
|
---|
617 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XY (VGPU10_OPERAND_4_COMPONENT_MASK_X | VGPU10_OPERAND_4_COMPONENT_MASK_Y)
|
---|
618 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XZ (VGPU10_OPERAND_4_COMPONENT_MASK_X | VGPU10_OPERAND_4_COMPONENT_MASK_Z)
|
---|
619 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XW (VGPU10_OPERAND_4_COMPONENT_MASK_X | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
620 | #define VGPU10_OPERAND_4_COMPONENT_MASK_YZ (VGPU10_OPERAND_4_COMPONENT_MASK_Y | VGPU10_OPERAND_4_COMPONENT_MASK_Z)
|
---|
621 | #define VGPU10_OPERAND_4_COMPONENT_MASK_YW (VGPU10_OPERAND_4_COMPONENT_MASK_Y | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
622 | #define VGPU10_OPERAND_4_COMPONENT_MASK_ZW (VGPU10_OPERAND_4_COMPONENT_MASK_Z | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
623 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XYZ (VGPU10_OPERAND_4_COMPONENT_MASK_XY | VGPU10_OPERAND_4_COMPONENT_MASK_Z)
|
---|
624 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XYW (VGPU10_OPERAND_4_COMPONENT_MASK_XY | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
625 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XZW (VGPU10_OPERAND_4_COMPONENT_MASK_XZ | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
626 | #define VGPU10_OPERAND_4_COMPONENT_MASK_YZW (VGPU10_OPERAND_4_COMPONENT_MASK_YZ | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
627 | #define VGPU10_OPERAND_4_COMPONENT_MASK_XYZW (VGPU10_OPERAND_4_COMPONENT_MASK_XYZ | VGPU10_OPERAND_4_COMPONENT_MASK_W)
|
---|
628 | #define VGPU10_OPERAND_4_COMPONENT_MASK_ALL VGPU10_OPERAND_4_COMPONENT_MASK_XYZW
|
---|
629 |
|
---|
630 | #define VGPU10_REGISTER_INDEX_FROM_SEMANTIC 0xffffffff
|
---|
631 |
|
---|
632 | typedef enum {
|
---|
633 | VGPU10_COMPONENT_X = 0,
|
---|
634 | VGPU10_COMPONENT_Y = 1,
|
---|
635 | VGPU10_COMPONENT_Z = 2,
|
---|
636 | VGPU10_COMPONENT_W = 3
|
---|
637 | } VGPU10_COMPONENT_NAME;
|
---|
638 |
|
---|
639 | typedef enum {
|
---|
640 | VGPU10_OPERAND_TYPE_TEMP = 0,
|
---|
641 | VGPU10_OPERAND_TYPE_INPUT = 1,
|
---|
642 | VGPU10_OPERAND_TYPE_OUTPUT = 2,
|
---|
643 | VGPU10_OPERAND_TYPE_INDEXABLE_TEMP = 3,
|
---|
644 | VGPU10_OPERAND_TYPE_IMMEDIATE32 = 4,
|
---|
645 | VGPU10_OPERAND_TYPE_IMMEDIATE64 = 5,
|
---|
646 | VGPU10_OPERAND_TYPE_SAMPLER = 6,
|
---|
647 | VGPU10_OPERAND_TYPE_RESOURCE = 7,
|
---|
648 | VGPU10_OPERAND_TYPE_CONSTANT_BUFFER = 8,
|
---|
649 | VGPU10_OPERAND_TYPE_IMMEDIATE_CONSTANT_BUFFER = 9,
|
---|
650 | VGPU10_OPERAND_TYPE_LABEL = 10,
|
---|
651 | VGPU10_OPERAND_TYPE_INPUT_PRIMITIVEID = 11,
|
---|
652 | VGPU10_OPERAND_TYPE_OUTPUT_DEPTH = 12,
|
---|
653 | VGPU10_OPERAND_TYPE_NULL = 13,
|
---|
654 | VGPU10_OPERAND_TYPE_SM40_MAX = 13,
|
---|
655 |
|
---|
656 | /* DX10.1 */
|
---|
657 | VGPU10_OPERAND_TYPE_RASTERIZER = 14,
|
---|
658 | VGPU10_OPERAND_TYPE_OUTPUT_COVERAGE_MASK = 15,
|
---|
659 | VGPU10_OPERAND_TYPE_SM41_MAX = 15,
|
---|
660 |
|
---|
661 | /* DX11 */
|
---|
662 | VGPU10_OPERAND_TYPE_STREAM = 16,
|
---|
663 | VGPU10_OPERAND_TYPE_FUNCTION_BODY = 17,
|
---|
664 | VGPU10_OPERAND_TYPE_FUNCTION_TABLE = 18,
|
---|
665 | VGPU10_OPERAND_TYPE_INTERFACE = 19,
|
---|
666 | VGPU10_OPERAND_TYPE_FUNCTION_INPUT = 20,
|
---|
667 | VGPU10_OPERAND_TYPE_FUNCTION_OUTPUT = 21,
|
---|
668 | VGPU10_OPERAND_TYPE_OUTPUT_CONTROL_POINT_ID = 22,
|
---|
669 | VGPU10_OPERAND_TYPE_INPUT_FORK_INSTANCE_ID = 23,
|
---|
670 | VGPU10_OPERAND_TYPE_INPUT_JOIN_INSTANCE_ID = 24,
|
---|
671 | VGPU10_OPERAND_TYPE_INPUT_CONTROL_POINT = 25,
|
---|
672 | VGPU10_OPERAND_TYPE_OUTPUT_CONTROL_POINT = 26,
|
---|
673 | VGPU10_OPERAND_TYPE_INPUT_PATCH_CONSTANT = 27,
|
---|
674 | VGPU10_OPERAND_TYPE_INPUT_DOMAIN_POINT = 28,
|
---|
675 | VGPU10_OPERAND_TYPE_THIS_POINTER = 29,
|
---|
676 | VGPU10_OPERAND_TYPE_UAV = 30,
|
---|
677 | VGPU10_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY = 31,
|
---|
678 | VGPU10_OPERAND_TYPE_INPUT_THREAD_ID = 32,
|
---|
679 | VGPU10_OPERAND_TYPE_INPUT_THREAD_GROUP_ID = 33,
|
---|
680 | VGPU10_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP = 34,
|
---|
681 | VGPU10_OPERAND_TYPE_INPUT_COVERAGE_MASK = 35,
|
---|
682 | VGPU10_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36,
|
---|
683 | VGPU10_OPERAND_TYPE_INPUT_GS_INSTANCE_ID = 37,
|
---|
684 | VGPU10_OPERAND_TYPE_OUTPUT_DEPTH_GREATER_EQUAL = 38,
|
---|
685 | VGPU10_OPERAND_TYPE_OUTPUT_DEPTH_LESS_EQUAL = 39,
|
---|
686 | VGPU10_OPERAND_TYPE_CYCLE_COUNTER = 40,
|
---|
687 | VGPU10_OPERAND_TYPE_SM50_MAX = 40,
|
---|
688 |
|
---|
689 | VGPU10_NUM_OPERANDS
|
---|
690 | } VGPU10_OPERAND_TYPE;
|
---|
691 |
|
---|
692 | typedef enum {
|
---|
693 | VGPU10_OPERAND_INDEX_0D = 0,
|
---|
694 | VGPU10_OPERAND_INDEX_1D = 1,
|
---|
695 | VGPU10_OPERAND_INDEX_2D = 2,
|
---|
696 | VGPU10_OPERAND_INDEX_3D = 3
|
---|
697 | } VGPU10_OPERAND_INDEX_DIMENSION;
|
---|
698 |
|
---|
699 | typedef enum {
|
---|
700 | VGPU10_OPERAND_INDEX_IMMEDIATE32 = 0,
|
---|
701 | VGPU10_OPERAND_INDEX_IMMEDIATE64 = 1,
|
---|
702 | VGPU10_OPERAND_INDEX_RELATIVE = 2,
|
---|
703 | VGPU10_OPERAND_INDEX_IMMEDIATE32_PLUS_RELATIVE = 3,
|
---|
704 | VGPU10_OPERAND_INDEX_IMMEDIATE64_PLUS_RELATIVE = 4
|
---|
705 | } VGPU10_OPERAND_INDEX_REPRESENTATION;
|
---|
706 |
|
---|
707 | typedef union {
|
---|
708 | struct {
|
---|
709 | unsigned int numComponents : 2; /* VGPU10_OPERAND_NUM_COMPONENTS */
|
---|
710 | unsigned int selectionMode : 2; /* VGPU10_OPERAND_4_COMPONENT_SELECTION_MODE */
|
---|
711 | unsigned int mask : 4; /* D3D10_SB_OPERAND_4_COMPONENT_MASK_* */
|
---|
712 | unsigned int : 4;
|
---|
713 | unsigned int operandType : 8; /* VGPU10_OPERAND_TYPE */
|
---|
714 | unsigned int indexDimension : 2; /* VGPU10_OPERAND_INDEX_DIMENSION */
|
---|
715 | unsigned int index0Representation : 3; /* VGPU10_OPERAND_INDEX_REPRESENTATION */
|
---|
716 | unsigned int index1Representation : 3; /* VGPU10_OPERAND_INDEX_REPRESENTATION */
|
---|
717 | unsigned int : 3;
|
---|
718 | unsigned int extended : 1;
|
---|
719 | };
|
---|
720 | struct {
|
---|
721 | unsigned int : 4;
|
---|
722 | unsigned int swizzleX : 2; /* VGPU10_COMPONENT_NAME */
|
---|
723 | unsigned int swizzleY : 2; /* VGPU10_COMPONENT_NAME */
|
---|
724 | unsigned int swizzleZ : 2; /* VGPU10_COMPONENT_NAME */
|
---|
725 | unsigned int swizzleW : 2; /* VGPU10_COMPONENT_NAME */
|
---|
726 | };
|
---|
727 | struct {
|
---|
728 | unsigned int : 4;
|
---|
729 | unsigned int selectMask : 2; /* VGPU10_COMPONENT_NAME */
|
---|
730 | };
|
---|
731 | uint32 value;
|
---|
732 | } VGPU10OperandToken0;
|
---|
733 |
|
---|
734 |
|
---|
735 | typedef enum {
|
---|
736 | VGPU10_EXTENDED_OPERAND_EMPTY = 0,
|
---|
737 | VGPU10_EXTENDED_OPERAND_MODIFIER = 1
|
---|
738 | } VGPU10_EXTENDED_OPERAND_TYPE;
|
---|
739 |
|
---|
740 | typedef enum {
|
---|
741 | VGPU10_OPERAND_MODIFIER_NONE = 0,
|
---|
742 | VGPU10_OPERAND_MODIFIER_NEG = 1,
|
---|
743 | VGPU10_OPERAND_MODIFIER_ABS = 2,
|
---|
744 | VGPU10_OPERAND_MODIFIER_ABSNEG = 3
|
---|
745 | } VGPU10_OPERAND_MODIFIER;
|
---|
746 |
|
---|
747 | typedef union {
|
---|
748 | struct {
|
---|
749 | unsigned int extendedOperandType : 6; /* VGPU10_EXTENDED_OPERAND_TYPE */
|
---|
750 | unsigned int operandModifier : 8; /* VGPU10_OPERAND_MODIFIER */
|
---|
751 | unsigned int : 17;
|
---|
752 | unsigned int extended : 1;
|
---|
753 | };
|
---|
754 | uint32 value;
|
---|
755 | } VGPU10OperandToken1;
|
---|
756 |
|
---|
757 |
|
---|
758 | typedef enum {
|
---|
759 | VGPU10_RETURN_TYPE_MIN = 1,
|
---|
760 | VGPU10_RETURN_TYPE_UNORM = 1,
|
---|
761 | VGPU10_RETURN_TYPE_SNORM = 2,
|
---|
762 | VGPU10_RETURN_TYPE_SINT = 3,
|
---|
763 | VGPU10_RETURN_TYPE_UINT = 4,
|
---|
764 | VGPU10_RETURN_TYPE_FLOAT = 5,
|
---|
765 | VGPU10_RETURN_TYPE_MIXED = 6,
|
---|
766 | VGPU10_RETURN_TYPE_MAX = 6
|
---|
767 | } VGPU10_RESOURCE_RETURN_TYPE;
|
---|
768 |
|
---|
769 | typedef union {
|
---|
770 | struct {
|
---|
771 | unsigned int component0 : 4; /* VGPU10_RESOURCE_RETURN_TYPE */
|
---|
772 | unsigned int component1 : 4; /* VGPU10_RESOURCE_RETURN_TYPE */
|
---|
773 | unsigned int component2 : 4; /* VGPU10_RESOURCE_RETURN_TYPE */
|
---|
774 | unsigned int component3 : 4; /* VGPU10_RESOURCE_RETURN_TYPE */
|
---|
775 | };
|
---|
776 | uint32 value;
|
---|
777 | } VGPU10ResourceReturnTypeToken;
|
---|
778 |
|
---|
779 |
|
---|
780 | typedef enum {
|
---|
781 | VGPU10_NAME_MIN = 0,
|
---|
782 | VGPU10_NAME_UNDEFINED = 0,
|
---|
783 | VGPU10_NAME_POSITION = 1,
|
---|
784 | VGPU10_NAME_CLIP_DISTANCE = 2,
|
---|
785 | VGPU10_NAME_CULL_DISTANCE = 3,
|
---|
786 | VGPU10_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
|
---|
787 | VGPU10_NAME_VIEWPORT_ARRAY_INDEX = 5,
|
---|
788 | VGPU10_NAME_VERTEX_ID = 6,
|
---|
789 | VGPU10_NAME_PRIMITIVE_ID = 7,
|
---|
790 | VGPU10_NAME_INSTANCE_ID = 8,
|
---|
791 | VGPU10_NAME_IS_FRONT_FACE = 9,
|
---|
792 | VGPU10_NAME_SAMPLE_INDEX = 10,
|
---|
793 | VGPU10_NAME_SM40_MAX = 10,
|
---|
794 |
|
---|
795 | /* DX11 */
|
---|
796 | VGPU10_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR = 11,
|
---|
797 | VGPU10_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR = 12,
|
---|
798 | VGPU10_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR = 13,
|
---|
799 | VGPU10_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR = 14,
|
---|
800 | VGPU10_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR = 15,
|
---|
801 | VGPU10_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR = 16,
|
---|
802 | VGPU10_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR = 17,
|
---|
803 | VGPU10_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR = 18,
|
---|
804 | VGPU10_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR = 19,
|
---|
805 | VGPU10_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 20,
|
---|
806 | VGPU10_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 21,
|
---|
807 | VGPU10_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 22,
|
---|
808 |
|
---|
809 | VGPU10_NAME_MAX = 22
|
---|
810 | } VGPU10_SYSTEM_NAME;
|
---|
811 |
|
---|
812 | typedef union {
|
---|
813 | struct {
|
---|
814 | unsigned int name : 16; /* VGPU10_SYSTEM_NAME */
|
---|
815 | };
|
---|
816 | uint32 value;
|
---|
817 | } VGPU10NameToken;
|
---|
818 |
|
---|
819 | #endif
|
---|