summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2007-04-10 09:32:13 +1000
committerDave Airlie <airlied@linux.ie>2007-04-10 09:32:13 +1000
commite0bbf463428ac51f3ba022b23d93d47b1cfd152d (patch)
treebbbdebb812013e97cb0c725ed898ec43420c06c9 /src/mesa
parent702c8f1e6ca51aef356e89ee9c5f2e99a4191a8a (diff)
r300: don't enable VAP/TCL on cards that don't support it
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/r300/r300_reg.h1
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_reg.h b/src/mesa/drivers/dri/r300/r300_reg.h
index 1f65f9a7e7..b296aaa07a 100644
--- a/src/mesa/drivers/dri/r300/r300_reg.h
+++ b/src/mesa/drivers/dri/r300/r300_reg.h
@@ -145,6 +145,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
# define R300_VC_NO_SWAP (0 << 0)
# define R300_VC_16BIT_SWAP (1 << 0)
# define R300_VC_32BIT_SWAP (2 << 0)
+# define R300_VAP_TCL_BYPASS (1 << 8)
/* gap */
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index ff3c51c5ed..545b2f03aa 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -2023,6 +2023,10 @@ void r300ResetHwState(r300ContextPtr r300)
else
r300->hw.vap_cntl_status.cmd[1] = 0x00000002;
+ /* disable VAP/TCL on non-TCL capable chips */
+ if (!(r300->radeon.radeonScreen->chip_flags & RADEON_CHIPSET_TCL))
+ r300->hw.vap_cntl_status.cmd[1] |= R300_VAP_TCL_BYPASS;
+
#if 0 /* Done in setup routing */
((drm_r300_cmd_header_t*)r300->hw.vir[0].cmd)->packet0.count = 1;
r300->hw.vir[0].cmd[1] = 0x21030003;