summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Hopf <mhopf@suse.de>2009-02-14 23:54:01 +0100
committerMatthias Hopf <mhopf@suse.de>2009-02-16 14:09:33 +0100
commit903a1f0d69c8f31082655a50a45b59e3386bd0f1 (patch)
tree969f3aedcffe8e86a4175846d03d7a2d85587ba9
parent72840e2876c8dfd22ed087d6a25ba2edf3660cac (diff)
Workaround for bug in R600.
-rw-r--r--r600_init.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/r600_init.c b/r600_init.c
index 16e6553..51be6dc 100644
--- a/r600_init.c
+++ b/r600_init.c
@@ -323,7 +323,8 @@ void vs_setup(adapter_t *adapt, shader_config_t *vs_conf)
sq_pgm_resources |= SQ_PGM_RESOURCES_VS__DX10_CLAMP_bit;
if (vs_conf->fetch_cache_lines)
sq_pgm_resources |= (vs_conf->fetch_cache_lines << FETCH_CACHE_LINES_shift);
- if (vs_conf->uncached_first_inst)
+ if (vs_conf->uncached_first_inst ||
+ adapt->chipset == CHIPSET_R600) // Workaround for bug in R600
sq_pgm_resources |= UNCACHED_FIRST_INST_bit;
EREG (SQ_PGM_START_VS, vs_conf->shader_addr >> 8);
@@ -342,7 +343,8 @@ void ps_setup(adapter_t *adapt, shader_config_t *ps_conf)
sq_pgm_resources |= SQ_PGM_RESOURCES_PS__DX10_CLAMP_bit;
if (ps_conf->fetch_cache_lines)
sq_pgm_resources |= (ps_conf->fetch_cache_lines << FETCH_CACHE_LINES_shift);
- if (ps_conf->uncached_first_inst)
+ if (ps_conf->uncached_first_inst ||
+ adapt->chipset == CHIPSET_R600) // Workaround for bug in R600
sq_pgm_resources |= UNCACHED_FIRST_INST_bit;
if (ps_conf->clamp_consts)
sq_pgm_resources |= CLAMP_CONSTS_bit;