[Mesa-dev] [PATCH] winsys/radeon: fix nop packet padding v2.

j.glisse at gmail.com j.glisse at gmail.com
Thu Jul 24 15:28:22 PDT 2014


From: Jerome Glisse <jglisse at redhat.com>

The ucode we got for hawaii does not support 0xffff1000 special nop
packet type 3 and this leads to gpu reading invalid memory. As packet
type 2 still exist just use packet type 2.

Note this only partialy fix hawaii issues and some zbuffer tiling
issues are still present.

Changed since v1:
  - use packet type 2 instead of packet 3.

Signed-off-by: Jérôme Glisse <jglisse at redhat.com>
---
 src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
index a06ecb2..9ac7d0e 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
@@ -447,13 +447,8 @@ static void radeon_drm_cs_flush(struct radeon_winsys_cs *rcs,
         /* pad DMA ring to 8 DWs to meet CP fetch alignment requirements
          * r6xx, requires at least 4 dw alignment to avoid a hw bug.
          */
-        if (cs->ws->info.chip_class <= SI) {
-            while (rcs->cdw & 7)
-                OUT_CS(&cs->base, 0x80000000); /* type2 nop packet */
-        } else {
-            while (rcs->cdw & 7)
-                OUT_CS(&cs->base, 0xffff1000); /* type3 nop packet */
-        }
+        while (rcs->cdw & 7)
+            OUT_CS(&cs->base, 0x80000000); /* type2 nop packet */
         break;
     case RING_UVD:
         while (rcs->cdw & 15)
-- 
1.8.3.1



More information about the mesa-dev mailing list