add number of passes count to ati_fragment_shader
This commit is contained in:
@@ -1756,6 +1756,7 @@ struct ati_fragment_shader
|
||||
struct program Base;
|
||||
struct atifs_instruction *Instructions;
|
||||
GLfloat Constants[8][4];
|
||||
GLint NumPasses;
|
||||
GLint cur_pass;
|
||||
};
|
||||
|
||||
|
||||
@@ -231,7 +231,8 @@ _mesa_EndFragmentShaderATI(void)
|
||||
#endif
|
||||
|
||||
ctx->ATIFragmentShader.Compiling = 0;
|
||||
|
||||
ctx->ATIFragmentShader.Current->NumPasses = ctx->ATIFragmentShader.Current->cur_pass;
|
||||
ctx->ATIFragmentShader.Current->cur_pass=0;
|
||||
#if MESA_DEBUG_ATI_FS
|
||||
for (i = 0; i < curProg->Base.NumInstructions; i++) {
|
||||
GLuint op0 = curProg->Instructions[i].Opcode[0];
|
||||
@@ -255,6 +256,9 @@ _mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle)
|
||||
GLint ci;
|
||||
struct atifs_instruction *curI;
|
||||
|
||||
if (ctx->ATIFragmentShader.Current->cur_pass==1)
|
||||
ctx->ATIFragmentShader.Current->cur_pass=2;
|
||||
|
||||
new_inst(curProg);
|
||||
ci = curProg->Base.NumInstructions - 1;
|
||||
/* some validation
|
||||
@@ -287,6 +291,10 @@ _mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle)
|
||||
GLint ci;
|
||||
struct atifs_instruction *curI;
|
||||
|
||||
if (ctx->ATIFragmentShader.Current->cur_pass==1)
|
||||
ctx->ATIFragmentShader.Current->cur_pass=2;
|
||||
|
||||
|
||||
new_inst(curProg);
|
||||
|
||||
ci = curProg->Base.NumInstructions - 1;
|
||||
@@ -318,6 +326,9 @@ _mesa_FragmentOpXATI(GLint optype, GLuint arg_count, GLenum op, GLuint dst,
|
||||
GLint ci;
|
||||
struct atifs_instruction *curI;
|
||||
|
||||
if (ctx->ATIFragmentShader.Current->cur_pass==0)
|
||||
ctx->ATIFragmentShader.Current->cur_pass=1;
|
||||
|
||||
/* decide whether this is a new instruction or not ... all color instructions are new */
|
||||
if (optype == 0)
|
||||
new_inst(curProg);
|
||||
|
||||
Reference in New Issue
Block a user