mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
Clean up the code and make it unnecessary to issue extra calls to Setup*Shaders
in the r300_run_immediate_render function. Bumps up glxgears fps count by about 100 points.
This commit is contained in:
parent
8ad31013b2
commit
5f61c6f21f
3 changed files with 11 additions and 26 deletions
|
|
@ -301,6 +301,8 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask, GLboolean all,
|
|||
* but do keep it like this for now.
|
||||
*/
|
||||
r300ResetHwState(r300);
|
||||
/* r300ClearBuffer has trampled all over the hardware state.. */
|
||||
r300->hw.all_dirty=GL_TRUE;
|
||||
}
|
||||
|
||||
void r300Flush(GLcontext * ctx)
|
||||
|
|
|
|||
|
|
@ -242,25 +242,6 @@ static void r300_render_immediate_primitive(r300ContextPtr rmesa,
|
|||
}
|
||||
|
||||
|
||||
static void assign_pipeline(r300ContextPtr rmesa, R300_PIPELINE *p)
|
||||
{
|
||||
/* Watch out ! This is buggy .. but will do for now */
|
||||
|
||||
/* At least one sanity check is in order */
|
||||
if(sizeof(rmesa->state.vertex_shader) != sizeof(p->vertex_shader)){
|
||||
fprintf(stderr, "Aieee ! vertex_shader sizes don't match.\n");
|
||||
exit(-1);
|
||||
}
|
||||
if(sizeof(rmesa->state.pixel_shader) != sizeof(p->pixel_shader)){
|
||||
fprintf(stderr, "Aieee ! vertex_shader sizes don't match.\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
memcpy(&rmesa->state.vertex_shader, &(p->vertex_shader), sizeof(rmesa->state.vertex_shader));
|
||||
memcpy(&rmesa->state.pixel_shader, &(p->pixel_shader), sizeof(rmesa->state.pixel_shader));
|
||||
|
||||
}
|
||||
|
||||
static GLboolean r300_run_immediate_render(GLcontext *ctx,
|
||||
struct tnl_pipeline_stage *stage)
|
||||
{
|
||||
|
|
@ -277,7 +258,7 @@ static GLboolean r300_run_immediate_render(GLcontext *ctx,
|
|||
/* Update texture state - needs to be done only when actually changed..
|
||||
All the time for now.. */
|
||||
/* Flush state - make sure command buffer is nice and large */
|
||||
r300Flush(ctx);
|
||||
//r300Flush(ctx);
|
||||
|
||||
|
||||
if (RADEON_DEBUG == DEBUG_PRIMS)
|
||||
|
|
@ -310,9 +291,6 @@ static GLboolean r300_run_immediate_render(GLcontext *ctx,
|
|||
|
||||
}
|
||||
|
||||
r300SetupVertexShader(rmesa);
|
||||
r300SetupPixelShader(rmesa);
|
||||
|
||||
r300EmitState(rmesa);
|
||||
|
||||
#if 0
|
||||
|
|
|
|||
|
|
@ -1351,11 +1351,12 @@ void r300ResetHwState(r300ContextPtr r300)
|
|||
r300->hw.vof.cmd[R300_VOF_CNTL_0] = R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT
|
||||
| R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT;
|
||||
r300->hw.vof.cmd[R300_VOF_CNTL_1] = 0; /* no textures */
|
||||
#endif
|
||||
|
||||
|
||||
r300->hw.pvs.cmd[R300_PVS_CNTL_1] = 0;
|
||||
r300->hw.pvs.cmd[R300_PVS_CNTL_2] = 0;
|
||||
r300->hw.pvs.cmd[R300_PVS_CNTL_3] = 0;
|
||||
#endif
|
||||
|
||||
r300->hw.gb_enable.cmd[1] = R300_GB_POINT_STUFF_ENABLE
|
||||
| R300_GB_LINE_STUFF_ENABLE
|
||||
|
|
@ -1418,6 +1419,7 @@ void r300ResetHwState(r300ContextPtr r300)
|
|||
|
||||
r300->hw.unk43E8.cmd[1] = 0x00FFFFFF;
|
||||
|
||||
#if 0
|
||||
r300->hw.fp.cmd[R300_FP_CNTL0] = 0;
|
||||
r300->hw.fp.cmd[R300_FP_CNTL1] = 0;
|
||||
r300->hw.fp.cmd[R300_FP_CNTL2] = 0;
|
||||
|
|
@ -1425,13 +1427,15 @@ void r300ResetHwState(r300ContextPtr r300)
|
|||
r300->hw.fp.cmd[R300_FP_NODE1] = 0;
|
||||
r300->hw.fp.cmd[R300_FP_NODE2] = 0;
|
||||
r300->hw.fp.cmd[R300_FP_NODE3] = 0;
|
||||
|
||||
#endif
|
||||
|
||||
r300->hw.unk46A4.cmd[1] = 0x00001B01;
|
||||
r300->hw.unk46A4.cmd[2] = 0x00001B0F;
|
||||
r300->hw.unk46A4.cmd[3] = 0x00001B0F;
|
||||
r300->hw.unk46A4.cmd[4] = 0x00001B0F;
|
||||
r300->hw.unk46A4.cmd[5] = 0x00000001;
|
||||
|
||||
#if 0
|
||||
for(i = 1; i <= 64; ++i) {
|
||||
/* create NOP instructions */
|
||||
r300->hw.fpi[0].cmd[i] = FP_INSTRC(MAD, FP_ARGC(SRC0C_XYZ), FP_ARGC(ONE), FP_ARGC(ZERO));
|
||||
|
|
@ -1439,7 +1443,8 @@ void r300ResetHwState(r300ContextPtr r300)
|
|||
r300->hw.fpi[2].cmd[i] = FP_INSTRA(MAD, FP_ARGA(SRC0A), FP_ARGA(ONE), FP_ARGA(ZERO));
|
||||
r300->hw.fpi[3].cmd[i] = FP_SELA(0,W,NO,FP_TMP(0),0,0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
r300->hw.unk4BC0.cmd[1] = 0;
|
||||
|
||||
r300->hw.unk4BC8.cmd[1] = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue