summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_render.c
diff options
context:
space:
mode:
authorAapo Tahkola <aet@rasterburn.org>2005-05-11 17:28:13 +0000
committerAapo Tahkola <aet@rasterburn.org>2005-05-11 17:28:13 +0000
commit4e68f4c1faa67c072fefe040271edf2c3a334eb7 (patch)
tree33e5442bec96e453f0dd1cb9263562fcc4b7c3aa /src/mesa/drivers/dri/r300/r300_render.c
parent1e5772f0ba7300e19d1980c0e30e358e71c5c685 (diff)
VBOs.
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_render.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_render.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c
index 4a827ace76..ac9d155026 100644
--- a/src/mesa/drivers/dri/r300/r300_render.c
+++ b/src/mesa/drivers/dri/r300/r300_render.c
@@ -545,7 +545,7 @@ static GLboolean r300_run_vb_render(GLcontext *ctx,
fprintf(stderr, "%s\n", __FUNCTION__);
- r300ReleaseArrays(ctx);
+ r300ReleaseArrays(ctx);
r300EmitArrays(ctx, GL_FALSE);
//dump_inputs(ctx, rmesa->state.render_inputs);
@@ -557,6 +557,9 @@ static GLboolean r300_run_vb_render(GLcontext *ctx,
reg_start(0x4f18,0);
e32(0x00000003);
r300EmitState(rmesa);
+
+ if(hw_tcl_on) /* FIXME */
+ r300FlushCmdBuf(rmesa, __FUNCTION__);
rmesa->state.Elts = VB->Elts;
@@ -748,6 +751,8 @@ static GLboolean r300_run_tcl_render(GLcontext *ctx,
TNLcontext *tnl = TNL_CONTEXT(ctx);
struct vertex_buffer *VB = &tnl->vb;
GLuint i;
+ struct r300_vertex_program *vp;
+
hw_tcl_on=future_hw_tcl_on;
if (RADEON_DEBUG & DEBUG_PRIMS)
@@ -756,13 +761,16 @@ static GLboolean r300_run_tcl_render(GLcontext *ctx,
return GL_TRUE;
if(ctx->VertexProgram._Enabled == GL_FALSE){
_tnl_UpdateFixedFunctionProgram(ctx);
- r300ProgramStringNotify(ctx, GL_VERTEX_PROGRAM_ARB, &ctx->_TnlProgram);
- r300_setup_textures(ctx);
- r300_setup_rs_unit(ctx);
-
- r300SetupVertexShader(rmesa);
- r300SetupPixelShader(rmesa);
}
+ vp = CURRENT_VERTEX_SHADER(ctx);
+ if(vp->translated == GL_FALSE)
+ translate_vertex_shader(vp);
+
+ r300_setup_textures(ctx);
+ r300_setup_rs_unit(ctx);
+
+ r300SetupVertexShader(rmesa);
+ r300SetupPixelShader(rmesa);
return r300_run_vb_render(ctx, stage);
}