[Mesa-dev] [PATCH] winsys/radeon: fix nop packet padding v2.
Jerome Glisse
j.glisse at gmail.com
Fri Jul 25 06:50:04 PDT 2014
On Thu, Jul 24, 2014 at 8:07 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
> On Thu, Jul 24, 2014 at 6:28 PM, <j.glisse at gmail.com> wrote:
> > 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.
>
> We don't need this change if we use the updated firmware in my 3.17
> tree. Looks like the original hawaii CP ucode didn't support the new
> 0xffff1000 special case NOP packet.
>
>
I would rather have the nop2 packet solution than yet another is accel
working. Several
reasons :
- 3.16 will be out soon and has most important fix
- nop2 packet can easily be backported to stable mesa
- testing for 3.16 is easy
So i think it would be cleaner to just do nop2 and 3.16.
> Alex
>
> >
> > 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
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140725/03d4ed45/attachment-0001.html>
More information about the mesa-dev
mailing list