1
2#ifndef __NV50_IR_FROM_SM4_H__
3#define __NV50_IR_FROM_SM4_H__
4
5typedef enum D3D_PRIMITIVE_TOPOLOGY {
6    D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
7    D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
8    D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
9    D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
10    D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
11    D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
12    D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
13    D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
14    D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
15    D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
16    D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
17    D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
18    D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
19    D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
20    D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
21    D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
22    D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
23    D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
24    D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
25    D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
26    D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
27    D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
28    D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
29    D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
30    D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
31    D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
32    D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
33    D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
34    D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
35    D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
36    D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
37    D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
38    D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
39    D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
40    D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
41    D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
42    D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
43    D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
44    D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
45    D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
46    D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
47    D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
48} D3D_PRIMITIVE_TOPOLOGY;
49
50typedef enum D3D_RESOURCE_RETURN_TYPE {
51    D3D_RETURN_TYPE_UNORM = 1,
52    D3D_RETURN_TYPE_SNORM = 2,
53    D3D_RETURN_TYPE_SINT = 3,
54    D3D_RETURN_TYPE_UINT = 4,
55    D3D_RETURN_TYPE_FLOAT = 5,
56    D3D_RETURN_TYPE_MIXED = 6,
57    D3D_RETURN_TYPE_DOUBLE = 7,
58    D3D_RETURN_TYPE_CONTINUED = 8,
59    D3D10_RETURN_TYPE_UNORM = 1,
60    D3D10_RETURN_TYPE_SNORM = 2,
61    D3D10_RETURN_TYPE_SINT = 3,
62    D3D10_RETURN_TYPE_UINT = 4,
63    D3D10_RETURN_TYPE_FLOAT = 5,
64    D3D10_RETURN_TYPE_MIXED = 6,
65    D3D11_RETURN_TYPE_UNORM = 1,
66    D3D11_RETURN_TYPE_SNORM = 2,
67    D3D11_RETURN_TYPE_SINT = 3,
68    D3D11_RETURN_TYPE_UINT = 4,
69    D3D11_RETURN_TYPE_FLOAT = 5,
70    D3D11_RETURN_TYPE_MIXED = 6,
71    D3D11_RETURN_TYPE_DOUBLE = 7,
72    D3D11_RETURN_TYPE_CONTINUED = 8
73} D3D_RESOURCE_RETURN_TYPE;
74
75typedef enum D3D_REGISTER_COMPONENT_TYPE {
76    D3D_REGISTER_COMPONENT_UNKNOWN = 0,
77    D3D_REGISTER_COMPONENT_UINT32 = 1,
78    D3D_REGISTER_COMPONENT_SINT32 = 2,
79    D3D_REGISTER_COMPONENT_FLOAT32 = 3,
80    D3D10_REGISTER_COMPONENT_UNKNOWN = 0,
81    D3D10_REGISTER_COMPONENT_UINT32 = 1,
82    D3D10_REGISTER_COMPONENT_SINT32 = 2,
83    D3D10_REGISTER_COMPONENT_FLOAT32 = 3
84} D3D_REGISTER_COMPONENT_TYPE;
85
86typedef enum D3D_TESSELLATOR_DOMAIN {
87    D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
88    D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
89    D3D_TESSELLATOR_DOMAIN_TRI = 2,
90    D3D_TESSELLATOR_DOMAIN_QUAD = 3,
91    D3D11_TESSELLATOR_DOMAIN_UNDEFINED = 0,
92    D3D11_TESSELLATOR_DOMAIN_ISOLINE = 1,
93    D3D11_TESSELLATOR_DOMAIN_TRI = 2,
94    D3D11_TESSELLATOR_DOMAIN_QUAD = 3
95} D3D_TESSELLATOR_DOMAIN;
96
97typedef enum D3D_TESSELLATOR_PARTITIONING {
98    D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
99    D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
100    D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
101    D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
102    D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
103    D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
104    D3D11_TESSELLATOR_PARTITIONING_INTEGER = 1,
105    D3D11_TESSELLATOR_PARTITIONING_POW2 = 2,
106    D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
107    D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4
108} D3D_TESSELLATOR_PARTITIONING;
109
110typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE {
111    D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
112    D3D_TESSELLATOR_OUTPUT_POINT = 1,
113    D3D_TESSELLATOR_OUTPUT_LINE = 2,
114    D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
115    D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
116    D3D11_TESSELLATOR_OUTPUT_UNDEFINED = 0,
117    D3D11_TESSELLATOR_OUTPUT_POINT = 1,
118    D3D11_TESSELLATOR_OUTPUT_LINE = 2,
119    D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
120    D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4
121} D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
122
123typedef enum D3D_NAME {
124    D3D_NAME_UNDEFINED = 0,
125    D3D_NAME_POSITION = 1,
126    D3D_NAME_CLIP_DISTANCE = 2,
127    D3D_NAME_CULL_DISTANCE = 3,
128    D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
129    D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
130    D3D_NAME_VERTEX_ID = 6,
131    D3D_NAME_PRIMITIVE_ID = 7,
132    D3D_NAME_INSTANCE_ID = 8,
133    D3D_NAME_IS_FRONT_FACE = 9,
134    D3D_NAME_SAMPLE_INDEX = 10,
135    D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
136    D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
137    D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
138    D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
139    D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
140    D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
141    D3D_NAME_TARGET = 64,
142    D3D_NAME_DEPTH = 65,
143    D3D_NAME_COVERAGE = 66,
144    D3D_NAME_DEPTH_GREATER_EQUAL = 67,
145    D3D_NAME_DEPTH_LESS_EQUAL = 68,
146    D3D10_NAME_UNDEFINED = 0,
147    D3D10_NAME_POSITION = 1,
148    D3D10_NAME_CLIP_DISTANCE = 2,
149    D3D10_NAME_CULL_DISTANCE = 3,
150    D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
151    D3D10_NAME_VIEWPORT_ARRAY_INDEX = 5,
152    D3D10_NAME_VERTEX_ID = 6,
153    D3D10_NAME_PRIMITIVE_ID = 7,
154    D3D10_NAME_INSTANCE_ID = 8,
155    D3D10_NAME_IS_FRONT_FACE = 9,
156    D3D10_NAME_SAMPLE_INDEX = 10,
157    D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
158    D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
159    D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
160    D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
161    D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
162    D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
163    D3D10_NAME_TARGET = 64,
164    D3D10_NAME_DEPTH = 65,
165    D3D10_NAME_COVERAGE = 66,
166    D3D11_NAME_DEPTH_GREATER_EQUAL = 67,
167    D3D11_NAME_DEPTH_LESS_EQUAL = 68
168} D3D_NAME;
169
170typedef struct _D3D11_SIGNATURE_PARAMETER_DESC {
171    const char* SemanticName;
172    unsigned int SemanticIndex;
173    unsigned int Register;
174    D3D_NAME SystemValueType;
175    D3D_REGISTER_COMPONENT_TYPE ComponentType;
176    unsigned char Mask;
177    unsigned char ReadWriteMask;
178    unsigned int Stream;
179} D3D11_SIGNATURE_PARAMETER_DESC;
180
181#include "../../../state_trackers/d3d1x/d3d1xshader/include/sm4.h"
182
183#endif // __NV50_IR_FROM_SM4_H__
184