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