1 
2 #ifndef __NV50_IR_FROM_SM4_H__
3 #define __NV50_IR_FROM_SM4_H__
4 
5 typedef 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 
50 typedef 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 
75 typedef 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 
86 typedef 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 
97 typedef 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 
110 typedef 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 
123 typedef 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 
170 typedef 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