summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_render.c
diff options
context:
space:
mode:
authorAapo Tahkola <aet@rasterburn.org>2006-01-27 13:21:47 +0000
committerAapo Tahkola <aet@rasterburn.org>2006-01-27 13:21:47 +0000
commite797bc8bbe23480c3fca3654ce1c980d103520d1 (patch)
tree8616b22f82bbd05d19767d720842588ada4fdaeb /src/mesa/drivers/dri/r300/r300_render.c
parent7d82d284e3cd8a46dfea8788d090eb58198752ca (diff)
per vp sw fallbacks
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_render.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_render.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c
index fbd2135884..6a7f126b9e 100644
--- a/src/mesa/drivers/dri/r300/r300_render.c
+++ b/src/mesa/drivers/dri/r300/r300_render.c
@@ -543,7 +543,7 @@ static GLboolean r300_run_vb_render(GLcontext *ctx,
fprintf(stderr, "%s\n", __FUNCTION__);
- r300UpdateShaders(rmesa);
+ //r300UpdateShaders(rmesa);
r300ReleaseArrays(ctx);
r300EmitArrays(ctx, GL_FALSE);
@@ -567,13 +567,13 @@ static GLboolean r300_run_vb_render(GLcontext *ctx,
r300_render_vb_primitive(rmesa, ctx, start, start + length, prim);
}
-
+
reg_start(R300_RB3D_DSTCACHE_CTLSTAT,0);
e32(0x0000000a);
reg_start(0x4f18,0);
e32(0x00000003);
-
+
#ifdef USER_BUFFERS
r300UseArrays(ctx);
#endif
@@ -690,6 +690,7 @@ void dump_dt(struct dt *dt, int count)
if (RADEON_DEBUG & DEBUG_PRIMS)
fprintf(stderr, "%s\n", __FUNCTION__);
+ r300UpdateShaders(rmesa);
if (rmesa->state.VB.LockCount == 0) {
r300ReleaseArrays(ctx);
r300EmitArraysVtx(ctx, GL_FALSE);
@@ -845,6 +846,7 @@ static GLboolean r300_run_tcl_render(GLcontext *ctx,
struct tnl_pipeline_stage *stage)
{
r300ContextPtr rmesa = R300_CONTEXT(ctx);
+ struct r300_vertex_program *vp;
hw_tcl_on=future_hw_tcl_on;
@@ -853,25 +855,23 @@ static GLboolean r300_run_tcl_render(GLcontext *ctx,
if(hw_tcl_on == GL_FALSE)
return GL_TRUE;
- //r300UpdateShaders(rmesa);
+ r300UpdateShaders(rmesa);
+
+ vp = (struct r300_vertex_program *)CURRENT_VERTEX_SHADER(ctx);
+#if 0 /* Draw every second request with software arb vp */
+ vp->native++;
+ vp->native &= 1;
+ //vp->native = GL_FALSE;
+#endif
+ if (vp->native == GL_FALSE) {
+ hw_tcl_on = GL_FALSE;
+ return GL_TRUE;
+ }
//r300UpdateShaderStates(rmesa);
return r300_run_vb_render(ctx, stage);
}
-static void r300_check_tcl_render(GLcontext *ctx, struct tnl_pipeline_stage *stage)
-{
-
- if (RADEON_DEBUG & DEBUG_STATE)
- fprintf(stderr, "%s\n", __FUNCTION__);
-
- /* We only support rendering in hardware for now */
- if (ctx->RenderMode != GL_RENDER) {
- //stage->active = GL_FALSE;
- return;
- }
-}
-
const struct tnl_pipeline_stage _r300_tcl_stage = {
"r300 tcl",
NULL,