etnaviv-gpu 134000.gpu: MMU fault status 0x00000002 on i.XM6 Quad Plus
Luís Mendes
luis.p.mendes at gmail.com
Wed Aug 30 17:40:09 UTC 2017
Hi,
I've reduced the set of cases that cause the copy areas to fail to single
logic condition on void etnaviv_accel_CopyNtoN(...).
I was able to fix the screen with:
...
if (pSrc->height != pDst->height) {
syslog(LOG_WARNING, "Mismatch src.w=%d, dst.w=%d\n", pSrc->height,
pDst->height);
goto fallback;
}
...
What is happening is that areas that fail to copy have a pSrc.height value
of 24 pixels, but pDst.height value of 25 pixels, etc.
Situations include:
Aug 30 17:34:14 picolo etnaviv[19598]: Mismatch src.w=122, dst.w=768
Aug 30 17:34:14 picolo etnaviv[19598]: Mismatch src.w=481, dst.w=768
Aug 30 17:34:15 picolo etnaviv[19598]: Mismatch src.w=21, dst.w=1
Aug 30 17:34:15 picolo etnaviv[19598]: Mismatch src.w=21, dst.w=10
Aug 30 17:34:25 picolo etnaviv[19598]: Mismatch src.w=24, dst.w=25
Aug 30 17:34:33 picolo etnaviv[19598]: Mismatch src.w=40, dst.w=768
Aug 30 17:34:33 picolo etnaviv[19598]: Mismatch src.w=768, dst.w=40
Aug 30 17:34:34 picolo etnaviv[19598]: Mismatch src.w=1, dst.w=25
Regards,
Luís
On Wed, Aug 30, 2017 at 2:51 PM, Luís Mendes <luis.p.mendes at gmail.com>
wrote:
> Hi,
>
> On Wed, Aug 30, 2017 at 1:37 PM, Luís Mendes <luis.p.mendes at gmail.com>
> wrote:
>
>> Hi Lucas, Russel,
>>
>> In summay I believe to have found three different issues:
>> 1 - Screen blanking on kernels >= 4.12.0
>> 2 - MMU faults when login in into Ubuntu Mate 17.04 (no screen corruption
>> is visible)
>> 3 - Bug on etnaviv_accel_CopyNtoN(...) which fails to copy some areas
>> containing text into the desktop, X menus and dialog windows. I am trying
>> to collect additional data on this one.
>>
>>
>
> Regarding issue 3), I have found that all the missing areas that I am
> observing have h < 25 and w >= 40:
> Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1ebf2a0,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
> Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1d95f50,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
> Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1dc6540,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
> Aug 30 13:46:53 picolo etnaviv[5674]: pSrc=0x1edb430,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:46:53 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
> Aug 30 13:47:04 picolo etnaviv[5674]: pSrc=0x1d2bc18,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
> Aug 30 13:47:04 picolo etnaviv[5674]: pSrc=0x1d2bc18,pDst=0x1dda8e8,
> pGC=0x1e13eb8
> Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=
> 0,dsty=0
>
> I was able to temporaly log and fix this issue by disabling acceleration
> for areas with such geometries.
> The code I used was:
> //Code Responsible for missing text areas...
> static RegionPtr
> etnaviv_CopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
> int srcx, int srcy, int w, int h, int dstx, int dsty)
> {
> int unaccel=0;
> struct etnaviv *etnaviv = etnaviv_get_screen_priv(pDst->pScreen);
>
> assert(etnaviv_GC_can_accel(pGC, pDst));
>
> if (h < 25 && w >= 40) {
> syslog(LOG_WARNING, "pSrc=%p,pDst=%p,pGC=%p\n", pSrc, pDst, pGC);
> syslog(LOG_WARNING, "srcx=%d,srcy=%d,w=%d,h=%d,dstx=%d,dsty=%d\n",
> srcx, srcy, w, h, dstx, dsty);
> unaccel = 1; //Disable acceleration for these geometries...
> }
>
> if (etnaviv->force_fallback || unaccel == 1)
> return unaccel_CopyArea(pSrc, pDst, pGC, srcx, srcy, w, h,
> dstx, dsty);
>
> return miDoCopy(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
> etnaviv_accel_CopyNtoN, 0, NULL);
> }
>
> Regards,
> Luís
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/etnaviv/attachments/20170830/3398c632/attachment.html>
More information about the etnaviv
mailing list