return dr;
}
+static struct tgsi_declaration_dimension
+tgsi_default_declaration_dimension()
+{
+ struct tgsi_declaration_dimension dim;
+
+ dim.Index2D = 0;
+
+ return dim;
+}
+
static struct tgsi_declaration_range
tgsi_build_declaration_range(
unsigned first,
full_declaration.Declaration = tgsi_default_declaration();
full_declaration.Range = tgsi_default_declaration_range();
+ full_declaration.Dim = tgsi_default_declaration_dimension();
full_declaration.Semantic = tgsi_default_declaration_semantic();
full_declaration.Interp = tgsi_default_declaration_interp();
full_declaration.Image = tgsi_default_declaration_image();
struct tgsi_header *header,
unsigned maxsize )
{
- unsigned size = 0, i;
+ unsigned size = 0;
+ int i;
struct tgsi_immediate *immediate;
if( maxsize <= size )
instruction.NrTokens = 0;
instruction.Opcode = TGSI_OPCODE_MOV;
instruction.Saturate = 0;
- instruction.Predicate = 0;
instruction.NumDstRegs = 1;
instruction.NumSrcRegs = 1;
instruction.Label = 0;
instruction.Texture = 0;
instruction.Memory = 0;
+ instruction.Precise = 0;
instruction.Padding = 0;
return instruction;
}
static struct tgsi_instruction
-tgsi_build_instruction(unsigned opcode,
+tgsi_build_instruction(enum tgsi_opcode opcode,
unsigned saturate,
- unsigned predicate,
+ unsigned precise,
unsigned num_dst_regs,
unsigned num_src_regs,
struct tgsi_header *header)
instruction = tgsi_default_instruction();
instruction.Opcode = opcode;
instruction.Saturate = saturate;
- instruction.Predicate = predicate;
+ instruction.Precise = precise;
instruction.NumDstRegs = num_dst_regs;
instruction.NumSrcRegs = num_src_regs;
header_bodysize_grow( header );
}
-struct tgsi_instruction_predicate
-tgsi_default_instruction_predicate(void)
-{
- struct tgsi_instruction_predicate instruction_predicate;
-
- instruction_predicate.SwizzleX = TGSI_SWIZZLE_X;
- instruction_predicate.SwizzleY = TGSI_SWIZZLE_Y;
- instruction_predicate.SwizzleZ = TGSI_SWIZZLE_Z;
- instruction_predicate.SwizzleW = TGSI_SWIZZLE_W;
- instruction_predicate.Negate = 0;
- instruction_predicate.Index = 0;
- instruction_predicate.Padding = 0;
-
- return instruction_predicate;
-}
-
-static struct tgsi_instruction_predicate
-tgsi_build_instruction_predicate(int index,
- unsigned negate,
- unsigned swizzleX,
- unsigned swizzleY,
- unsigned swizzleZ,
- unsigned swizzleW,
- struct tgsi_instruction *instruction,
- struct tgsi_header *header)
-{
- struct tgsi_instruction_predicate instruction_predicate;
-
- instruction_predicate = tgsi_default_instruction_predicate();
- instruction_predicate.SwizzleX = swizzleX;
- instruction_predicate.SwizzleY = swizzleY;
- instruction_predicate.SwizzleZ = swizzleZ;
- instruction_predicate.SwizzleW = swizzleW;
- instruction_predicate.Negate = negate;
- instruction_predicate.Index = index;
-
- instruction_grow(instruction, header);
-
- return instruction_predicate;
-}
-
static struct tgsi_instruction_label
tgsi_default_instruction_label( void )
{
static struct tgsi_instruction_label
tgsi_build_instruction_label(
unsigned label,
- struct tgsi_token *prev_token,
struct tgsi_instruction *instruction,
struct tgsi_header *header )
{
instruction_texture.Texture = TGSI_TEXTURE_UNKNOWN;
instruction_texture.NumOffsets = 0;
+ instruction_texture.ReturnType = TGSI_RETURN_TYPE_UNKNOWN;
instruction_texture.Padding = 0;
return instruction_texture;
tgsi_build_instruction_texture(
unsigned texture,
unsigned num_offsets,
- struct tgsi_token *prev_token,
+ unsigned return_type,
struct tgsi_instruction *instruction,
struct tgsi_header *header )
{
instruction_texture.Texture = texture;
instruction_texture.NumOffsets = num_offsets;
+ instruction_texture.ReturnType = return_type;
instruction_texture.Padding = 0;
instruction->Texture = 1;
unsigned qualifier,
unsigned texture,
unsigned format,
- struct tgsi_token *prev_token,
struct tgsi_instruction *instruction,
struct tgsi_header *header )
{
static struct tgsi_texture_offset
tgsi_build_texture_offset(
int index, int file, int swizzle_x, int swizzle_y, int swizzle_z,
- struct tgsi_token *prev_token,
struct tgsi_instruction *instruction,
struct tgsi_header *header )
{
unsigned i;
full_instruction.Instruction = tgsi_default_instruction();
- full_instruction.Predicate = tgsi_default_instruction_predicate();
full_instruction.Label = tgsi_default_instruction_label();
full_instruction.Texture = tgsi_default_instruction_texture();
full_instruction.Memory = tgsi_default_instruction_memory();
unsigned size = 0;
unsigned i;
struct tgsi_instruction *instruction;
- struct tgsi_token *prev_token;
if( maxsize <= size )
return 0;
*instruction = tgsi_build_instruction(full_inst->Instruction.Opcode,
full_inst->Instruction.Saturate,
- full_inst->Instruction.Predicate,
+ full_inst->Instruction.Precise,
full_inst->Instruction.NumDstRegs,
full_inst->Instruction.NumSrcRegs,
header);
- prev_token = (struct tgsi_token *) instruction;
-
- if (full_inst->Instruction.Predicate) {
- struct tgsi_instruction_predicate *instruction_predicate;
-
- if (maxsize <= size) {
- return 0;
- }
- instruction_predicate = (struct tgsi_instruction_predicate *)&tokens[size];
- size++;
-
- *instruction_predicate =
- tgsi_build_instruction_predicate(full_inst->Predicate.Index,
- full_inst->Predicate.Negate,
- full_inst->Predicate.SwizzleX,
- full_inst->Predicate.SwizzleY,
- full_inst->Predicate.SwizzleZ,
- full_inst->Predicate.SwizzleW,
- instruction,
- header);
- }
if (full_inst->Instruction.Label) {
struct tgsi_instruction_label *instruction_label;
*instruction_label = tgsi_build_instruction_label(
full_inst->Label.Label,
- prev_token,
instruction,
- header );
- prev_token = (struct tgsi_token *) instruction_label;
+ header );
}
if (full_inst->Instruction.Texture) {
*instruction_texture = tgsi_build_instruction_texture(
full_inst->Texture.Texture,
- full_inst->Texture.NumOffsets,
- prev_token,
+ full_inst->Texture.NumOffsets,
+ full_inst->Texture.ReturnType,
instruction,
header );
- prev_token = (struct tgsi_token *) instruction_texture;
for (i = 0; i < full_inst->Texture.NumOffsets; i++) {
struct tgsi_texture_offset *texture_offset;
full_inst->TexOffsets[i].SwizzleX,
full_inst->TexOffsets[i].SwizzleY,
full_inst->TexOffsets[i].SwizzleZ,
- prev_token,
instruction,
header);
- prev_token = (struct tgsi_token *) texture_offset;
}
}
full_inst->Memory.Qualifier,
full_inst->Memory.Texture,
full_inst->Memory.Format,
- prev_token,
instruction,
header );
- prev_token = (struct tgsi_token *) instruction_memory;
}
for( i = 0; i < full_inst->Instruction.NumDstRegs; i++ ) {
struct tgsi_header *header,
unsigned maxsize )
{
- unsigned size = 0, i;
+ unsigned size = 0;
+ int i;
struct tgsi_property *property;
if( maxsize <= size )