diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-02-27 11:34:20 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-02-27 11:34:20 -0500 |
commit | 6f201b626aa31548537a968c13f073a7a02911f3 (patch) | |
tree | 4a8430fdf369ddd5d27893cd9d17740127216421 | |
parent | 62f401aae135c0fd4fdc9536c11f5563080714c7 (diff) |
Only pad the IB on r6xx+r6xx-r7xx-support
-rw-r--r-- | src/rhd_cs.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/rhd_cs.c b/src/rhd_cs.c index 5bbed40..1d707ab 100644 --- a/src/rhd_cs.c +++ b/src/rhd_cs.c @@ -210,16 +210,19 @@ struct RhdDRMCP { static void DRMCPFlush(struct RhdCS *CS) { + RHDPtr rhdPtr = RHDPTRI(CS); struct RhdDRMCP *CP = CS->Private; struct drm_radeon_indirect indirect; if (!CP->DrmBuffer) return; - while ((CS->Wptr * 4) & 0x3c) { - RHDCSGrab(CS, 1); - RHDCSWrite(CS, CP_PACKET2()); - RHDCSAdvance(CS); + if (rhdPtr->ChipSet >= RHD_R600) { + while ((CS->Wptr * 4) & 0x3c) { + RHDCSGrab(CS, 1); + RHDCSWrite(CS, CP_PACKET2()); + RHDCSAdvance(CS); + } } indirect.idx = CP->DrmBuffer->idx; @@ -247,13 +250,16 @@ DRMCPFlush(struct RhdCS *CS) static void DRMCPBufferDiscard(struct RhdCS *CS) { + RHDPtr rhdPtr = RHDPTRI(CS); struct RhdDRMCP *CP = CS->Private; struct drm_radeon_indirect indirect; - while ((CS->Wptr * 4) & 0x3c){ - RHDCSGrab(CS, 1); - RHDCSWrite(CS, CP_PACKET2()); - RHDCSAdvance(CS); + if (rhdPtr->ChipSet >= RHD_R600) { + while ((CS->Wptr * 4) & 0x3c){ + RHDCSGrab(CS, 1); + RHDCSWrite(CS, CP_PACKET2()); + RHDCSAdvance(CS); + } } indirect.idx = CP->DrmBuffer->idx; |