<div dir="ltr"><div><div>Hi,<br><br></div>I've reduced the set of cases that cause the copy areas to fail to single logic condition on void etnaviv_accel_CopyNtoN(...).<br></div>I was able to fix the screen with:<br>...<br>if (pSrc->height != pDst->height) {<br> syslog(LOG_WARNING, "Mismatch src.w=%d, dst.w=%d\n", pSrc->height, pDst->height);<br> goto fallback;<br><div><div><div class="gmail_extra">}<br></div><div class="gmail_extra">...</div><div class="gmail_extra"><br></div><div class="gmail_extra">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.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Situations include:</div><div class="gmail_extra">Aug 30 17:34:14 picolo etnaviv[19598]: Mismatch src.w=122, dst.w=768<br></div><div class="gmail_extra">Aug 30 17:34:14 picolo etnaviv[19598]: Mismatch src.w=481, dst.w=768<br></div><div class="gmail_extra">Aug 30 17:34:15 picolo etnaviv[19598]: Mismatch src.w=21, dst.w=1<br>Aug 30 17:34:15 picolo etnaviv[19598]: Mismatch src.w=21, dst.w=10<br></div><div class="gmail_extra">Aug 30 17:34:25 picolo etnaviv[19598]: Mismatch src.w=24, dst.w=25<br></div><div class="gmail_extra">Aug 30 17:34:33 picolo etnaviv[19598]: Mismatch src.w=40, dst.w=768<br>Aug 30 17:34:33 picolo etnaviv[19598]: Mismatch src.w=768, dst.w=40<br>Aug 30 17:34:34 picolo etnaviv[19598]: Mismatch src.w=1, dst.w=25</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">Luís</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 30, 2017 at 2:51 PM, Luís Mendes <span dir="ltr"><<a href="mailto:luis.p.mendes@gmail.com" target="_blank">luis.p.mendes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Hi, <br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 30, 2017 at 1:37 PM, Luís Mendes <span dir="ltr"><<a href="mailto:luis.p.mendes@gmail.com" target="_blank">luis.p.mendes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Lucas, Russel,<span class="gmail-"><br><br><div><div class="gmail_extra"><div class="gmail_quote"><span class="gmail-m_-4813691240225898128gmail-"></span>In summay I believe to have found three different issues: <br><div>1 - Screen blanking on kernels >= 4.12.0</div><div>2 - MMU faults when login in into Ubuntu Mate 17.04 (no screen corruption is visible)<br></div><div>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.<br></div><div> </div></div></div></div></span></div></blockquote><div><br></div><div>Regarding issue 3), I have found that all the missing areas that I am observing have h < 25 and w >= 40:</div><div>Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1ebf2a0,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0<br>Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1d95f50,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0<br>Aug 30 13:46:51 picolo etnaviv[5674]: pSrc=0x1dc6540,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0</div><div>Aug 30 13:46:53 picolo etnaviv[5674]: pSrc=0x1edb430,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:46:53 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0<br>Aug 30 13:47:04 picolo etnaviv[5674]: pSrc=0x1d2bc18,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0<br>Aug 30 13:47:04 picolo etnaviv[5674]: pSrc=0x1d2bc18,pDst=0x1dda8e8,<wbr>pGC=0x1e13eb8<br>Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=<wbr>0,dsty=0<br></div><div><br></div><div> I was able to temporaly log and fix this issue by disabling acceleration for areas with such geometries.</div><div>The code I used was:</div>//Code Responsible for missing text areas...<span class="gmail-"><br>static RegionPtr<br>etnaviv_CopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,<br> int srcx, int srcy, int w, int h, int dstx, int dsty)<br></span>{<br> int unaccel=0;<br> struct etnaviv *etnaviv = etnaviv_get_screen_priv(pDst-><wbr>pScreen);<br><br> assert(etnaviv_GC_can_accel(<wbr>pGC, pDst));<br><br> if (h < 25 && w >= 40) {<br> syslog(LOG_WARNING, "pSrc=%p,pDst=%p,pGC=%p\n", pSrc, pDst, pGC);<br> syslog(LOG_WARNING, "srcx=%d,srcy=%d,w=%d,h=%d,<wbr>dstx=%d,dsty=%d\n", srcx, srcy, w, h, dstx, dsty);<br> unaccel = 1; //Disable acceleration for these geometries...<br> }<br><br> if (etnaviv->force_fallback || unaccel == 1)<br> return unaccel_CopyArea(pSrc, pDst, pGC, srcx, srcy, w, h,<br> dstx, dsty);<br><br> return miDoCopy(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,<br> etnaviv_accel_CopyNtoN, 0, NULL);<br>}</div><div class="gmail_quote"><br></div><div class="gmail_quote">Regards,</div><div class="gmail_quote">Luís<br></div></div></div>
</blockquote></div><br></div></div></div></div>