Better fix to get tuxracer working.
This commit is contained in:
parent
1764b78ee9
commit
4885a9eb20
|
@ -249,6 +249,37 @@ static int r300_get_num_verts(r300ContextPtr rmesa,
|
||||||
return num_verts - verts_off;
|
return num_verts - verts_off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dump_inputs(GLcontext *ctx, int render_inputs)
|
||||||
|
{
|
||||||
|
int k;
|
||||||
|
fprintf(stderr, "inputs:");
|
||||||
|
if(render_inputs & _TNL_BIT_POS)
|
||||||
|
fprintf(stderr, "_TNL_BIT_POS ");
|
||||||
|
if(render_inputs & _TNL_BIT_NORMAL)
|
||||||
|
fprintf(stderr, "_TNL_BIT_NORMAL ");
|
||||||
|
|
||||||
|
/* color components */
|
||||||
|
if(render_inputs & _TNL_BIT_COLOR0)
|
||||||
|
fprintf(stderr, "_TNL_BIT_COLOR0 ");
|
||||||
|
if(render_inputs & _TNL_BIT_COLOR1)
|
||||||
|
fprintf(stderr, "_TNL_BIT_COLOR1 ");
|
||||||
|
|
||||||
|
if(render_inputs & _TNL_BIT_FOG)
|
||||||
|
fprintf(stderr, "_TNL_BIT_FOG ");
|
||||||
|
|
||||||
|
/* texture coordinates */
|
||||||
|
for(k=0;k < ctx->Const.MaxTextureUnits;k++)
|
||||||
|
if(render_inputs & (_TNL_BIT_TEX0<<k))
|
||||||
|
fprintf(stderr, "_TNL_BIT_TEX%d ", k);
|
||||||
|
|
||||||
|
if(render_inputs & _TNL_BIT_INDEX)
|
||||||
|
fprintf(stderr, "_TNL_BIT_INDEX ");
|
||||||
|
if(render_inputs & _TNL_BIT_POINTSIZE)
|
||||||
|
fprintf(stderr, "_TNL_BIT_POINTSIZE ");
|
||||||
|
|
||||||
|
fprintf(stderr, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* This function compiles GL context into state registers that
|
/* This function compiles GL context into state registers that
|
||||||
describe data routing inside of R300 pipeline.
|
describe data routing inside of R300 pipeline.
|
||||||
|
|
||||||
|
@ -328,6 +359,8 @@ static void r300_render_immediate_primitive(r300ContextPtr rmesa,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//dump_inputs(ctx, render_inputs); return ;
|
||||||
|
|
||||||
start_immediate_packet(num_verts, type, 4*rmesa->state.aos_count);
|
start_immediate_packet(num_verts, type, 4*rmesa->state.aos_count);
|
||||||
|
|
||||||
for(i=start;i<start+num_verts;i++){
|
for(i=start;i<start+num_verts;i++){
|
||||||
|
@ -358,8 +391,8 @@ static void r300_render_immediate_primitive(r300ContextPtr rmesa,
|
||||||
if(render_inputs & _TNL_BIT_COLOR1)
|
if(render_inputs & _TNL_BIT_COLOR1)
|
||||||
output_vector(VB->SecondaryColorPtr[0], i);
|
output_vector(VB->SecondaryColorPtr[0], i);
|
||||||
|
|
||||||
if(render_inputs & _TNL_BIT_FOG)
|
/* if(render_inputs & _TNL_BIT_FOG) // Causes lock ups when immediate mode is on
|
||||||
output_vector(VB->FogCoordPtr, i);
|
output_vector(VB->FogCoordPtr, i);*/
|
||||||
|
|
||||||
/* texture coordinates */
|
/* texture coordinates */
|
||||||
for(k=0;k < ctx->Const.MaxTextureUnits;k++)
|
for(k=0;k < ctx->Const.MaxTextureUnits;k++)
|
||||||
|
@ -557,6 +590,7 @@ static void upload_vertex_buffer(r300ContextPtr rmesa, GLcontext *ctx)
|
||||||
fprintf(stderr, "Aieee ! Maximum AOS arrays count exceeded.. \n");
|
fprintf(stderr, "Aieee ! Maximum AOS arrays count exceeded.. \n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
//dump_inputs(ctx, render_inputs); return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void r300_render_vb_primitive(r300ContextPtr rmesa,
|
static void r300_render_vb_primitive(r300ContextPtr rmesa,
|
||||||
|
@ -657,10 +691,6 @@ static GLboolean r300_run_render(GLcontext *ctx,
|
||||||
#if 1
|
#if 1
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
/* I dont recall fog locking up before polygon offset modifications.
|
|
||||||
Or then having fog on only locks up if immediate mode is on... */
|
|
||||||
if(ctx->Fog.Enabled)
|
|
||||||
return GL_FALSE;
|
|
||||||
|
|
||||||
return r300_run_immediate_render(ctx, stage);
|
return r300_run_immediate_render(ctx, stage);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -932,8 +932,8 @@ void r300_setup_routing(GLcontext *ctx, GLboolean immediate)
|
||||||
if(tnl->render_inputs & _TNL_BIT_COLOR1)
|
if(tnl->render_inputs & _TNL_BIT_COLOR1)
|
||||||
CONFIGURE_AOS(VB->SecondaryColorPtr[0], 0, i_color[1], AOS_FORMAT_FLOAT_COLOR);
|
CONFIGURE_AOS(VB->SecondaryColorPtr[0], 0, i_color[1], AOS_FORMAT_FLOAT_COLOR);
|
||||||
|
|
||||||
if(tnl->render_inputs & _TNL_BIT_FOG)
|
/*if(tnl->render_inputs & _TNL_BIT_FOG) // Causes lock ups when immediate mode is on
|
||||||
CONFIGURE_AOS(VB->FogCoordPtr, 0, i_fog, AOS_FORMAT_FLOAT);
|
CONFIGURE_AOS(VB->FogCoordPtr, 0, i_fog, AOS_FORMAT_FLOAT);*/
|
||||||
|
|
||||||
for(i=0;i < ctx->Const.MaxTextureUnits;i++)
|
for(i=0;i < ctx->Const.MaxTextureUnits;i++)
|
||||||
if(tnl->render_inputs & (_TNL_BIT_TEX0<<i))
|
if(tnl->render_inputs & (_TNL_BIT_TEX0<<i))
|
||||||
|
|
Loading…
Reference in New Issue