1 /**************************************************************************
3 * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 **************************************************************************/
35 #if defined __cplusplus
44 tgsi_build_version( void );
51 tgsi_build_header( void );
54 tgsi_default_processor( void );
59 struct tgsi_header
*header
);
65 struct tgsi_declaration
66 tgsi_default_declaration( void );
68 struct tgsi_declaration
69 tgsi_build_declaration(
76 struct tgsi_header
*header
);
78 struct tgsi_full_declaration
79 tgsi_default_full_declaration( void );
82 tgsi_build_full_declaration(
83 const struct tgsi_full_declaration
*full_decl
,
84 struct tgsi_token
*tokens
,
85 struct tgsi_header
*header
,
88 struct tgsi_declaration_range
89 tgsi_default_declaration_range( void );
91 struct tgsi_declaration_range
92 tgsi_build_declaration_range(
95 struct tgsi_declaration
*declaration
,
96 struct tgsi_header
*header
);
98 struct tgsi_declaration_semantic
99 tgsi_default_declaration_semantic( void );
101 struct tgsi_declaration_semantic
102 tgsi_build_declaration_semantic(
103 unsigned semantic_name
,
104 unsigned semantic_index
,
105 struct tgsi_declaration
*declaration
,
106 struct tgsi_header
*header
);
112 struct tgsi_immediate
113 tgsi_default_immediate( void );
115 struct tgsi_immediate
116 tgsi_build_immediate(
117 struct tgsi_header
*header
);
119 struct tgsi_full_immediate
120 tgsi_default_full_immediate( void );
122 union tgsi_immediate_data
123 tgsi_build_immediate_float32(
125 struct tgsi_immediate
*immediate
,
126 struct tgsi_header
*header
);
129 tgsi_build_full_immediate(
130 const struct tgsi_full_immediate
*full_imm
,
131 struct tgsi_token
*tokens
,
132 struct tgsi_header
*header
,
139 struct tgsi_instruction
140 tgsi_default_instruction( void );
142 struct tgsi_instruction
143 tgsi_build_instruction(
146 unsigned num_dst_regs
,
147 unsigned num_src_regs
,
148 struct tgsi_header
*header
);
150 struct tgsi_full_instruction
151 tgsi_default_full_instruction( void );
154 tgsi_build_full_instruction(
155 const struct tgsi_full_instruction
*full_inst
,
156 struct tgsi_token
*tokens
,
157 struct tgsi_header
*header
,
160 struct tgsi_instruction_ext_nv
161 tgsi_default_instruction_ext_nv( void );
164 tgsi_compare_instruction_ext_nv(
165 struct tgsi_instruction_ext_nv a
,
166 struct tgsi_instruction_ext_nv b
);
168 struct tgsi_instruction_ext_nv
169 tgsi_build_instruction_ext_nv(
171 unsigned cond_dst_index
,
172 unsigned cond_flow_index
,
174 unsigned cond_swizzle_x
,
175 unsigned cond_swizzle_y
,
176 unsigned cond_swizzle_z
,
177 unsigned cond_swizzle_w
,
178 unsigned cond_dst_update
,
179 unsigned cond_flow_enable
,
180 struct tgsi_token
*prev_token
,
181 struct tgsi_instruction
*instruction
,
182 struct tgsi_header
*header
);
184 struct tgsi_instruction_ext_label
185 tgsi_default_instruction_ext_label( void );
188 tgsi_compare_instruction_ext_label(
189 struct tgsi_instruction_ext_label a
,
190 struct tgsi_instruction_ext_label b
);
192 struct tgsi_instruction_ext_label
193 tgsi_build_instruction_ext_label(
195 struct tgsi_token
*prev_token
,
196 struct tgsi_instruction
*instruction
,
197 struct tgsi_header
*header
);
199 struct tgsi_instruction_ext_texture
200 tgsi_default_instruction_ext_texture( void );
203 tgsi_compare_instruction_ext_texture(
204 struct tgsi_instruction_ext_texture a
,
205 struct tgsi_instruction_ext_texture b
);
207 struct tgsi_instruction_ext_texture
208 tgsi_build_instruction_ext_texture(
210 struct tgsi_token
*prev_token
,
211 struct tgsi_instruction
*instruction
,
212 struct tgsi_header
*header
);
214 struct tgsi_src_register
215 tgsi_default_src_register( void );
217 struct tgsi_src_register
218 tgsi_build_src_register(
228 struct tgsi_instruction
*instruction
,
229 struct tgsi_header
*header
);
231 struct tgsi_full_src_register
232 tgsi_default_full_src_register( void );
234 struct tgsi_src_register_ext_swz
235 tgsi_default_src_register_ext_swz( void );
238 tgsi_compare_src_register_ext_swz(
239 struct tgsi_src_register_ext_swz a
,
240 struct tgsi_src_register_ext_swz b
);
242 struct tgsi_src_register_ext_swz
243 tgsi_build_src_register_ext_swz(
244 unsigned ext_swizzle_x
,
245 unsigned ext_swizzle_y
,
246 unsigned ext_swizzle_z
,
247 unsigned ext_swizzle_w
,
252 struct tgsi_token
*prev_token
,
253 struct tgsi_instruction
*instruction
,
254 struct tgsi_header
*header
);
256 struct tgsi_src_register_ext_mod
257 tgsi_default_src_register_ext_mod( void );
260 tgsi_compare_src_register_ext_mod(
261 struct tgsi_src_register_ext_mod a
,
262 struct tgsi_src_register_ext_mod b
);
264 struct tgsi_src_register_ext_mod
265 tgsi_build_src_register_ext_mod(
271 struct tgsi_token
*prev_token
,
272 struct tgsi_instruction
*instruction
,
273 struct tgsi_header
*header
);
275 struct tgsi_dimension
276 tgsi_default_dimension( void );
278 struct tgsi_dimension
279 tgsi_build_dimension(
282 struct tgsi_instruction
*instruction
,
283 struct tgsi_header
*header
);
285 struct tgsi_dst_register
286 tgsi_default_dst_register( void );
288 struct tgsi_dst_register
289 tgsi_build_dst_register(
294 struct tgsi_instruction
*instruction
,
295 struct tgsi_header
*header
);
297 struct tgsi_full_dst_register
298 tgsi_default_full_dst_register( void );
300 struct tgsi_dst_register_ext_concode
301 tgsi_default_dst_register_ext_concode( void );
304 tgsi_compare_dst_register_ext_concode(
305 struct tgsi_dst_register_ext_concode a
,
306 struct tgsi_dst_register_ext_concode b
);
308 struct tgsi_dst_register_ext_concode
309 tgsi_build_dst_register_ext_concode(
316 struct tgsi_token
*prev_token
,
317 struct tgsi_instruction
*instruction
,
318 struct tgsi_header
*header
);
320 struct tgsi_dst_register_ext_modulate
321 tgsi_default_dst_register_ext_modulate( void );
324 tgsi_compare_dst_register_ext_modulate(
325 struct tgsi_dst_register_ext_modulate a
,
326 struct tgsi_dst_register_ext_modulate b
);
328 struct tgsi_dst_register_ext_modulate
329 tgsi_build_dst_register_ext_modulate(
331 struct tgsi_token
*prev_token
,
332 struct tgsi_instruction
*instruction
,
333 struct tgsi_header
*header
);
335 #if defined __cplusplus
339 #endif /* TGSI_BUILD_H */