summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Scheidegger <rscheidegger@gmx.ch>2005-09-08 00:12:57 +0000
committerRoland Scheidegger <rscheidegger@gmx.ch>2005-09-08 00:12:57 +0000
commitce3350770c91f07a86466d59dfdab2a0c16cf282 (patch)
tree90ed2f1b54386d26294f9e3f0dfb84d9ba19bca8
parent692147ebf7f09d56a7de1659de2449478da4d1ba (diff)
add a bunch of FLUSH_VERTICES to some of the ATI_fs functions, most notably when changing the global ati fragment shader constants.
-rw-r--r--src/mesa/shader/atifragshader.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/shader/atifragshader.c b/src/mesa/shader/atifragshader.c
index 3117467c3cf..b86396afc8b 100644
--- a/src/mesa/shader/atifragshader.c
+++ b/src/mesa/shader/atifragshader.c
@@ -246,6 +246,7 @@ _mesa_DeleteFragmentShaderATI(GLuint id)
else if (prog) {
if (ctx->ATIFragmentShader.Current &&
ctx->ATIFragmentShader.Current->Base.Id == id) {
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
_mesa_BindFragmentShaderATI(0);
}
}
@@ -280,6 +281,8 @@ _mesa_BeginFragmentShaderATI(void)
return;
}
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
+
/* if the shader was already defined free instructions and get new ones
(or, could use the same mem but would need to reinitialize) */
/* no idea if it's allowed to redefine a shader */
@@ -715,6 +718,7 @@ _mesa_SetFragmentShaderConstantATI(GLuint dst, const GLfloat * value)
curProg->localConstDef |= 1 << dstindex;
}
else {
+ FLUSH_VERTICES(ctx, _NEW_PROGRAM);
COPY_4V(ctx->ATIFragmentShader.globalConstants[dstindex], value);
}
}