consolidate some parsing functions that were pretty much identical for vertex/fragment programs
This commit is contained in:
parent
21454f8636
commit
7d2b6a0466
|
@ -2,7 +2,7 @@
|
||||||
* Mesa 3-D graphics library
|
* Mesa 3-D graphics library
|
||||||
* Version: 7.1
|
* Version: 7.1
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -2582,23 +2582,24 @@ parse_src_reg (GLcontext * ctx, const GLubyte ** inst,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse fragment program vector source register.
|
* Parse vertex/fragment program vector source register.
|
||||||
*/
|
*/
|
||||||
static GLuint
|
static GLuint
|
||||||
parse_fp_vector_src_reg(GLcontext * ctx, const GLubyte ** inst,
|
parse_vector_src_reg(GLcontext *ctx, const GLubyte **inst,
|
||||||
struct var_cache **vc_head,
|
struct var_cache **vc_head,
|
||||||
struct arb_program *program,
|
struct arb_program *program,
|
||||||
struct prog_src_register *reg)
|
struct prog_src_register *reg)
|
||||||
{
|
{
|
||||||
enum register_file file;
|
enum register_file file;
|
||||||
GLint index;
|
GLint index;
|
||||||
GLboolean negate;
|
GLubyte negateMask;
|
||||||
GLubyte swizzle[4];
|
GLubyte swizzle[4];
|
||||||
GLboolean isRelOffset;
|
GLboolean isRelOffset;
|
||||||
|
|
||||||
/* Grab the sign */
|
/* Grab the sign */
|
||||||
negate = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
||||||
|
|
||||||
/* And the src reg */
|
/* And the src reg */
|
||||||
if (parse_src_reg(ctx, inst, vc_head, program, &file, &index, &isRelOffset))
|
if (parse_src_reg(ctx, inst, vc_head, program, &file, &index, &isRelOffset))
|
||||||
|
@ -2609,26 +2610,61 @@ parse_fp_vector_src_reg(GLcontext * ctx, const GLubyte ** inst,
|
||||||
|
|
||||||
reg->File = file;
|
reg->File = file;
|
||||||
reg->Index = index;
|
reg->Index = index;
|
||||||
reg->NegateBase = negate;
|
|
||||||
reg->Swizzle = MAKE_SWIZZLE4(swizzle[0], swizzle[1], swizzle[2], swizzle[3]);
|
reg->Swizzle = MAKE_SWIZZLE4(swizzle[0], swizzle[1], swizzle[2], swizzle[3]);
|
||||||
|
reg->NegateBase = negateMask;
|
||||||
|
reg->RelAddr = isRelOffset;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse fragment program destination register.
|
* Parse vertex/fragment program scalar source register.
|
||||||
|
*/
|
||||||
|
static GLuint
|
||||||
|
parse_scalar_src_reg(GLcontext *ctx, const GLubyte **inst,
|
||||||
|
struct var_cache **vc_head,
|
||||||
|
struct arb_program *program,
|
||||||
|
struct prog_src_register *reg)
|
||||||
|
{
|
||||||
|
enum register_file file;
|
||||||
|
GLint index;
|
||||||
|
GLubyte negateMask;
|
||||||
|
GLubyte swizzle[4];
|
||||||
|
GLboolean isRelOffset;
|
||||||
|
|
||||||
|
/* Grab the sign */
|
||||||
|
negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
||||||
|
|
||||||
|
/* And the src reg */
|
||||||
|
if (parse_src_reg(ctx, inst, vc_head, program, &file, &index, &isRelOffset))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/* finally, the swizzle */
|
||||||
|
parse_swizzle_mask(inst, swizzle, 1);
|
||||||
|
|
||||||
|
reg->File = file;
|
||||||
|
reg->Index = index;
|
||||||
|
reg->Swizzle = (swizzle[0] << 0);
|
||||||
|
reg->NegateBase = negateMask;
|
||||||
|
reg->RelAddr = isRelOffset;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse vertex/fragment program destination register.
|
||||||
* \return 1 if error, 0 if no error.
|
* \return 1 if error, 0 if no error.
|
||||||
*/
|
*/
|
||||||
static GLuint
|
static GLuint
|
||||||
parse_fp_dst_reg(GLcontext * ctx, const GLubyte ** inst,
|
parse_dst_reg(GLcontext * ctx, const GLubyte ** inst,
|
||||||
struct var_cache **vc_head, struct arb_program *Program,
|
struct var_cache **vc_head, struct arb_program *program,
|
||||||
struct prog_dst_register *reg )
|
struct prog_dst_register *reg )
|
||||||
{
|
{
|
||||||
GLint mask;
|
GLint mask;
|
||||||
GLuint idx;
|
GLuint idx;
|
||||||
enum register_file file;
|
enum register_file file;
|
||||||
|
|
||||||
if (parse_masked_dst_reg (ctx, inst, vc_head, Program, &file, &idx, &mask))
|
if (parse_masked_dst_reg (ctx, inst, vc_head, program, &file, &idx, &mask))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
reg->File = file;
|
reg->File = file;
|
||||||
|
@ -2638,41 +2674,6 @@ parse_fp_dst_reg(GLcontext * ctx, const GLubyte ** inst,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse fragment program scalar src register.
|
|
||||||
* \return 1 if error, 0 if no error.
|
|
||||||
*/
|
|
||||||
static GLuint
|
|
||||||
parse_fp_scalar_src_reg (GLcontext * ctx, const GLubyte ** inst,
|
|
||||||
struct var_cache **vc_head,
|
|
||||||
struct arb_program *Program,
|
|
||||||
struct prog_src_register *reg )
|
|
||||||
{
|
|
||||||
enum register_file File;
|
|
||||||
GLint Index;
|
|
||||||
GLubyte Negate;
|
|
||||||
GLubyte Swizzle[4];
|
|
||||||
GLboolean IsRelOffset;
|
|
||||||
|
|
||||||
/* Grab the sign */
|
|
||||||
Negate = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
|
||||||
|
|
||||||
/* And the src reg */
|
|
||||||
if (parse_src_reg (ctx, inst, vc_head, Program, &File, &Index, &IsRelOffset))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* finally, the swizzle */
|
|
||||||
parse_swizzle_mask(inst, Swizzle, 1);
|
|
||||||
|
|
||||||
reg->File = File;
|
|
||||||
reg->Index = Index;
|
|
||||||
reg->NegateBase = Negate;
|
|
||||||
reg->Swizzle = (Swizzle[0] << 0);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a big mother that handles getting opcodes into the instruction
|
* This is a big mother that handles getting opcodes into the instruction
|
||||||
* and handling the src & dst registers for fragment program instructions
|
* and handling the src & dst registers for fragment program instructions
|
||||||
|
@ -2749,10 +2750,10 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2802,10 +2803,10 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_fp_scalar_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
if (parse_scalar_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2818,11 +2819,11 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg(ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (a = 0; a < 2; a++) {
|
for (a = 0; a < 2; a++) {
|
||||||
if (parse_fp_scalar_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
if (parse_scalar_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2903,10 +2904,10 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
for (a = 0; a < 2; a++) {
|
for (a = 0; a < 2; a++) {
|
||||||
if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2932,11 +2933,11 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (a = 0; a < 3; a++) {
|
for (a = 0; a < 3; a++) {
|
||||||
if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2949,7 +2950,7 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
fp->Opcode = OPCODE_SWZ;
|
fp->Opcode = OPCODE_SWZ;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2992,10 +2993,10 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_fp_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
if (parse_dst_reg (ctx, inst, vc_head, Program, &fp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* texImageUnit */
|
/* texImageUnit */
|
||||||
|
@ -3067,7 +3068,7 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
|
|
||||||
case OP_TEX_KIL:
|
case OP_TEX_KIL:
|
||||||
Program->UsesKill = 1;
|
Program->UsesKill = 1;
|
||||||
if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
fp->Opcode = OPCODE_KIL;
|
fp->Opcode = OPCODE_KIL;
|
||||||
break;
|
break;
|
||||||
|
@ -3079,23 +3080,6 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GLuint
|
|
||||||
parse_vp_dst_reg(GLcontext * ctx, const GLubyte ** inst,
|
|
||||||
struct var_cache **vc_head, struct arb_program *Program,
|
|
||||||
struct prog_dst_register *reg )
|
|
||||||
{
|
|
||||||
GLint mask;
|
|
||||||
GLuint idx;
|
|
||||||
enum register_file file;
|
|
||||||
|
|
||||||
if (parse_masked_dst_reg(ctx, inst, vc_head, Program, &file, &idx, &mask))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
reg->File = file;
|
|
||||||
reg->Index = idx;
|
|
||||||
reg->WriteMask = mask;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle the parsing out of a masked address register
|
* Handle the parsing out of a masked address register
|
||||||
|
@ -3127,71 +3111,6 @@ parse_vp_address_reg (GLcontext * ctx, const GLubyte ** inst,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse vertex program vector source register.
|
|
||||||
*/
|
|
||||||
static GLuint
|
|
||||||
parse_vp_vector_src_reg(GLcontext * ctx, const GLubyte ** inst,
|
|
||||||
struct var_cache **vc_head,
|
|
||||||
struct arb_program *program,
|
|
||||||
struct prog_src_register *reg )
|
|
||||||
{
|
|
||||||
enum register_file file;
|
|
||||||
GLint index;
|
|
||||||
GLubyte negateMask;
|
|
||||||
GLubyte swizzle[4];
|
|
||||||
GLboolean isRelOffset;
|
|
||||||
|
|
||||||
/* Grab the sign */
|
|
||||||
negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
|
||||||
|
|
||||||
/* And the src reg */
|
|
||||||
if (parse_src_reg (ctx, inst, vc_head, program, &file, &index, &isRelOffset))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* finally, the swizzle */
|
|
||||||
parse_swizzle_mask(inst, swizzle, 4);
|
|
||||||
|
|
||||||
reg->File = file;
|
|
||||||
reg->Index = index;
|
|
||||||
reg->Swizzle = MAKE_SWIZZLE4(swizzle[0], swizzle[1],
|
|
||||||
swizzle[2], swizzle[3]);
|
|
||||||
reg->NegateBase = negateMask;
|
|
||||||
reg->RelAddr = isRelOffset;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static GLuint
|
|
||||||
parse_vp_scalar_src_reg (GLcontext * ctx, const GLubyte ** inst,
|
|
||||||
struct var_cache **vc_head,
|
|
||||||
struct arb_program *Program,
|
|
||||||
struct prog_src_register *reg )
|
|
||||||
{
|
|
||||||
enum register_file File;
|
|
||||||
GLint Index;
|
|
||||||
GLubyte negateMask;
|
|
||||||
GLubyte Swizzle[4];
|
|
||||||
GLboolean IsRelOffset;
|
|
||||||
|
|
||||||
/* Grab the sign */
|
|
||||||
negateMask = (parse_sign (inst) == -1) ? NEGATE_XYZW : NEGATE_NONE;
|
|
||||||
|
|
||||||
/* And the src reg */
|
|
||||||
if (parse_src_reg (ctx, inst, vc_head, Program, &File, &Index, &IsRelOffset))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* finally, the swizzle */
|
|
||||||
parse_swizzle_mask(inst, Swizzle, 1);
|
|
||||||
|
|
||||||
reg->File = File;
|
|
||||||
reg->Index = Index;
|
|
||||||
reg->Swizzle = (Swizzle[0] << 0);
|
|
||||||
reg->NegateBase = negateMask;
|
|
||||||
reg->RelAddr = IsRelOffset;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a big mother that handles getting opcodes into the instruction
|
* This is a big mother that handles getting opcodes into the instruction
|
||||||
|
@ -3229,7 +3148,7 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
vp->DstReg.File = PROGRAM_ADDRESS;
|
vp->DstReg.File = PROGRAM_ADDRESS;
|
||||||
|
|
||||||
/* Get a scalar src register */
|
/* Get a scalar src register */
|
||||||
if (parse_vp_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
if (parse_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -3253,10 +3172,10 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_vp_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3281,10 +3200,10 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
vp->Opcode = OPCODE_RSQ;
|
vp->Opcode = OPCODE_RSQ;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_vp_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
if (parse_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[0]))
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3294,11 +3213,11 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
vp->Opcode = OPCODE_POW;
|
vp->Opcode = OPCODE_POW;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (a = 0; a < 2; a++) {
|
for (a = 0; a < 2; a++) {
|
||||||
if (parse_vp_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
if (parse_scalar_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3342,11 +3261,11 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
vp->Opcode = OPCODE_XPD;
|
vp->Opcode = OPCODE_XPD;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (a = 0; a < 2; a++) {
|
for (a = 0; a < 2; a++) {
|
||||||
if (parse_vp_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3358,11 +3277,11 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (a = 0; a < 3; a++) {
|
for (a = 0; a < 3; a++) {
|
||||||
if (parse_vp_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
if (parse_vector_src_reg(ctx, inst, vc_head, Program, &vp->SrcReg[a]))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3380,7 +3299,7 @@ parse_vp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||||
enum register_file file;
|
enum register_file file;
|
||||||
GLint index;
|
GLint index;
|
||||||
|
|
||||||
if (parse_vp_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
if (parse_dst_reg(ctx, inst, vc_head, Program, &vp->DstReg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (parse_src_reg(ctx, inst, vc_head, Program, &file, &index, &relAddr))
|
if (parse_src_reg(ctx, inst, vc_head, Program, &file, &index, &relAddr))
|
||||||
|
|
Loading…
Reference in New Issue