summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_state.c
diff options
context:
space:
mode:
authorMaciej Cencora <m.cencora@gmail.com>2009-07-03 20:14:24 +0200
committerMaciej Cencora <m.cencora@gmail.com>2009-07-13 19:25:57 +0200
commit37c319f62f59d7750dd172034e43dfd489f572cc (patch)
tree210905720d82515328f8bb5b0f573fd7230a3aac /src/mesa/drivers/dri/r300/r300_state.c
parentbce224c1f108e6c8131dfc953ef607689b83ae7e (diff)
r300: implement proper IsProgramNative check for vertex programs
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_state.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index e0996383eb..8c228ab5e7 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -2045,6 +2045,7 @@ void r300UpdateShaders(r300ContextPtr rmesa)
}
if (rmesa->radeon.NewGLState && rmesa->options.hw_tcl_enabled) {
+ struct r300_vertex_program *vp;
int i;
for (i = _TNL_FIRST_MAT; i <= _TNL_LAST_MAT; i++) {
rmesa->temp_attrib[i] =
@@ -2060,8 +2061,11 @@ void r300UpdateShaders(r300ContextPtr rmesa)
rmesa->temp_attrib[i];
}
- r300SelectVertexShader(rmesa);
- r300SwitchFallback(ctx, R300_FALLBACK_VERTEX_PROGRAM, rmesa->selected_vp->error);
+ vp = r300SelectVertexShader(ctx);
+ if (!vp->translated)
+ r300TranslateVertexShader(vp);
+
+ r300SwitchFallback(ctx, R300_FALLBACK_VERTEX_PROGRAM, vp->error);
}
fp = r300SelectFragmentShader(ctx);