r300-gallium: Fix hardlocks on trivial/clear.

I'm so happy I could cry.
This commit is contained in:
Corbin Simpson 2009-02-28 13:27:28 -08:00
parent 731aa326ff
commit ba5f184829
2 changed files with 23 additions and 1 deletions

View file

@ -323,4 +323,25 @@ static INLINE uint32_t r300_translate_zsformat(enum pipe_format format)
return 0;
}
/* Non-CSO state. (For now.) */
static INLINE uint32_t r300_translate_gb_pipes(int pipe_count)
{
switch (pipe_count) {
case 1:
return R300_GB_TILE_PIPE_COUNT_RV300;
break;
case 2:
return R300_GB_TILE_PIPE_COUNT_R300;
break;
case 3:
return R300_GB_TILE_PIPE_COUNT_R420_3P;
break;
case 4:
return R300_GB_TILE_PIPE_COUNT_R420;
break;
}
return 0;
}
#endif /* R300_STATE_INLINES_H */

View file

@ -97,7 +97,8 @@ static void r300_surface_fill(struct pipe_context* pipe,
OUT_CS_REG(R300_GB_MSPOS0, 0x66666666);
OUT_CS_REG(R300_GB_MSPOS1, 0x66666666);
/* XXX why doesn't classic Mesa write the number of pipes, too? */
OUT_CS_REG(R300_GB_TILE_CONFIG, R300_GB_TILE_ENABLE |
OUT_CS_REG(R300_GB_TILE_CONFIG, R300_GB_TILE_DISABLE |
r300_translate_gb_pipes(caps->num_frag_pipes) |
R300_GB_TILE_SIZE_16);
OUT_CS_REG(R300_GB_SELECT, R300_GB_FOG_SELECT_1_1_W);
OUT_CS_REG(R300_GB_AA_CONFIG, 0x0);