This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Blank screen after few hours run

After 1 or 2 hours of heavy system load running our Point of Sale simulation mode, the screen goes black even though the applications and X aren’t reporting any errors. After generating a debug build of the TI Graphics SDK, I’m getting some useful error messages:

waitForBlitsCompleteOnDeviceMem: PVR2DQueryBlitsComplete failed with error code: -8 (Blit not complete)

waitForBlitsCompleteOnDeviceMem: PVR2DQueryBlitsComplete failed with error code: -8 (Blit not complete)

waitForBlitsCompleteOnDeviceMem: PVR2DQueryBlitsComplete failed with error code: -8 (Blit not complete)

waitForBlitsCompleteOnDeviceMem: PVR2DQueryBlitsComplete failed with error code: -8 (Blit not complete)

waitForBlitsCompleteOnDeviceMem: PVR2DQueryBlitsComplete failed with error code: -8 (Blit not complete)

….

When I attach to Xorg, I can see where the blits and queryblits calls are originating. This presumably means a previous PVR2DBlt request is pending but it seems this never completes in the error case. Unfortunately, I don’t have source to anything lower in the stack than the Exa???() routines so I’m not sure how to further debug this. I suppose I can log the parameters into the PVR2DBlt calls to see if there are any invalid parameters passed.

 

Breakpoint 1, PVR2DQueryBlitsComplete (hContext=0x1c8610, pMemInfo=0x3821a8,

    uiWaitForComplete=1) at pvr2d/devices/sgx/pvr2dblt.c:1838

1838    pvr2d/devices/sgx/pvr2dblt.c: No such file or directory.

        in pvr2d/devices/sgx/pvr2dblt.c

(gdb) where

#0  PVR2DQueryBlitsComplete (hContext=0x1c8610, pMemInfo=0x3821a8,

    uiWaitForComplete=1) at pvr2d/devices/sgx/pvr2dblt.c:1838

#1  0x404c8538 in waitForBlitsCompleteOnDeviceMem (hPVR2DContext=0x1c8610,

    pMemInfo=0x3821a8)

    at eurasiacon/freedesktop/X.Org/X11R7.4/pvr_video/devices/sgx/pvr_exa_funcs.c:372

#2  0x404c85c8 in waitForBlitsComplete (privPixmap=0x382828)

    at eurasiacon/freedesktop/X.Org/X11R7.4/pvr_video/devices/sgx/pvr_exa_funcs.c:383

#3  0x404caeb0 in sgxPrepareAccess (pPix=0x382798, index=2)

    at eurasiacon/freedesktop/X.Org/X11R7.4/pvr_video/devices/sgx/pvr_exa_funcs.c:1605

#4  0x40722c30 in ExaDoPrepareAccess (pPixmap=0x382798, index=2) at exa.c:351

#5  0x40722df4 in exaPrepareAccess (pDrawable=0x382798, index=2) at exa.c:382

#6  0x40723018 in exaValidateGC (pGC=0x4e6d08, changes=8388607,

    pDrawable=0x4e2880) at exa.c:543

  

Breakpoint 2, PVR2DBlt (hContext=0x1c8610, pBltInfo=0x404dd9a4)

    at pvr2d/devices/sgx/pvr2dblt.c:1727

1727    in pvr2d/devices/sgx/pvr2dblt.c

(gdb) where

#0  PVR2DBlt (hContext=0x1c8610, pBltInfo=0x404dd9a4)

    at pvr2d/devices/sgx/pvr2dblt.c:1727

#1  0x404c8fb4 in sgxSolid (pPixmap=0x4e1ed8, x1=0, y1=0, x2=512, y2=408)

    at eurasiacon/freedesktop/X.Org/X11R7.4/pvr_video/devices/sgx/pvr_exa_funcs.c:675

#2  0x40728274 in exaFillRegionSolid (pDrawable=0x4e1ed8, pRegion=0x4e1720,

    pixel=0, planemask=4294967295, alu=3, clientClipType=0) at exa_accel.c:1038

#3  0x4072b4a4 in exaPolyFillRect (pDrawable=0x4e1ed8, pGC=0x4e2520, nrect=1,

    prect=0x4ba870) at exa_accel.c:817

#4  0x000d3c30 in ?? ()

 

#0  0x4050b830 in PVR2DBlt () from /usr/lib/libpvr2d.so

#1  0x406282ac in exaHWCopyNtoN (pSrcDrawable=0x4fcc40, pDstDrawable=0x4e80d8,

    pGC=0x3825f0, pbox=<value optimized out>, nbox=<value optimized out>,

    dx=-4, dy=-40, reverse=0, upsidedown=0) at exa_accel.c:501

#2  0x40628674 in exaCopyNtoN (pSrcDrawable=0x4fcc40, pDstDrawable=0x4e80d8,

    pGC=0x3825f0, pbox=0xbeb15ab4, nbox=1, dx=-4, dy=-40, reverse=0,

    upsidedown=0, bitplane=0, closure=0x0) at exa_accel.c:584

#3  0x00145498 in miCopyRegion (pSrcDrawable=0x4fcc40, pDstDrawable=0x4e80d8,

    pGC=0x3825f0, pDstRegion=<value optimized out>, dx=-4, dy=-40,

    copyProc=0x4062854c <exaCopyNtoN>, bitPlane=0, closure=0x0) at micopy.c:137

#4  0x001458bc in miDoCopy (pSrcDrawable=<value optimized out>,

    pDstDrawable=0x4e80d8, pGC=0x3825f0, xIn=0, yIn=0, widthSrc=1016,

    heightSrc=724, xOut=4, yOut=40, copyProc=0x4062854c <exaCopyNtoN>,

    bitPlane=0, closure=0x0) at micopy.c:334

#5  0x406276f0 in exaCopyArea (pSrcDrawable=<value optimized out>,

    pDstDrawable=<value optimized out>, pGC=<value optimized out>,

    srcx=<value optimized out>, srcy=0, width=1016, height=724, dstx=0, dsty=0)

    at exa_accel.c:608

#6  0x000d5ad0 in damageCopyArea (pSrc=0x4fcc40, pDst=0x4e80d8, pGC=0x3825f0,

    srcx=0, srcy=0, width=1016, height=724, dstx=0, dsty=0) at damage.c:912

#7  0x404c6b20 in ?? () from /usr/lib/xorg/modules/pvr_drv.so

#8  0x404c6b20 in ?? () from /usr/lib/xorg/modules/pvr_drv.so

Backtrace stopped: previous frame identical to this frame (corrupt stack?)