winapi_ui_automation/um/
d3d11tokenizedprogramformat.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::minwindef::{DWORD, UINT};
7ENUM!{enum D3D10_SB_TOKENIZED_PROGRAM_TYPE {
8    D3D10_SB_PIXEL_SHADER = 0,
9    D3D10_SB_VERTEX_SHADER = 1,
10    D3D10_SB_GEOMETRY_SHADER = 2,
11    D3D11_SB_HULL_SHADER = 3,
12    D3D11_SB_DOMAIN_SHADER = 4,
13    D3D11_SB_COMPUTE_SHADER = 5,
14    D3D11_SB_RESERVED0 = 0xFFF0,
15}}
16pub const D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK: DWORD = 0xffff0000;
17pub const D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT: DWORD = 16;
18#[inline]
19pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_TYPE(VerTok: DWORD) -> DWORD {
20    ((VerTok & D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK) >> D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT)
21        as D3D10_SB_TOKENIZED_PROGRAM_TYPE
22}
23pub const D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK: DWORD = 0x000000f0;
24pub const D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT: DWORD = 4;
25pub const D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK: DWORD = 0x0000000f;
26#[inline]
27pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION(VerTok: DWORD) -> DWORD {
28    (VerTok & D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)
29        >> D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT
30}
31#[inline]
32pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION(VerTok: DWORD) -> DWORD {
33    VerTok & D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK
34}
35#[inline]
36pub fn ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(
37    ProgType: DWORD,
38    MajorVer: DWORD,
39    MinorVer: DWORD,
40) -> DWORD {
41    ((ProgType << D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT) & D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK)
42        | ((MajorVer << D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT)
43        & D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)
44        | (MinorVer & D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK)
45}
46#[inline]
47pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(LenTok: DWORD) -> DWORD {
48    LenTok
49}
50#[inline]
51pub fn ENCODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(Length: DWORD) -> DWORD {
52    Length
53}
54pub const MAX_D3D10_SB_TOKENIZED_PROGRAM_LENGTH: DWORD = 0xffffffff;
55ENUM!{enum D3D10_SB_OPCODE_TYPE {
56    D3D10_SB_OPCODE_ADD = 0,
57    D3D10_SB_OPCODE_AND = 1,
58    D3D10_SB_OPCODE_BREAK = 2,
59    D3D10_SB_OPCODE_BREAKC = 3,
60    D3D10_SB_OPCODE_CALL = 4,
61    D3D10_SB_OPCODE_CALLC = 5,
62    D3D10_SB_OPCODE_CASE = 6,
63    D3D10_SB_OPCODE_CONTINUE = 7,
64    D3D10_SB_OPCODE_CONTINUEC = 8,
65    D3D10_SB_OPCODE_CUT = 9,
66    D3D10_SB_OPCODE_DEFAULT = 10,
67    D3D10_SB_OPCODE_DERIV_RTX = 11,
68    D3D10_SB_OPCODE_DERIV_RTY = 12,
69    D3D10_SB_OPCODE_DISCARD = 13,
70    D3D10_SB_OPCODE_DIV = 14,
71    D3D10_SB_OPCODE_DP2 = 15,
72    D3D10_SB_OPCODE_DP3 = 16,
73    D3D10_SB_OPCODE_DP4 = 17,
74    D3D10_SB_OPCODE_ELSE = 18,
75    D3D10_SB_OPCODE_EMIT = 19,
76    D3D10_SB_OPCODE_EMITTHENCUT = 20,
77    D3D10_SB_OPCODE_ENDIF = 21,
78    D3D10_SB_OPCODE_ENDLOOP = 22,
79    D3D10_SB_OPCODE_ENDSWITCH = 23,
80    D3D10_SB_OPCODE_EQ = 24,
81    D3D10_SB_OPCODE_EXP = 25,
82    D3D10_SB_OPCODE_FRC = 26,
83    D3D10_SB_OPCODE_FTOI = 27,
84    D3D10_SB_OPCODE_FTOU = 28,
85    D3D10_SB_OPCODE_GE = 29,
86    D3D10_SB_OPCODE_IADD = 30,
87    D3D10_SB_OPCODE_IF = 31,
88    D3D10_SB_OPCODE_IEQ = 32,
89    D3D10_SB_OPCODE_IGE = 33,
90    D3D10_SB_OPCODE_ILT = 34,
91    D3D10_SB_OPCODE_IMAD = 35,
92    D3D10_SB_OPCODE_IMAX = 36,
93    D3D10_SB_OPCODE_IMIN = 37,
94    D3D10_SB_OPCODE_IMUL = 38,
95    D3D10_SB_OPCODE_INE = 39,
96    D3D10_SB_OPCODE_INEG = 40,
97    D3D10_SB_OPCODE_ISHL = 41,
98    D3D10_SB_OPCODE_ISHR = 42,
99    D3D10_SB_OPCODE_ITOF = 43,
100    D3D10_SB_OPCODE_LABEL = 44,
101    D3D10_SB_OPCODE_LD = 45,
102    D3D10_SB_OPCODE_LD_MS = 46,
103    D3D10_SB_OPCODE_LOG = 47,
104    D3D10_SB_OPCODE_LOOP = 48,
105    D3D10_SB_OPCODE_LT = 49,
106    D3D10_SB_OPCODE_MAD = 50,
107    D3D10_SB_OPCODE_MIN = 51,
108    D3D10_SB_OPCODE_MAX = 52,
109    D3D10_SB_OPCODE_CUSTOMDATA = 53,
110    D3D10_SB_OPCODE_MOV = 54,
111    D3D10_SB_OPCODE_MOVC = 55,
112    D3D10_SB_OPCODE_MUL = 56,
113    D3D10_SB_OPCODE_NE = 57,
114    D3D10_SB_OPCODE_NOP = 58,
115    D3D10_SB_OPCODE_NOT = 59,
116    D3D10_SB_OPCODE_OR = 60,
117    D3D10_SB_OPCODE_RESINFO = 61,
118    D3D10_SB_OPCODE_RET = 62,
119    D3D10_SB_OPCODE_RETC = 63,
120    D3D10_SB_OPCODE_ROUND_NE = 64,
121    D3D10_SB_OPCODE_ROUND_NI = 65,
122    D3D10_SB_OPCODE_ROUND_PI = 66,
123    D3D10_SB_OPCODE_ROUND_Z = 67,
124    D3D10_SB_OPCODE_RSQ = 68,
125    D3D10_SB_OPCODE_SAMPLE = 69,
126    D3D10_SB_OPCODE_SAMPLE_C = 70,
127    D3D10_SB_OPCODE_SAMPLE_C_LZ = 71,
128    D3D10_SB_OPCODE_SAMPLE_L = 72,
129    D3D10_SB_OPCODE_SAMPLE_D = 73,
130    D3D10_SB_OPCODE_SAMPLE_B = 74,
131    D3D10_SB_OPCODE_SQRT = 75,
132    D3D10_SB_OPCODE_SWITCH = 76,
133    D3D10_SB_OPCODE_SINCOS = 77,
134    D3D10_SB_OPCODE_UDIV = 78,
135    D3D10_SB_OPCODE_ULT = 79,
136    D3D10_SB_OPCODE_UGE = 80,
137    D3D10_SB_OPCODE_UMUL = 81,
138    D3D10_SB_OPCODE_UMAD = 82,
139    D3D10_SB_OPCODE_UMAX = 83,
140    D3D10_SB_OPCODE_UMIN = 84,
141    D3D10_SB_OPCODE_USHR = 85,
142    D3D10_SB_OPCODE_UTOF = 86,
143    D3D10_SB_OPCODE_XOR = 87,
144    D3D10_SB_OPCODE_DCL_RESOURCE = 88,
145    D3D10_SB_OPCODE_DCL_CONSTANT_BUFFER = 89,
146    D3D10_SB_OPCODE_DCL_SAMPLER = 90,
147    D3D10_SB_OPCODE_DCL_INDEX_RANGE = 91,
148    D3D10_SB_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY = 92,
149    D3D10_SB_OPCODE_DCL_GS_INPUT_PRIMITIVE = 93,
150    D3D10_SB_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT = 94,
151    D3D10_SB_OPCODE_DCL_INPUT = 95,
152    D3D10_SB_OPCODE_DCL_INPUT_SGV = 96,
153    D3D10_SB_OPCODE_DCL_INPUT_SIV = 97,
154    D3D10_SB_OPCODE_DCL_INPUT_PS = 98,
155    D3D10_SB_OPCODE_DCL_INPUT_PS_SGV = 99,
156    D3D10_SB_OPCODE_DCL_INPUT_PS_SIV = 100,
157    D3D10_SB_OPCODE_DCL_OUTPUT = 101,
158    D3D10_SB_OPCODE_DCL_OUTPUT_SGV = 102,
159    D3D10_SB_OPCODE_DCL_OUTPUT_SIV = 103,
160    D3D10_SB_OPCODE_DCL_TEMPS = 104,
161    D3D10_SB_OPCODE_DCL_INDEXABLE_TEMP = 105,
162    D3D10_SB_OPCODE_DCL_GLOBAL_FLAGS = 106,
163    D3D10_SB_OPCODE_RESERVED0 = 107,
164    D3D10_1_SB_OPCODE_LOD = 108,
165    D3D10_1_SB_OPCODE_GATHER4 = 109,
166    D3D10_1_SB_OPCODE_SAMPLE_POS = 110,
167    D3D10_1_SB_OPCODE_SAMPLE_INFO = 111,
168    D3D10_1_SB_OPCODE_RESERVED1 = 112,
169    D3D11_SB_OPCODE_HS_DECLS = 113,
170    D3D11_SB_OPCODE_HS_CONTROL_POINT_PHASE = 114,
171    D3D11_SB_OPCODE_HS_FORK_PHASE = 115,
172    D3D11_SB_OPCODE_HS_JOIN_PHASE = 116,
173    D3D11_SB_OPCODE_EMIT_STREAM = 117,
174    D3D11_SB_OPCODE_CUT_STREAM = 118,
175    D3D11_SB_OPCODE_EMITTHENCUT_STREAM = 119,
176    D3D11_SB_OPCODE_INTERFACE_CALL = 120,
177    D3D11_SB_OPCODE_BUFINFO = 121,
178    D3D11_SB_OPCODE_DERIV_RTX_COARSE = 122,
179    D3D11_SB_OPCODE_DERIV_RTX_FINE = 123,
180    D3D11_SB_OPCODE_DERIV_RTY_COARSE = 124,
181    D3D11_SB_OPCODE_DERIV_RTY_FINE = 125,
182    D3D11_SB_OPCODE_GATHER4_C = 126,
183    D3D11_SB_OPCODE_GATHER4_PO = 127,
184    D3D11_SB_OPCODE_GATHER4_PO_C = 128,
185    D3D11_SB_OPCODE_RCP = 129,
186    D3D11_SB_OPCODE_F32TOF16 = 130,
187    D3D11_SB_OPCODE_F16TOF32 = 131,
188    D3D11_SB_OPCODE_UADDC = 132,
189    D3D11_SB_OPCODE_USUBB = 133,
190    D3D11_SB_OPCODE_COUNTBITS = 134,
191    D3D11_SB_OPCODE_FIRSTBIT_HI = 135,
192    D3D11_SB_OPCODE_FIRSTBIT_LO = 136,
193    D3D11_SB_OPCODE_FIRSTBIT_SHI = 137,
194    D3D11_SB_OPCODE_UBFE = 138,
195    D3D11_SB_OPCODE_IBFE = 139,
196    D3D11_SB_OPCODE_BFI = 140,
197    D3D11_SB_OPCODE_BFREV = 141,
198    D3D11_SB_OPCODE_SWAPC = 142,
199    D3D11_SB_OPCODE_DCL_STREAM = 143,
200    D3D11_SB_OPCODE_DCL_FUNCTION_BODY = 144,
201    D3D11_SB_OPCODE_DCL_FUNCTION_TABLE = 145,
202    D3D11_SB_OPCODE_DCL_INTERFACE = 146,
203    D3D11_SB_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT = 147,
204    D3D11_SB_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT = 148,
205    D3D11_SB_OPCODE_DCL_TESS_DOMAIN = 149,
206    D3D11_SB_OPCODE_DCL_TESS_PARTITIONING = 150,
207    D3D11_SB_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE = 151,
208    D3D11_SB_OPCODE_DCL_HS_MAX_TESSFACTOR = 152,
209    D3D11_SB_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT = 153,
210    D3D11_SB_OPCODE_DCL_HS_JOIN_PHASE_INSTANCE_COUNT = 154,
211    D3D11_SB_OPCODE_DCL_THREAD_GROUP = 155,
212    D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_TYPED = 156,
213    D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW = 157,
214    D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED = 158,
215    D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW = 159,
216    D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED = 160,
217    D3D11_SB_OPCODE_DCL_RESOURCE_RAW = 161,
218    D3D11_SB_OPCODE_DCL_RESOURCE_STRUCTURED = 162,
219    D3D11_SB_OPCODE_LD_UAV_TYPED = 163,
220    D3D11_SB_OPCODE_STORE_UAV_TYPED = 164,
221    D3D11_SB_OPCODE_LD_RAW = 165,
222    D3D11_SB_OPCODE_STORE_RAW = 166,
223    D3D11_SB_OPCODE_LD_STRUCTURED = 167,
224    D3D11_SB_OPCODE_STORE_STRUCTURED = 168,
225    D3D11_SB_OPCODE_ATOMIC_AND = 169,
226    D3D11_SB_OPCODE_ATOMIC_OR = 170,
227    D3D11_SB_OPCODE_ATOMIC_XOR = 171,
228    D3D11_SB_OPCODE_ATOMIC_CMP_STORE = 172,
229    D3D11_SB_OPCODE_ATOMIC_IADD = 173,
230    D3D11_SB_OPCODE_ATOMIC_IMAX = 174,
231    D3D11_SB_OPCODE_ATOMIC_IMIN = 175,
232    D3D11_SB_OPCODE_ATOMIC_UMAX = 176,
233    D3D11_SB_OPCODE_ATOMIC_UMIN = 177,
234    D3D11_SB_OPCODE_IMM_ATOMIC_ALLOC = 178,
235    D3D11_SB_OPCODE_IMM_ATOMIC_CONSUME = 179,
236    D3D11_SB_OPCODE_IMM_ATOMIC_IADD = 180,
237    D3D11_SB_OPCODE_IMM_ATOMIC_AND = 181,
238    D3D11_SB_OPCODE_IMM_ATOMIC_OR = 182,
239    D3D11_SB_OPCODE_IMM_ATOMIC_XOR = 183,
240    D3D11_SB_OPCODE_IMM_ATOMIC_EXCH = 184,
241    D3D11_SB_OPCODE_IMM_ATOMIC_CMP_EXCH = 185,
242    D3D11_SB_OPCODE_IMM_ATOMIC_IMAX = 186,
243    D3D11_SB_OPCODE_IMM_ATOMIC_IMIN = 187,
244    D3D11_SB_OPCODE_IMM_ATOMIC_UMAX = 188,
245    D3D11_SB_OPCODE_IMM_ATOMIC_UMIN = 189,
246    D3D11_SB_OPCODE_SYNC = 190,
247    D3D11_SB_OPCODE_DADD = 191,
248    D3D11_SB_OPCODE_DMAX = 192,
249    D3D11_SB_OPCODE_DMIN = 193,
250    D3D11_SB_OPCODE_DMUL = 194,
251    D3D11_SB_OPCODE_DEQ = 195,
252    D3D11_SB_OPCODE_DGE = 196,
253    D3D11_SB_OPCODE_DLT = 197,
254    D3D11_SB_OPCODE_DNE = 198,
255    D3D11_SB_OPCODE_DMOV = 199,
256    D3D11_SB_OPCODE_DMOVC = 200,
257    D3D11_SB_OPCODE_DTOF = 201,
258    D3D11_SB_OPCODE_FTOD = 202,
259    D3D11_SB_OPCODE_EVAL_SNAPPED = 203,
260    D3D11_SB_OPCODE_EVAL_SAMPLE_INDEX = 204,
261    D3D11_SB_OPCODE_EVAL_CENTROID = 205,
262    D3D11_SB_OPCODE_DCL_GS_INSTANCE_COUNT = 206,
263    D3D11_SB_OPCODE_ABORT = 207,
264    D3D11_SB_OPCODE_DEBUG_BREAK = 208,
265    D3D11_SB_OPCODE_RESERVED0 = 209,
266    D3D11_1_SB_OPCODE_DDIV = 210,
267    D3D11_1_SB_OPCODE_DFMA = 211,
268    D3D11_1_SB_OPCODE_DRCP = 212,
269    D3D11_1_SB_OPCODE_MSAD = 213,
270    D3D11_1_SB_OPCODE_DTOI = 214,
271    D3D11_1_SB_OPCODE_DTOU = 215,
272    D3D11_1_SB_OPCODE_ITOD = 216,
273    D3D11_1_SB_OPCODE_UTOD = 217,
274    D3D11_1_SB_OPCODE_RESERVED0 = 218,
275    D3DWDDM1_3_SB_OPCODE_GATHER4_FEEDBACK = 219,
276    D3DWDDM1_3_SB_OPCODE_GATHER4_C_FEEDBACK = 220,
277    D3DWDDM1_3_SB_OPCODE_GATHER4_PO_FEEDBACK = 221,
278    D3DWDDM1_3_SB_OPCODE_GATHER4_PO_C_FEEDBACK = 222,
279    D3DWDDM1_3_SB_OPCODE_LD_FEEDBACK = 223,
280    D3DWDDM1_3_SB_OPCODE_LD_MS_FEEDBACK = 224,
281    D3DWDDM1_3_SB_OPCODE_LD_UAV_TYPED_FEEDBACK = 225,
282    D3DWDDM1_3_SB_OPCODE_LD_RAW_FEEDBACK = 226,
283    D3DWDDM1_3_SB_OPCODE_LD_STRUCTURED_FEEDBACK = 227,
284    D3DWDDM1_3_SB_OPCODE_SAMPLE_L_FEEDBACK = 228,
285    D3DWDDM1_3_SB_OPCODE_SAMPLE_C_LZ_FEEDBACK = 229,
286    D3DWDDM1_3_SB_OPCODE_SAMPLE_CLAMP_FEEDBACK = 230,
287    D3DWDDM1_3_SB_OPCODE_SAMPLE_B_CLAMP_FEEDBACK = 231,
288    D3DWDDM1_3_SB_OPCODE_SAMPLE_D_CLAMP_FEEDBACK = 232,
289    D3DWDDM1_3_SB_OPCODE_SAMPLE_C_CLAMP_FEEDBACK = 233,
290    D3DWDDM1_3_SB_OPCODE_CHECK_ACCESS_FULLY_MAPPED = 234,
291    D3DWDDM1_3_SB_OPCODE_RESERVED0 = 235,
292    D3D10_SB_NUM_OPCODES = 236,
293}}
294pub const D3D10_SB_OPCODE_TYPE_MASK: DWORD = 0x00007ff;
295#[inline]
296pub fn DECODE_D3D10_SB_OPCODE_TYPE(OpcodeToken0: DWORD) -> D3D10_SB_OPCODE_TYPE {
297    (OpcodeToken0 & D3D10_SB_OPCODE_TYPE_MASK) as D3D10_SB_OPCODE_TYPE
298}
299#[inline]
300pub fn ENCODE_D3D10_SB_OPCODE_TYPE(OpcodeName: D3D10_SB_OPCODE_TYPE) -> DWORD {
301    OpcodeName & D3D10_SB_OPCODE_TYPE_MASK
302}
303pub const D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK: DWORD = 0x7f000000;
304pub const D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT: DWORD = 24;
305#[inline]
306pub fn DECODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(OpcodeToken0: DWORD) -> DWORD {
307    (OpcodeToken0 & D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK)
308        >> D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT
309}
310#[inline]
311pub fn ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(Length: DWORD) -> DWORD {
312    (Length << D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT)
313        & D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK
314}
315pub const MAX_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH: DWORD = 127;
316pub const D3D10_SB_INSTRUCTION_SATURATE_MASK: DWORD = 0x00002000;
317#[inline]
318pub fn DECODE_IS_D3D10_SB_INSTRUCTION_SATURATE_ENABLED(OpcodeToken0: DWORD) -> DWORD {
319    OpcodeToken0 & D3D10_SB_INSTRUCTION_SATURATE_MASK
320}
321#[inline]
322pub fn ENCODE_D3D10_SB_INSTRUCTION_SATURATE(bSat: DWORD) -> DWORD {
323    if bSat != 0 {
324        D3D10_SB_INSTRUCTION_SATURATE_MASK
325    } else {
326        0
327    }
328}
329ENUM!{enum D3D10_SB_INSTRUCTION_TEST_BOOLEAN {
330    D3D10_SB_INSTRUCTION_TEST_ZERO = 0,
331    D3D10_SB_INSTRUCTION_TEST_NONZERO = 1,
332}}
333pub const D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK: DWORD = 0x00040000;
334pub const D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT: DWORD = 18;
335#[inline]
336pub fn DECODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(
337    OpcodeToken0: DWORD,
338) -> D3D10_SB_INSTRUCTION_TEST_BOOLEAN {
339    ((OpcodeToken0 & D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK)
340        >> D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT) as D3D10_SB_INSTRUCTION_TEST_BOOLEAN
341}
342#[inline]
343pub fn ENCODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(
344    Boolean: D3D10_SB_INSTRUCTION_TEST_BOOLEAN,
345) -> DWORD {
346    (Boolean << D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT) & D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK
347}
348pub const D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK: DWORD = 0x00780000;
349pub const D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT: DWORD = 19;
350#[inline]
351pub fn DECODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(OpcodeToken0: DWORD) -> DWORD {
352    (OpcodeToken0 & D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK)
353        >> D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT
354}
355#[inline]
356pub fn ENCODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(ComponentMask: DWORD) -> DWORD {
357    (ComponentMask << D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT)
358        & D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK
359}
360ENUM!{enum D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE {
361    D3D10_SB_RESINFO_INSTRUCTION_RETURN_FLOAT = 0,
362    D3D10_SB_RESINFO_INSTRUCTION_RETURN_RCPFLOAT = 1,
363    D3D10_SB_RESINFO_INSTRUCTION_RETURN_UINT = 2,
364}}
365pub const D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK: DWORD = 0x00001800;
366pub const D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT: DWORD = 11;
367#[inline]
368pub fn DECODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(
369    OpcodeToken0: DWORD,
370) -> D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE {
371    ((OpcodeToken0 & D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK)
372        >> D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)
373        as D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE
374}
375#[inline]
376pub fn ENCODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(
377    ReturnType: D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE,
378) -> DWORD {
379    (ReturnType << D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)
380        & D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK
381}
382pub const D3D11_SB_SYNC_THREADS_IN_GROUP: DWORD = 0x00000800;
383pub const D3D11_SB_SYNC_THREAD_GROUP_SHARED_MEMORY: DWORD = 0x00001000;
384pub const D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GROUP: DWORD = 0x00002000;
385pub const D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GLOBAL: DWORD = 0x00004000;
386pub const D3D11_SB_SYNC_FLAGS_MASK: DWORD = 0x00007800;
387#[inline]
388pub fn DECODE_D3D11_SB_SYNC_FLAGS(OperandToken0: DWORD) -> DWORD {
389    OperandToken0 & D3D11_SB_SYNC_FLAGS_MASK
390}
391#[inline]
392pub fn ENCODE_D3D11_SB_SYNC_FLAGS(Flags: DWORD) -> DWORD {
393    Flags & D3D11_SB_SYNC_FLAGS_MASK
394}
395pub const D3D10_SB_OPCODE_EXTENDED_MASK: DWORD = 0x80000000;
396pub const D3D10_SB_OPCODE_EXTENDED_SHIFT: DWORD = 31;
397#[inline]
398pub fn DECODE_IS_D3D10_SB_OPCODE_EXTENDED(OpcodeToken0: DWORD) -> DWORD {
399    (OpcodeToken0 & D3D10_SB_OPCODE_EXTENDED_MASK) >> D3D10_SB_OPCODE_EXTENDED_SHIFT
400}
401#[inline]
402pub fn ENCODE_D3D10_SB_OPCODE_EXTENDED(bExtended: DWORD) -> DWORD {
403    if bExtended != 0 {
404        D3D10_SB_OPCODE_EXTENDED_MASK
405    } else {
406        0
407    }
408}
409ENUM!{enum D3D10_SB_EXTENDED_OPCODE_TYPE {
410    D3D10_SB_EXTENDED_OPCODE_EMPTY = 0,
411    D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS = 1,
412    D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM = 2,
413    D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE = 3,
414}}
415pub const D3D11_SB_MAX_SIMULTANEOUS_EXTENDED_OPCODES: DWORD = 3;
416pub const D3D10_SB_EXTENDED_OPCODE_TYPE_MASK: DWORD = 0x0000003f;
417#[inline]
418pub fn DECODE_D3D10_SB_EXTENDED_OPCODE_TYPE(OpcodeToken1: DWORD) -> D3D10_SB_EXTENDED_OPCODE_TYPE {
419    (OpcodeToken1 & D3D10_SB_EXTENDED_OPCODE_TYPE_MASK) as D3D10_SB_EXTENDED_OPCODE_TYPE
420}
421#[inline]
422pub fn ENCODE_D3D10_SB_EXTENDED_OPCODE_TYPE(
423    ExtOpcodeType: D3D10_SB_EXTENDED_OPCODE_TYPE,
424) -> DWORD {
425    ExtOpcodeType & D3D10_SB_EXTENDED_OPCODE_TYPE_MASK
426}
427ENUM!{enum D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD {
428    D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_U = 0,
429    D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_V = 1,
430    D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_W = 2,
431}}
432pub const D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK: DWORD = 3;
433#[inline]
434pub fn D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord: DWORD) -> DWORD {
435    9 + 4 * (Coord & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK)
436}
437#[inline]
438pub fn D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord: DWORD) -> DWORD {
439    0x0000000f << D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)
440}
441#[inline]
442pub fn DECODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(
443    Coord: DWORD,
444    OpcodeToken1: DWORD,
445) -> DWORD {
446    (OpcodeToken1 & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord))
447        >> D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)
448}
449#[inline]
450pub fn ENCODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(
451    Coord: DWORD,
452    ImmediateOffset: DWORD,
453) -> DWORD {
454    (ImmediateOffset << D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord))
455        & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord)
456}
457pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK: DWORD = 0x000007C0;
458pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT: DWORD = 6;
459#[inline]
460pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(
461    OpcodeTokenN: DWORD,
462) -> D3D10_SB_RESOURCE_DIMENSION {
463    ((OpcodeTokenN & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK)
464        >> D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT) as D3D10_SB_RESOURCE_DIMENSION
465}
466#[inline]
467pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(
468    ResourceDim: D3D10_SB_RESOURCE_DIMENSION,
469) -> DWORD {
470    (ResourceDim << D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT)
471        & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK
472}
473pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK: DWORD = 0x007FF800;
474pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT: DWORD = 11;
475#[inline]
476pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(OpcodeTokenN: DWORD) -> DWORD {
477    (OpcodeTokenN & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK)
478        >> D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT
479}
480#[inline]
481pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(Stride: DWORD) -> DWORD {
482    (Stride << D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT)
483        & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK
484}
485pub const D3D10_SB_RESOURCE_RETURN_TYPE_MASK: DWORD = 0x0000000f;
486pub const D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS: DWORD = 0x00000004;
487pub const D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT: DWORD = 6;
488#[inline]
489pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(
490    OpcodeTokenN: DWORD,
491    Component: DWORD,
492) -> DWORD {
493    ((OpcodeTokenN >> (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS
494        + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT))
495        & D3D10_SB_RESOURCE_RETURN_TYPE_MASK) as D3D10_SB_RESOURCE_RETURN_TYPE
496}
497#[inline]
498pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(
499    ReturnType: DWORD,
500    Component: DWORD,
501) -> DWORD {
502    (ReturnType & D3D10_SB_RESOURCE_RETURN_TYPE_MASK)
503        << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS
504        + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT)
505}
506ENUM!{enum D3D10_SB_CUSTOMDATA_CLASS {
507    D3D10_SB_CUSTOMDATA_COMMENT = 0,
508    D3D10_SB_CUSTOMDATA_DEBUGINFO = 1,
509    D3D10_SB_CUSTOMDATA_OPAQUE = 2,
510    D3D10_SB_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER = 3,
511    D3D11_SB_CUSTOMDATA_SHADER_MESSAGE = 4,
512    D3D11_SB_CUSTOMDATA_SHADER_CLIP_PLANE_CONSTANT_MAPPINGS_FOR_DX9 = 5,
513}}
514pub const D3D10_SB_CUSTOMDATA_CLASS_MASK: DWORD = 0xfffff800;
515pub const D3D10_SB_CUSTOMDATA_CLASS_SHIFT: DWORD = 11;
516#[inline]
517pub fn DECODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataDescTok: DWORD) -> D3D10_SB_CUSTOMDATA_CLASS {
518    ((CustomDataDescTok & D3D10_SB_CUSTOMDATA_CLASS_MASK) >> D3D10_SB_CUSTOMDATA_CLASS_SHIFT)
519        as D3D10_SB_CUSTOMDATA_CLASS
520}
521#[inline]
522pub fn ENCODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataClass: D3D10_SB_CUSTOMDATA_CLASS) -> DWORD {
523    ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_CUSTOMDATA)
524        | ((CustomDataClass << D3D10_SB_CUSTOMDATA_CLASS_SHIFT) & D3D10_SB_CUSTOMDATA_CLASS_MASK)
525}
526ENUM!{enum D3D10_SB_OPERAND_NUM_COMPONENTS {
527    D3D10_SB_OPERAND_0_COMPONENT = 0,
528    D3D10_SB_OPERAND_1_COMPONENT = 1,
529    D3D10_SB_OPERAND_4_COMPONENT = 2,
530    D3D10_SB_OPERAND_N_COMPONENT = 3,
531}}
532pub const D3D10_SB_OPERAND_NUM_COMPONENTS_MASK: DWORD = 0x00000003;
533#[inline]
534pub fn DECODE_D3D10_SB_OPERAND_NUM_COMPONENTS(OperandToken0: DWORD) -> DWORD {
535    (OperandToken0 & D3D10_SB_OPERAND_NUM_COMPONENTS_MASK) as D3D10_SB_OPERAND_NUM_COMPONENTS
536}
537#[inline]
538pub fn ENCODE_D3D10_SB_OPERAND_NUM_COMPONENTS(NumComp: DWORD) -> DWORD {
539    NumComp & D3D10_SB_OPERAND_NUM_COMPONENTS_MASK
540}
541ENUM!{enum D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE {
542    D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE = 0,
543    D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE = 1,
544    D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE = 2,
545}}
546pub const D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK: DWORD = 0x0000000c;
547pub const D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT: DWORD = 2;
548#[inline]
549pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(
550    OperandToken0: DWORD,
551) -> D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE {
552    ((OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK)
553        >> D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)
554        as D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE
555}
556#[inline]
557pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(
558    SelectionMode: D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE,
559) -> DWORD {
560    (SelectionMode << D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)
561        & D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK
562}
563ENUM!{enum D3D10_SB_4_COMPONENT_NAME {
564    D3D10_SB_4_COMPONENT_X = 0,
565    D3D10_SB_4_COMPONENT_Y = 1,
566    D3D10_SB_4_COMPONENT_Z = 2,
567    D3D10_SB_4_COMPONENT_W = 3,
568    D3D10_SB_4_COMPONENT_R = 0,
569    D3D10_SB_4_COMPONENT_G = 1,
570    D3D10_SB_4_COMPONENT_B = 2,
571    D3D10_SB_4_COMPONENT_A = 3,
572}}
573pub const D3D10_SB_4_COMPONENT_NAME_MASK: DWORD = 3;
574pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK: DWORD = 0x000000f0;
575pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT: DWORD = 4;
576pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_X: DWORD = 0x00000010;
577pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_Y: DWORD = 0x00000020;
578pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_Z: DWORD = 0x00000040;
579pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_W: DWORD = 0x00000080;
580pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_R: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_X;
581pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_G: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_Y;
582pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_B: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_Z;
583pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_A: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_W;
584pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_ALL: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK;
585#[inline]
586pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(OperandToken0: DWORD) -> DWORD {
587    OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
588}
589#[inline]
590pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentMask: DWORD) -> DWORD {
591    ComponentMask & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
592}
593#[inline]
594pub fn D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentName: DWORD) -> DWORD {
595    (1 << (D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT + ComponentName))
596        & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
597}
598pub const D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK: DWORD = 0x00000ff0;
599pub const D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT: DWORD = 4;
600#[inline]
601pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(OperandToken0: DWORD) -> DWORD {
602    OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK
603}
604#[inline]
605pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SOURCE(
606    OperandToken0: DWORD,
607    DestComp: DWORD,
608) -> D3D10_SB_4_COMPONENT_NAME {
609    ((OperandToken0 >> (D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT + 2
610        * (DestComp & D3D10_SB_4_COMPONENT_NAME_MASK)))
611        & D3D10_SB_4_COMPONENT_NAME_MASK) as D3D10_SB_4_COMPONENT_NAME
612}
613#[inline]
614pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
615    XSrc: DWORD,
616    YSrc: DWORD,
617    ZSrc: DWORD,
618    WSrc: DWORD,
619) -> DWORD {
620    ((XSrc & D3D10_SB_4_COMPONENT_NAME_MASK)
621        | ((YSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 2)
622        | ((ZSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 4)
623        | ((WSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 6))
624        << D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT
625}
626#[inline]
627pub fn D3D10_SB_OPERAND_4_COMPONENT_NOSWIZZLE() -> DWORD {
628    ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
629        D3D10_SB_4_COMPONENT_X,
630        D3D10_SB_4_COMPONENT_Y,
631        D3D10_SB_4_COMPONENT_Z,
632        D3D10_SB_4_COMPONENT_W,
633    )
634}
635#[inline]
636pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX() -> DWORD {
637    ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
638        D3D10_SB_4_COMPONENT_X,
639        D3D10_SB_4_COMPONENT_X,
640        D3D10_SB_4_COMPONENT_X,
641        D3D10_SB_4_COMPONENT_X,
642    )
643}
644#[inline]
645pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY() -> DWORD {
646    ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
647        D3D10_SB_4_COMPONENT_Y,
648        D3D10_SB_4_COMPONENT_Y,
649        D3D10_SB_4_COMPONENT_Y,
650        D3D10_SB_4_COMPONENT_Y,
651    )
652}
653#[inline]
654pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ() -> DWORD {
655    ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
656        D3D10_SB_4_COMPONENT_Z,
657        D3D10_SB_4_COMPONENT_Z,
658        D3D10_SB_4_COMPONENT_Z,
659        D3D10_SB_4_COMPONENT_Z,
660    )
661}
662#[inline]
663pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW() -> DWORD {
664    ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
665        D3D10_SB_4_COMPONENT_W,
666        D3D10_SB_4_COMPONENT_W,
667        D3D10_SB_4_COMPONENT_W,
668        D3D10_SB_4_COMPONENT_W,
669    )
670}
671#[inline]
672pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATERED() -> DWORD {
673    D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX()
674}
675#[inline]
676pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEGREEN() -> DWORD {
677    D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY()
678}
679#[inline]
680pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEBLUE() -> DWORD {
681    D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ()
682}
683#[inline]
684pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEALPHA() -> DWORD {
685    D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW()
686}
687pub const D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK: DWORD = 0x00000030;
688pub const D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT: DWORD = 4;
689#[inline]
690pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(
691    OperandToken0: DWORD,
692) -> D3D10_SB_4_COMPONENT_NAME {
693    ((OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK)
694        >> D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT) as D3D10_SB_4_COMPONENT_NAME
695}
696#[inline]
697pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(
698    SelectedComp: D3D10_SB_4_COMPONENT_NAME,
699) -> DWORD {
700    (SelectedComp << D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT)
701        & D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK
702}
703ENUM!{enum D3D10_SB_OPERAND_TYPE {
704    D3D10_SB_OPERAND_TYPE_TEMP = 0,
705    D3D10_SB_OPERAND_TYPE_INPUT = 1,
706    D3D10_SB_OPERAND_TYPE_OUTPUT = 2,
707    D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP = 3,
708    D3D10_SB_OPERAND_TYPE_IMMEDIATE32 = 4,
709    D3D10_SB_OPERAND_TYPE_IMMEDIATE64 = 5,
710    D3D10_SB_OPERAND_TYPE_SAMPLER = 6,
711    D3D10_SB_OPERAND_TYPE_RESOURCE = 7,
712    D3D10_SB_OPERAND_TYPE_CONSTANT_BUFFER= 8,
713    D3D10_SB_OPERAND_TYPE_IMMEDIATE_CONSTANT_BUFFER= 9,
714    D3D10_SB_OPERAND_TYPE_LABEL = 10,
715    D3D10_SB_OPERAND_TYPE_INPUT_PRIMITIVEID = 11,
716    D3D10_SB_OPERAND_TYPE_OUTPUT_DEPTH = 12,
717    D3D10_SB_OPERAND_TYPE_NULL = 13,
718    D3D10_SB_OPERAND_TYPE_RASTERIZER = 14,
719    D3D10_SB_OPERAND_TYPE_OUTPUT_COVERAGE_MASK = 15,
720    D3D11_SB_OPERAND_TYPE_STREAM = 16,
721    D3D11_SB_OPERAND_TYPE_FUNCTION_BODY = 17,
722    D3D11_SB_OPERAND_TYPE_FUNCTION_TABLE = 18,
723    D3D11_SB_OPERAND_TYPE_INTERFACE = 19,
724    D3D11_SB_OPERAND_TYPE_FUNCTION_INPUT = 20,
725    D3D11_SB_OPERAND_TYPE_FUNCTION_OUTPUT = 21,
726    D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT_ID = 22,
727    D3D11_SB_OPERAND_TYPE_INPUT_FORK_INSTANCE_ID = 23,
728    D3D11_SB_OPERAND_TYPE_INPUT_JOIN_INSTANCE_ID = 24,
729    D3D11_SB_OPERAND_TYPE_INPUT_CONTROL_POINT = 25,
730    D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT = 26,
731    D3D11_SB_OPERAND_TYPE_INPUT_PATCH_CONSTANT = 27,
732    D3D11_SB_OPERAND_TYPE_INPUT_DOMAIN_POINT = 28,
733    D3D11_SB_OPERAND_TYPE_THIS_POINTER = 29,
734    D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW = 30,
735    D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY = 31,
736    D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID = 32,
737    D3D11_SB_OPERAND_TYPE_INPUT_THREAD_GROUP_ID = 33,
738    D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP = 34,
739    D3D11_SB_OPERAND_TYPE_INPUT_COVERAGE_MASK = 35,
740    D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36,
741    D3D11_SB_OPERAND_TYPE_INPUT_GS_INSTANCE_ID = 37,
742    D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_GREATER_EQUAL = 38,
743    D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_LESS_EQUAL = 39,
744    D3D11_SB_OPERAND_TYPE_CYCLE_COUNTER = 40,
745}}
746pub const D3D10_SB_OPERAND_TYPE_MASK: DWORD = 0x000ff000;
747pub const D3D10_SB_OPERAND_TYPE_SHIFT: DWORD = 12;
748#[inline]
749pub fn DECODE_D3D10_SB_OPERAND_TYPE(OperandToken0: DWORD) -> D3D10_SB_OPERAND_TYPE {
750    ((OperandToken0 & D3D10_SB_OPERAND_TYPE_MASK) >> D3D10_SB_OPERAND_TYPE_SHIFT)
751        as D3D10_SB_OPERAND_TYPE
752}
753#[inline]
754pub fn ENCODE_D3D10_SB_OPERAND_TYPE(OperandType: D3D10_SB_OPERAND_TYPE) -> DWORD {
755    (OperandType << D3D10_SB_OPERAND_TYPE_SHIFT) & D3D10_SB_OPERAND_TYPE_MASK
756}
757ENUM!{enum D3D10_SB_OPERAND_INDEX_DIMENSION {
758    D3D10_SB_OPERAND_INDEX_0D = 0,
759    D3D10_SB_OPERAND_INDEX_1D = 1,
760    D3D10_SB_OPERAND_INDEX_2D = 2,
761    D3D10_SB_OPERAND_INDEX_3D = 3,
762}}
763pub const D3D10_SB_OPERAND_INDEX_DIMENSION_MASK: DWORD = 0x00300000;
764pub const D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT: DWORD = 20;
765#[inline]
766pub fn DECODE_D3D10_SB_OPERAND_INDEX_DIMENSION(
767    OperandToken0: DWORD,
768) -> D3D10_SB_OPERAND_INDEX_DIMENSION {
769    ((OperandToken0 & D3D10_SB_OPERAND_INDEX_DIMENSION_MASK)
770        >> D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT) as D3D10_SB_OPERAND_INDEX_DIMENSION
771}
772#[inline]
773pub fn ENCODE_D3D10_SB_OPERAND_INDEX_DIMENSION(
774    OperandIndexDim: D3D10_SB_OPERAND_INDEX_DIMENSION,
775) -> DWORD {
776    (OperandIndexDim << D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT)
777        & D3D10_SB_OPERAND_INDEX_DIMENSION_MASK
778}
779ENUM!{enum D3D10_SB_OPERAND_INDEX_REPRESENTATION {
780    D3D10_SB_OPERAND_INDEX_IMMEDIATE32 = 0,
781    D3D10_SB_OPERAND_INDEX_IMMEDIATE64 = 1,
782    D3D10_SB_OPERAND_INDEX_RELATIVE = 2,
783    D3D10_SB_OPERAND_INDEX_IMMEDIATE32_PLUS_RELATIVE = 3,
784    D3D10_SB_OPERAND_INDEX_IMMEDIATE64_PLUS_RELATIVE = 4,
785}}
786#[inline]
787pub fn D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim: DWORD) -> DWORD {
788    22 + 3 * (Dim & 3)
789}
790#[inline]
791pub fn D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim: DWORD) -> DWORD {
792    0x3 << D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim)
793}
794#[inline]
795pub fn DECODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(
796    Dim: DWORD,
797    OperandToken0: DWORD,
798) -> D3D10_SB_OPERAND_INDEX_REPRESENTATION {
799    ((OperandToken0 & D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim))
800        >> D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))
801        as D3D10_SB_OPERAND_INDEX_REPRESENTATION
802}
803#[inline]
804pub fn ENCODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(
805    Dim: DWORD,
806    IndexRepresentation: D3D10_SB_OPERAND_INDEX_REPRESENTATION,
807) -> DWORD {
808    (IndexRepresentation << D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))
809        & D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim)
810}
811pub const D3D10_SB_OPERAND_EXTENDED_MASK: DWORD = 0x80000000;
812pub const D3D10_SB_OPERAND_EXTENDED_SHIFT: DWORD = 31;
813#[inline]
814pub fn DECODE_IS_D3D10_SB_OPERAND_EXTENDED(OperandToken0: DWORD) -> DWORD {
815    (OperandToken0 & D3D10_SB_OPERAND_EXTENDED_MASK) >> D3D10_SB_OPERAND_EXTENDED_SHIFT
816}
817#[inline]
818pub fn ENCODE_D3D10_SB_OPERAND_EXTENDED(bExtended: DWORD) -> DWORD {
819    if bExtended != 0 {
820        D3D10_SB_OPERAND_EXTENDED_MASK
821    } else {
822        0
823    }
824}
825ENUM!{enum D3D10_SB_EXTENDED_OPERAND_TYPE {
826    D3D10_SB_EXTENDED_OPERAND_EMPTY = 0,
827    D3D10_SB_EXTENDED_OPERAND_MODIFIER = 1,
828}}
829pub const D3D10_SB_EXTENDED_OPERAND_TYPE_MASK: DWORD = 0x0000003f;
830#[inline]
831pub fn DECODE_D3D10_SB_EXTENDED_OPERAND_TYPE(
832    OperandToken1: DWORD,
833) -> D3D10_SB_EXTENDED_OPERAND_TYPE {
834    (OperandToken1 & D3D10_SB_EXTENDED_OPERAND_TYPE_MASK) as D3D10_SB_EXTENDED_OPERAND_TYPE
835}
836#[inline]
837pub fn ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(
838    ExtOperandType: D3D10_SB_EXTENDED_OPERAND_TYPE,
839) -> DWORD {
840    ExtOperandType & D3D10_SB_EXTENDED_OPERAND_TYPE_MASK
841}
842ENUM!{enum D3D10_SB_OPERAND_MODIFIER {
843    D3D10_SB_OPERAND_MODIFIER_NONE = 0,
844    D3D10_SB_OPERAND_MODIFIER_NEG = 1,
845    D3D10_SB_OPERAND_MODIFIER_ABS = 2,
846    D3D10_SB_OPERAND_MODIFIER_ABSNEG = 3,
847}}
848pub const D3D10_SB_OPERAND_MODIFIER_MASK: DWORD = 0x00003fc0;
849pub const D3D10_SB_OPERAND_MODIFIER_SHIFT: DWORD = 6;
850#[inline]
851pub fn DECODE_D3D10_SB_OPERAND_MODIFIER(OperandToken1: DWORD) -> D3D10_SB_OPERAND_MODIFIER {
852    ((OperandToken1 & D3D10_SB_OPERAND_MODIFIER_MASK) >> D3D10_SB_OPERAND_MODIFIER_SHIFT)
853        as D3D10_SB_OPERAND_MODIFIER
854}
855#[inline]
856pub fn ENCODE_D3D10_SB_EXTENDED_OPERAND_MODIFIER(SourceMod: D3D10_SB_OPERAND_MODIFIER) -> DWORD {
857    ((SourceMod << D3D10_SB_OPERAND_MODIFIER_SHIFT) & D3D10_SB_OPERAND_MODIFIER_MASK)
858        | ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(D3D10_SB_EXTENDED_OPERAND_MODIFIER)
859        | ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(0)
860}
861ENUM!{enum D3D11_SB_OPERAND_MIN_PRECISION {
862    D3D11_SB_OPERAND_MIN_PRECISION_DEFAULT = 0,
863    D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_16 = 1,
864    D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_2_8 = 2,
865    D3D11_SB_OPERAND_MIN_PRECISION_SINT_16 = 4,
866    D3D11_SB_OPERAND_MIN_PRECISION_UINT_16 = 5,
867}}
868pub const D3D11_SB_OPERAND_MIN_PRECISION_MASK: DWORD = 0x0001C000;
869pub const D3D11_SB_OPERAND_MIN_PRECISION_SHIFT: DWORD = 14;
870#[inline]
871pub fn DECODE_D3D11_SB_OPERAND_MIN_PRECISION(
872    OperandToken1: DWORD,
873) -> D3D11_SB_OPERAND_MIN_PRECISION {
874    ((OperandToken1 & D3D11_SB_OPERAND_MIN_PRECISION_MASK) >> D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)
875        as D3D11_SB_OPERAND_MIN_PRECISION
876}
877#[inline]
878pub fn ENCODE_D3D11_SB_OPERAND_MIN_PRECISION(
879    MinPrecision: D3D11_SB_OPERAND_MIN_PRECISION,
880) -> DWORD {
881    (MinPrecision << D3D11_SB_OPERAND_MIN_PRECISION_SHIFT) & D3D11_SB_OPERAND_MIN_PRECISION_MASK
882}
883pub const D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK: DWORD = 0x80000000;
884pub const D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT: DWORD = 31;
885#[inline]
886pub fn DECODE_IS_D3D10_SB_OPERAND_DOUBLE_EXTENDED(OperandToken1: DWORD) -> DWORD {
887    (OperandToken1 & D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK)
888        >> D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT
889}
890#[inline]
891pub fn ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(bExtended: DWORD) -> DWORD {
892    if bExtended != 0 {
893        D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK
894    } else {
895        0
896    }
897}
898pub const D3D10_SB_NAME_MASK: DWORD = 0x0000ffff;
899#[inline]
900pub fn DECODE_D3D10_SB_NAME(NameToken: DWORD) -> D3D10_SB_NAME {
901    (NameToken & D3D10_SB_NAME_MASK) as D3D10_SB_NAME
902}
903#[inline]
904pub fn ENCODE_D3D10_SB_NAME(Name: D3D10_SB_NAME) -> DWORD {
905    Name & D3D10_SB_NAME_MASK
906}
907pub const D3D10_SB_GLOBAL_FLAG_REFACTORING_ALLOWED: DWORD = 1 << 11;
908pub const D3D11_SB_GLOBAL_FLAG_ENABLE_DOUBLE_PRECISION_FLOAT_OPS: DWORD = 1 << 12;
909pub const D3D11_SB_GLOBAL_FLAG_FORCE_EARLY_DEPTH_STENCIL: DWORD = 1 << 13;
910pub const D3D11_SB_GLOBAL_FLAG_ENABLE_RAW_AND_STRUCTURED_BUFFERS: DWORD = 1 << 14;
911pub const D3D11_1_SB_GLOBAL_FLAG_SKIP_OPTIMIZATION: DWORD = 1 << 15;
912pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_MINIMUM_PRECISION: DWORD = 1 << 16;
913pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_DOUBLE_EXTENSIONS: DWORD = 1 << 17;
914pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_SHADER_EXTENSIONS: DWORD = 1 << 18;
915pub const D3D10_SB_GLOBAL_FLAGS_MASK: DWORD = 0x00fff800;
916#[inline]
917pub fn DECODE_D3D10_SB_GLOBAL_FLAGS(OpcodeToken0: DWORD) -> DWORD {
918    OpcodeToken0 & D3D10_SB_GLOBAL_FLAGS_MASK
919}
920#[inline]
921pub fn ENCODE_D3D10_SB_GLOBAL_FLAGS(Flags: DWORD) -> DWORD {
922    Flags & D3D10_SB_GLOBAL_FLAGS_MASK
923}
924pub const D3D10_SB_RESOURCE_DIMENSION_MASK: DWORD = 0x0000F800;
925pub const D3D10_SB_RESOURCE_DIMENSION_SHIFT: DWORD = 11;
926#[inline]
927pub fn DECODE_D3D10_SB_RESOURCE_DIMENSION(OpcodeToken0: DWORD) -> D3D10_SB_RESOURCE_DIMENSION {
928    ((OpcodeToken0 & D3D10_SB_RESOURCE_DIMENSION_MASK) >> D3D10_SB_RESOURCE_DIMENSION_SHIFT)
929        as D3D10_SB_RESOURCE_DIMENSION
930}
931#[inline]
932pub fn ENCODE_D3D10_SB_RESOURCE_DIMENSION(ResourceDim: D3D10_SB_RESOURCE_DIMENSION) -> DWORD {
933    (ResourceDim << D3D10_SB_RESOURCE_DIMENSION_SHIFT) & D3D10_SB_RESOURCE_DIMENSION_MASK
934}
935pub const D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK: DWORD = 0x07F0000;
936pub const D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT: DWORD = 16;
937#[inline]
938pub fn DECODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(OpcodeToken0: DWORD) -> UINT {
939    ((OpcodeToken0 & D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK) >> D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)
940        as UINT
941}
942#[inline]
943pub fn ENCODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(SampleCount: DWORD) -> DWORD {
944    (if SampleCount > 127 { 127 } else { SampleCount } << D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)
945        & D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK
946}
947#[inline]
948pub fn DECODE_D3D10_SB_RESOURCE_RETURN_TYPE(
949    ResourceReturnTypeToken: D3D10_SB_RESOURCE_RETURN_TYPE,
950    Component: DWORD,
951) -> D3D10_SB_RESOURCE_RETURN_TYPE {
952    ((ResourceReturnTypeToken >> (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS))
953        & D3D10_SB_RESOURCE_RETURN_TYPE_MASK) as D3D10_SB_RESOURCE_RETURN_TYPE
954}
955#[inline]
956pub fn ENCODE_D3D10_SB_RESOURCE_RETURN_TYPE(
957    ReturnType: DWORD,
958    Component: DWORD,
959) -> D3D10_SB_RESOURCE_RETURN_TYPE {
960    (ReturnType & D3D10_SB_RESOURCE_RETURN_TYPE_MASK)
961        << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS)
962}
963ENUM!{enum D3D10_SB_SAMPLER_MODE {
964    D3D10_SB_SAMPLER_MODE_DEFAULT = 0,
965    D3D10_SB_SAMPLER_MODE_COMPARISON = 1,
966    D3D10_SB_SAMPLER_MODE_MONO = 2,
967}}
968pub const D3D10_SB_SAMPLER_MODE_MASK: DWORD = 0x00007800;
969pub const D3D10_SB_SAMPLER_MODE_SHIFT: DWORD = 11;
970#[inline]
971pub fn DECODE_D3D10_SB_SAMPLER_MODE(OpcodeToken0: DWORD) -> D3D10_SB_SAMPLER_MODE {
972    ((OpcodeToken0 & D3D10_SB_SAMPLER_MODE_MASK) >> D3D10_SB_SAMPLER_MODE_SHIFT)
973        as D3D10_SB_SAMPLER_MODE
974}
975#[inline]
976pub fn ENCODE_D3D10_SB_SAMPLER_MODE(SamplerMode: D3D10_SB_SAMPLER_MODE) -> DWORD {
977    (SamplerMode << D3D10_SB_SAMPLER_MODE_SHIFT) & D3D10_SB_SAMPLER_MODE_MASK
978}
979pub const D3D10_SB_INPUT_INTERPOLATION_MODE_MASK: DWORD = 0x00007800;
980pub const D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT: DWORD = 11;
981#[inline]
982pub fn DECODE_D3D10_SB_INPUT_INTERPOLATION_MODE(
983    OpcodeToken0: DWORD,
984) -> D3D10_SB_INTERPOLATION_MODE {
985    ((OpcodeToken0 & D3D10_SB_INPUT_INTERPOLATION_MODE_MASK)
986        >> D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT) as D3D10_SB_INTERPOLATION_MODE
987}
988#[inline]
989pub fn ENCODE_D3D10_SB_INPUT_INTERPOLATION_MODE(
990    InterpolationMode: D3D10_SB_INTERPOLATION_MODE,
991) -> DWORD {
992    (InterpolationMode << D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT)
993        & D3D10_SB_INPUT_INTERPOLATION_MODE_MASK
994}
995ENUM!{enum D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN {
996    D3D10_SB_CONSTANT_BUFFER_IMMEDIATE_INDEXED = 0,
997    D3D10_SB_CONSTANT_BUFFER_DYNAMIC_INDEXED = 1,
998}}
999pub const D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK: DWORD = 0x00000800;
1000pub const D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT: DWORD = 11;
1001#[inline]
1002pub fn DECODE_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(
1003    OpcodeToken0: DWORD,
1004) -> D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN {
1005    ((OpcodeToken0 & D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK)
1006        >> D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)
1007        as D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN
1008}
1009#[inline]
1010pub fn ENCODE_D3D10_SB_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(
1011    AccessPattern: D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN,
1012) -> DWORD {
1013    (AccessPattern << D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)
1014        & D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK
1015}
1016ENUM!{enum D3D11_SB_SHADER_MESSAGE_ID {
1017    D3D11_SB_SHADER_MESSAGE_ID_MESSAGE = 0x00200102,
1018    D3D11_SB_SHADER_MESSAGE_ID_ERROR = 0x00200103,
1019}}
1020ENUM!{enum D3D11_SB_SHADER_MESSAGE_FORMAT {
1021    D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_TEXT = 0,
1022    D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_PRINTF = 1,
1023}}
1024pub const D3D10_SB_GS_INPUT_PRIMITIVE_MASK: DWORD = 0x0001f800;
1025pub const D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT: DWORD = 11;
1026#[inline]
1027pub fn DECODE_D3D10_SB_GS_INPUT_PRIMITIVE(OpcodeToken0: DWORD) -> D3D10_SB_PRIMITIVE {
1028    ((OpcodeToken0 & D3D10_SB_GS_INPUT_PRIMITIVE_MASK) >> D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT)
1029        as D3D10_SB_PRIMITIVE
1030}
1031#[inline]
1032pub fn ENCODE_D3D10_SB_GS_INPUT_PRIMITIVE(Prim: D3D10_SB_PRIMITIVE) -> DWORD {
1033    (Prim << D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT) & D3D10_SB_GS_INPUT_PRIMITIVE_MASK
1034}
1035pub const D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK: DWORD = 0x0001f800;
1036pub const D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT: DWORD = 11;
1037#[inline]
1038pub fn DECODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(
1039    OpcodeToken0: DWORD,
1040) -> D3D10_SB_PRIMITIVE_TOPOLOGY {
1041    ((OpcodeToken0 & D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK)
1042        >> D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT) as D3D10_SB_PRIMITIVE_TOPOLOGY
1043}
1044#[inline]
1045pub fn ENCODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(
1046    PrimTopology: D3D10_SB_PRIMITIVE_TOPOLOGY,
1047) -> DWORD {
1048    (PrimTopology << D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT)
1049        & D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK
1050}
1051pub const D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK: DWORD = 0x0001f800;
1052pub const D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT: DWORD = 11;
1053#[inline]
1054pub fn DECODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT {
1055    ((OpcodeToken0 & D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK)
1056        >> D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT) as UINT
1057}
1058#[inline]
1059pub fn ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD {
1060    (Count << D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT) & D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK
1061}
1062pub const D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK: DWORD = 0x0001f800;
1063pub const D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT: DWORD = 11;
1064#[inline]
1065pub fn DECODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT {
1066    ((OpcodeToken0 & D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK)
1067        >> D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT) as UINT
1068}
1069#[inline]
1070pub fn ENCODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD {
1071    (Count << D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT) & D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK
1072}
1073ENUM!{enum D3D11_SB_TESSELLATOR_DOMAIN {
1074    D3D11_SB_TESSELLATOR_DOMAIN_UNDEFINED = 0,
1075    D3D11_SB_TESSELLATOR_DOMAIN_ISOLINE = 1,
1076    D3D11_SB_TESSELLATOR_DOMAIN_TRI = 2,
1077    D3D11_SB_TESSELLATOR_DOMAIN_QUAD = 3,
1078}}
1079pub const D3D11_SB_TESS_DOMAIN_MASK: DWORD = 0x00001800;
1080pub const D3D11_SB_TESS_DOMAIN_SHIFT: DWORD = 11;
1081#[inline]
1082pub fn DECODE_D3D11_SB_TESS_DOMAIN(OpcodeToken0: DWORD) -> D3D11_SB_TESSELLATOR_DOMAIN {
1083    ((OpcodeToken0 & D3D11_SB_TESS_DOMAIN_MASK) >> D3D11_SB_TESS_DOMAIN_SHIFT)
1084        as D3D11_SB_TESSELLATOR_DOMAIN
1085}
1086#[inline]
1087pub fn ENCODE_D3D11_SB_TESS_DOMAIN(Domain: D3D11_SB_TESSELLATOR_DOMAIN) -> DWORD {
1088    (Domain << D3D11_SB_TESS_DOMAIN_SHIFT) & D3D11_SB_TESS_DOMAIN_MASK
1089}
1090ENUM!{enum D3D11_SB_TESSELLATOR_PARTITIONING {
1091    D3D11_SB_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
1092    D3D11_SB_TESSELLATOR_PARTITIONING_INTEGER = 1,
1093    D3D11_SB_TESSELLATOR_PARTITIONING_POW2 = 2,
1094    D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
1095    D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
1096}}
1097pub const D3D11_SB_TESS_PARTITIONING_MASK: DWORD = 0x00003800;
1098pub const D3D11_SB_TESS_PARTITIONING_SHIFT: DWORD = 11;
1099#[inline]
1100pub fn DECODE_D3D11_SB_TESS_PARTITIONING(
1101    OpcodeToken0: DWORD,
1102) -> D3D11_SB_TESSELLATOR_PARTITIONING {
1103    ((OpcodeToken0 & D3D11_SB_TESS_PARTITIONING_MASK) >> D3D11_SB_TESS_PARTITIONING_SHIFT)
1104        as D3D11_SB_TESSELLATOR_PARTITIONING
1105}
1106#[inline]
1107pub fn ENCODE_D3D11_SB_TESS_PARTITIONING(
1108    Partitioning: D3D11_SB_TESSELLATOR_PARTITIONING,
1109) -> DWORD {
1110    (Partitioning << D3D11_SB_TESS_PARTITIONING_SHIFT) & D3D11_SB_TESS_PARTITIONING_MASK
1111}
1112ENUM!{enum D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE {
1113    D3D11_SB_TESSELLATOR_OUTPUT_UNDEFINED = 0,
1114    D3D11_SB_TESSELLATOR_OUTPUT_POINT = 1,
1115    D3D11_SB_TESSELLATOR_OUTPUT_LINE = 2,
1116    D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
1117    D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
1118}}
1119pub const D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK: DWORD = 0x00003800;
1120pub const D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT: DWORD = 11;
1121#[inline]
1122pub fn DECODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(
1123    OpcodeToken0: DWORD,
1124) -> D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE {
1125    ((OpcodeToken0 & D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK) >> D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT)
1126        as D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE
1127}
1128#[inline]
1129pub fn ENCODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(
1130    OutputPrimitive: D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE,
1131) -> DWORD {
1132    (OutputPrimitive << D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT) & D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK
1133}
1134ENUM!{enum D3D10_SB_INTERPOLATION_MODE {
1135    D3D10_SB_INTERPOLATION_UNDEFINED = 0,
1136    D3D10_SB_INTERPOLATION_CONSTANT = 1,
1137    D3D10_SB_INTERPOLATION_LINEAR = 2,
1138    D3D10_SB_INTERPOLATION_LINEAR_CENTROID = 3,
1139    D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
1140    D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
1141    D3D10_SB_INTERPOLATION_LINEAR_SAMPLE = 6,
1142    D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
1143}}
1144ENUM!{enum D3D10_SB_PRIMITIVE_TOPOLOGY {
1145    D3D10_SB_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
1146    D3D10_SB_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
1147    D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST = 2,
1148    D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
1149    D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
1150    D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
1151    D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
1152    D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
1153    D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
1154    D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
1155}}
1156ENUM!{enum D3D10_SB_PRIMITIVE {
1157    D3D10_SB_PRIMITIVE_UNDEFINED = 0,
1158    D3D10_SB_PRIMITIVE_POINT = 1,
1159    D3D10_SB_PRIMITIVE_LINE = 2,
1160    D3D10_SB_PRIMITIVE_TRIANGLE = 3,
1161    D3D10_SB_PRIMITIVE_LINE_ADJ = 6,
1162    D3D10_SB_PRIMITIVE_TRIANGLE_ADJ = 7,
1163    D3D11_SB_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
1164    D3D11_SB_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
1165    D3D11_SB_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
1166    D3D11_SB_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
1167    D3D11_SB_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
1168    D3D11_SB_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
1169    D3D11_SB_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
1170    D3D11_SB_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
1171    D3D11_SB_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
1172    D3D11_SB_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
1173    D3D11_SB_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
1174    D3D11_SB_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
1175    D3D11_SB_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
1176    D3D11_SB_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
1177    D3D11_SB_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
1178    D3D11_SB_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
1179    D3D11_SB_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
1180    D3D11_SB_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
1181    D3D11_SB_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
1182    D3D11_SB_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
1183    D3D11_SB_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
1184    D3D11_SB_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
1185    D3D11_SB_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
1186    D3D11_SB_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
1187    D3D11_SB_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
1188    D3D11_SB_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
1189    D3D11_SB_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
1190    D3D11_SB_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
1191    D3D11_SB_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
1192    D3D11_SB_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
1193    D3D11_SB_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
1194    D3D11_SB_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
1195}}
1196ENUM!{enum D3D10_SB_COMPONENT_MASK {
1197    D3D10_SB_COMPONENT_MASK_X = 1,
1198    D3D10_SB_COMPONENT_MASK_Y = 2,
1199    D3D10_SB_COMPONENT_MASK_Z = 4,
1200    D3D10_SB_COMPONENT_MASK_W = 8,
1201    D3D10_SB_COMPONENT_MASK_R = 1,
1202    D3D10_SB_COMPONENT_MASK_G = 2,
1203    D3D10_SB_COMPONENT_MASK_B = 4,
1204    D3D10_SB_COMPONENT_MASK_A = 8,
1205    D3D10_SB_COMPONENT_MASK_ALL = 15,
1206}}
1207ENUM!{enum D3D10_SB_NAME {
1208    D3D10_SB_NAME_UNDEFINED = 0,
1209    D3D10_SB_NAME_POSITION = 1,
1210    D3D10_SB_NAME_CLIP_DISTANCE = 2,
1211    D3D10_SB_NAME_CULL_DISTANCE = 3,
1212    D3D10_SB_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
1213    D3D10_SB_NAME_VIEWPORT_ARRAY_INDEX = 5,
1214    D3D10_SB_NAME_VERTEX_ID = 6,
1215    D3D10_SB_NAME_PRIMITIVE_ID = 7,
1216    D3D10_SB_NAME_INSTANCE_ID = 8,
1217    D3D10_SB_NAME_IS_FRONT_FACE = 9,
1218    D3D10_SB_NAME_SAMPLE_INDEX = 10,
1219    D3D11_SB_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR = 11,
1220    D3D11_SB_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR = 12,
1221    D3D11_SB_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR = 13,
1222    D3D11_SB_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR = 14,
1223    D3D11_SB_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR = 15,
1224    D3D11_SB_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR = 16,
1225    D3D11_SB_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR = 17,
1226    D3D11_SB_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR = 18,
1227    D3D11_SB_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR = 19,
1228    D3D11_SB_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 20,
1229    D3D11_SB_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 21,
1230    D3D11_SB_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 22,
1231}}
1232ENUM!{enum D3D10_SB_RESOURCE_DIMENSION {
1233    D3D10_SB_RESOURCE_DIMENSION_UNKNOWN = 0,
1234    D3D10_SB_RESOURCE_DIMENSION_BUFFER = 1,
1235    D3D10_SB_RESOURCE_DIMENSION_TEXTURE1D = 2,
1236    D3D10_SB_RESOURCE_DIMENSION_TEXTURE2D = 3,
1237    D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMS = 4,
1238    D3D10_SB_RESOURCE_DIMENSION_TEXTURE3D = 5,
1239    D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBE = 6,
1240    D3D10_SB_RESOURCE_DIMENSION_TEXTURE1DARRAY = 7,
1241    D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DARRAY = 8,
1242    D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMSARRAY = 9,
1243    D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBEARRAY = 10,
1244    D3D11_SB_RESOURCE_DIMENSION_RAW_BUFFER = 11,
1245    D3D11_SB_RESOURCE_DIMENSION_STRUCTURED_BUFFER = 12,
1246}}
1247ENUM!{enum D3D10_SB_RESOURCE_RETURN_TYPE {
1248    D3D10_SB_RETURN_TYPE_UNORM = 1,
1249    D3D10_SB_RETURN_TYPE_SNORM = 2,
1250    D3D10_SB_RETURN_TYPE_SINT = 3,
1251    D3D10_SB_RETURN_TYPE_UINT = 4,
1252    D3D10_SB_RETURN_TYPE_FLOAT = 5,
1253    D3D10_SB_RETURN_TYPE_MIXED = 6,
1254    D3D11_SB_RETURN_TYPE_DOUBLE = 7,
1255    D3D11_SB_RETURN_TYPE_CONTINUED = 8,
1256    D3D11_SB_RETURN_TYPE_UNUSED = 9,
1257}}
1258ENUM!{enum D3D10_SB_REGISTER_COMPONENT_TYPE {
1259    D3D10_SB_REGISTER_COMPONENT_UNKNOWN = 0,
1260    D3D10_SB_REGISTER_COMPONENT_UINT32 = 1,
1261    D3D10_SB_REGISTER_COMPONENT_SINT32 = 2,
1262    D3D10_SB_REGISTER_COMPONENT_FLOAT32 = 3,
1263}}
1264ENUM!{enum D3D10_SB_INSTRUCTION_RETURN_TYPE {
1265    D3D10_SB_INSTRUCTION_RETURN_FLOAT = 0,
1266    D3D10_SB_INSTRUCTION_RETURN_UINT = 1,
1267}}
1268pub const D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK: DWORD = 0x00001800;
1269pub const D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT: DWORD = 11;
1270#[inline]
1271pub fn DECODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(
1272    OpcodeToken0: DWORD,
1273) -> D3D10_SB_INSTRUCTION_RETURN_TYPE {
1274    ((OpcodeToken0 & D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK)
1275        >> D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT) as D3D10_SB_INSTRUCTION_RETURN_TYPE
1276}
1277#[inline]
1278pub fn ENCODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(
1279    ReturnType: D3D10_SB_INSTRUCTION_RETURN_TYPE,
1280) -> DWORD {
1281    (ReturnType << D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT) & D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK
1282}
1283pub const D3D11_SB_INTERFACE_INDEXED_BIT_MASK: DWORD = 0x00000800;
1284pub const D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT: DWORD = 11;
1285pub const D3D11_SB_INTERFACE_TABLE_LENGTH_MASK: DWORD = 0x0000ffff;
1286pub const D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT: DWORD = 0;
1287pub const D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK: DWORD = 0xffff0000;
1288pub const D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT: DWORD = 16;
1289#[inline]
1290pub fn DECODE_D3D11_SB_INTERFACE_INDEXED_BIT(OpcodeToken0: DWORD) -> DWORD {
1291    if (OpcodeToken0 & D3D11_SB_INTERFACE_INDEXED_BIT_MASK) >> D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT
1292        != 0 { 1 } else { 0 }
1293}
1294#[inline]
1295pub fn ENCODE_D3D11_SB_INTERFACE_INDEXED_BIT(IndexedBit: DWORD) -> DWORD {
1296    (IndexedBit << D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT) & D3D11_SB_INTERFACE_INDEXED_BIT_MASK
1297}
1298#[inline]
1299pub fn DECODE_D3D11_SB_INTERFACE_TABLE_LENGTH(OpcodeToken0: DWORD) -> UINT {
1300    ((OpcodeToken0 & D3D11_SB_INTERFACE_TABLE_LENGTH_MASK)
1301        >> D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT) as UINT
1302}
1303#[inline]
1304pub fn ENCODE_D3D11_SB_INTERFACE_TABLE_LENGTH(TableLength: DWORD) -> DWORD {
1305    (TableLength << D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT) & D3D11_SB_INTERFACE_TABLE_LENGTH_MASK
1306}
1307#[inline]
1308pub fn DECODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(OpcodeToken0: DWORD) -> UINT {
1309    ((OpcodeToken0 & D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK)
1310        >> D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT) as UINT
1311}
1312#[inline]
1313pub fn ENCODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(ArrayLength: DWORD) -> DWORD {
1314    (ArrayLength << D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT) & D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK
1315}
1316pub const D3D11_SB_GLOBALLY_COHERENT_ACCESS: DWORD = 0x00010000;
1317pub const D3D11_SB_ACCESS_COHERENCY_MASK: DWORD = 0x00010000;
1318#[inline]
1319pub fn DECODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(OperandToken0: DWORD) -> DWORD {
1320    OperandToken0 & D3D11_SB_ACCESS_COHERENCY_MASK
1321}
1322#[inline]
1323pub fn ENCODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(Flags: DWORD) -> DWORD {
1324    Flags & D3D11_SB_ACCESS_COHERENCY_MASK
1325}
1326pub const D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER: DWORD = 0x00800000;
1327pub const D3D11_SB_UAV_FLAGS_MASK: DWORD = 0x00800000;
1328#[inline]
1329pub fn DECODE_D3D11_SB_UAV_FLAGS(OperandToken0: DWORD) -> DWORD {
1330    OperandToken0 & D3D11_SB_UAV_FLAGS_MASK
1331}
1332#[inline]
1333pub fn ENCODE_D3D11_SB_UAV_FLAGS(Flags: DWORD) -> DWORD {
1334    Flags & D3D11_SB_UAV_FLAGS_MASK
1335}