tgsi_build.h revision 70af238b494ed1b6da4841c2065c33ee0f0f37c9
1#if !defined TGSI_BUILD_H 2#define TGSI_BUILD_H 3 4#if defined __cplusplus 5extern "C" { 6#endif // defined __cplusplus 7 8/* 9 * version 10 */ 11 12struct tgsi_version 13tgsi_build_version( void ); 14 15/* 16 * header 17 */ 18 19struct tgsi_header 20tgsi_build_header( void ); 21 22struct tgsi_processor 23tgsi_default_processor( void ); 24 25struct tgsi_processor 26tgsi_build_processor( 27 unsigned processor, 28 struct tgsi_header *header ); 29 30/* 31 * declaration 32 */ 33 34struct tgsi_declaration 35tgsi_default_declaration( void ); 36 37struct tgsi_declaration 38tgsi_build_declaration( 39 unsigned file, 40 unsigned declare, 41 unsigned interpolate, 42 struct tgsi_header *header ); 43 44struct tgsi_full_declaration 45tgsi_default_full_declaration( void ); 46 47unsigned 48tgsi_build_full_declaration( 49 const struct tgsi_full_declaration *full_decl, 50 struct tgsi_token *tokens, 51 struct tgsi_header *header, 52 unsigned maxsize ); 53 54struct tgsi_declaration_range 55tgsi_build_declaration_range( 56 unsigned first, 57 unsigned last, 58 struct tgsi_declaration *declaration, 59 struct tgsi_header *header ); 60 61struct tgsi_declaration_mask 62tgsi_build_declaration_mask( 63 unsigned mask, 64 struct tgsi_declaration *declaration, 65 struct tgsi_header *header ); 66 67struct tgsi_declaration_interpolation 68tgsi_default_declaration_interpolation( void ); 69 70struct tgsi_declaration_interpolation 71tgsi_build_declaration_interpolation( 72 unsigned interpolate, 73 struct tgsi_declaration *declaration, 74 struct tgsi_header *header ); 75 76/* 77 * immediate 78 */ 79 80struct tgsi_immediate 81tgsi_default_immediate( void ); 82 83struct tgsi_immediate 84tgsi_build_immediate( 85 struct tgsi_header *header ); 86 87struct tgsi_full_immediate 88tgsi_default_full_immediate( void ); 89 90struct tgsi_immediate_float32 91tgsi_build_immediate_float32( 92 float value, 93 struct tgsi_immediate *immediate, 94 struct tgsi_header *header ); 95 96unsigned 97tgsi_build_full_immediate( 98 const struct tgsi_full_immediate *full_imm, 99 struct tgsi_token *tokens, 100 struct tgsi_header *header, 101 unsigned maxsize ); 102 103/* 104 * instruction 105 */ 106 107struct tgsi_instruction 108tgsi_default_instruction( void ); 109 110struct tgsi_instruction 111tgsi_build_instruction( 112 unsigned opcode, 113 unsigned saturate, 114 unsigned num_dst_regs, 115 unsigned num_src_regs, 116 struct tgsi_header *header ); 117 118struct tgsi_full_instruction 119tgsi_default_full_instruction( void ); 120 121unsigned 122tgsi_build_full_instruction( 123 const struct tgsi_full_instruction *full_inst, 124 struct tgsi_token *tokens, 125 struct tgsi_header *header, 126 unsigned maxsize ); 127 128struct tgsi_instruction_ext_nv 129tgsi_default_instruction_ext_nv( void ); 130 131unsigned 132tgsi_compare_instruction_ext_nv( 133 struct tgsi_instruction_ext_nv a, 134 struct tgsi_instruction_ext_nv b ); 135 136struct tgsi_instruction_ext_nv 137tgsi_build_instruction_ext_nv( 138 unsigned precision, 139 unsigned cond_dst_index, 140 unsigned cond_flow_index, 141 unsigned cond_mask, 142 unsigned cond_swizzle_x, 143 unsigned cond_swizzle_y, 144 unsigned cond_swizzle_z, 145 unsigned cond_swizzle_w, 146 unsigned cond_dst_update, 147 unsigned cond_flow_update, 148 struct tgsi_token *prev_token, 149 struct tgsi_instruction *instruction, 150 struct tgsi_header *header ); 151 152struct tgsi_instruction_ext_label 153tgsi_default_instruction_ext_label( void ); 154 155unsigned 156tgsi_compare_instruction_ext_label( 157 struct tgsi_instruction_ext_label a, 158 struct tgsi_instruction_ext_label b ); 159 160struct tgsi_instruction_ext_label 161tgsi_build_instruction_ext_label( 162 unsigned label, 163 struct tgsi_token *prev_token, 164 struct tgsi_instruction *instruction, 165 struct tgsi_header *header ); 166 167struct tgsi_instruction_ext_texture 168tgsi_default_instruction_ext_texture( void ); 169 170unsigned 171tgsi_compare_instruction_ext_texture( 172 struct tgsi_instruction_ext_texture a, 173 struct tgsi_instruction_ext_texture b ); 174 175struct tgsi_instruction_ext_texture 176tgsi_build_instruction_ext_texture( 177 unsigned texture, 178 struct tgsi_token *prev_token, 179 struct tgsi_instruction *instruction, 180 struct tgsi_header *header ); 181 182struct tgsi_src_register 183tgsi_default_src_register( void ); 184 185struct tgsi_src_register 186tgsi_build_src_register( 187 unsigned file, 188 unsigned swizzle_x, 189 unsigned swizzle_y, 190 unsigned swizzle_z, 191 unsigned swizzle_w, 192 unsigned negate, 193 unsigned indirect, 194 unsigned dimension, 195 int index, 196 struct tgsi_instruction *instruction, 197 struct tgsi_header *header ); 198 199struct tgsi_full_src_register 200tgsi_default_full_src_register( void ); 201 202struct tgsi_src_register_ext_swz 203tgsi_default_src_register_ext_swz( void ); 204 205unsigned 206tgsi_compare_src_register_ext_swz( 207 struct tgsi_src_register_ext_swz a, 208 struct tgsi_src_register_ext_swz b ); 209 210struct tgsi_src_register_ext_swz 211tgsi_build_src_register_ext_swz( 212 unsigned ext_swizzle_x, 213 unsigned ext_swizzle_y, 214 unsigned ext_swizzle_z, 215 unsigned ext_swizzle_w, 216 unsigned negate_x, 217 unsigned negate_y, 218 unsigned negate_z, 219 unsigned negate_w, 220 unsigned ext_divide, 221 struct tgsi_token *prev_token, 222 struct tgsi_instruction *instruction, 223 struct tgsi_header *header ); 224 225struct tgsi_src_register_ext_mod 226tgsi_default_src_register_ext_mod( void ); 227 228unsigned 229tgsi_compare_src_register_ext_mod( 230 struct tgsi_src_register_ext_mod a, 231 struct tgsi_src_register_ext_mod b ); 232 233struct tgsi_src_register_ext_mod 234tgsi_build_src_register_ext_mod( 235 unsigned complement, 236 unsigned bias, 237 unsigned scale_2x, 238 unsigned absolute, 239 unsigned negate, 240 struct tgsi_token *prev_token, 241 struct tgsi_instruction *instruction, 242 struct tgsi_header *header ); 243 244struct tgsi_dimension 245tgsi_default_dimension( void ); 246 247struct tgsi_dimension 248tgsi_build_dimension( 249 unsigned indirect, 250 unsigned index, 251 struct tgsi_instruction *instruction, 252 struct tgsi_header *header ); 253 254struct tgsi_dst_register 255tgsi_default_dst_register( void ); 256 257struct tgsi_dst_register 258tgsi_build_dst_register( 259 unsigned file, 260 unsigned mask, 261 int index, 262 struct tgsi_instruction *instruction, 263 struct tgsi_header *header ); 264 265struct tgsi_full_dst_register 266tgsi_default_full_dst_register( void ); 267 268struct tgsi_dst_register_ext_concode 269tgsi_default_dst_register_ext_concode( void ); 270 271unsigned 272tgsi_compare_dst_register_ext_concode( 273 struct tgsi_dst_register_ext_concode a, 274 struct tgsi_dst_register_ext_concode b ); 275 276struct tgsi_dst_register_ext_concode 277tgsi_build_dst_register_ext_concode( 278 unsigned cc, 279 unsigned swizzle_x, 280 unsigned swizzle_y, 281 unsigned swizzle_z, 282 unsigned swizzle_w, 283 int index, 284 struct tgsi_token *prev_token, 285 struct tgsi_instruction *instruction, 286 struct tgsi_header *header ); 287 288struct tgsi_dst_register_ext_modulate 289tgsi_default_dst_register_ext_modulate( void ); 290 291unsigned 292tgsi_compare_dst_register_ext_modulate( 293 struct tgsi_dst_register_ext_modulate a, 294 struct tgsi_dst_register_ext_modulate b ); 295 296struct tgsi_dst_register_ext_modulate 297tgsi_build_dst_register_ext_modulate( 298 unsigned modulate, 299 struct tgsi_token *prev_token, 300 struct tgsi_instruction *instruction, 301 struct tgsi_header *header ); 302 303#if defined __cplusplus 304} // extern "C" 305#endif // defined __cplusplus 306 307#endif // !defined TGSI_BUILD_H 308 309