Index: viaLowLevel.c =================================================================== --- viaLowLevel.c (revision 686) +++ viaLowLevel.c (working copy) @@ -277,10 +277,14 @@ xl->tsMem.size = 64; xl->tsMem.type = VIA_MEM_VIDEO; if (drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, &xl->tsMem, - sizeof(xl->tsMem)) < 0) + sizeof(xl->tsMem)) < 0) { + fprintf(stderr, "DRM_VIA_ALLOCMEM failed size %d\n", sizeof(xl->tsMem)); return ret; - if (xl->tsMem.size != 64) + } + if (xl->tsMem.size != 64) { + fprintf(stderr, "error: tsMem.size is %d\n", xl->tsMem.size); return -1; + } xl->tsOffset = (xl->tsMem.offset + 31) & ~31; xl->tsP = (CARD32 *) xl->fbAddress + (xl->tsOffset >> 2); xl->curTimeStamp = 1; @@ -1014,8 +1018,10 @@ xl = (XvMCLowLevel *) malloc(sizeof(XvMCLowLevel)); - if (!xl) + if (!xl) { + fprintf(stderr, "malloc failed\n"); return NULL; + } xl->agp_pos = 0; xl->pci_pos = 0; @@ -1031,6 +1037,7 @@ xl->agpSync = 0; ret = viaDMAInitTimeStamp(xl); if (ret) { + fprintf(stderr, "viaDMAInitTimeStamp failed with code %d\n", ret); free(xl); return NULL; } Index: viaLowLevelPro.c =================================================================== --- viaLowLevelPro.c (revision 686) +++ viaLowLevelPro.c (working copy) @@ -1467,6 +1467,9 @@ if (((ret = drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, mem, sizeof(mem))) < 0) || mem->size != size) { + fprintf(stderr, "updateLowLevelBuf failure:\n" + " ret=%d, size=%u, mem->size=%u\n", + ret, size, mem->size); mem->size = 0; return -1; } @@ -1514,6 +1517,7 @@ drmAddress fbAddress, unsigned fbStride, unsigned fbDepth, unsigned width, unsigned height, int useAgp, unsigned chipId) { + int ret; XvMCLowLevel *xl; if (chipId != PCI_CHIP_VT3259 && chipId != PCI_CHIP_VT3364) { @@ -1523,13 +1527,18 @@ } xl = (XvMCLowLevel *) malloc(sizeof(XvMCLowLevel)); - if (!xl) + if (!xl) { + fprintf(stderr, "xl malloc failed\n"); return NULL; + } + xl->state = ll_init; xl->agpBuf.buf = (CARD32 *) malloc(LL_AGP_CMDBUF_SIZE * sizeof(CARD32)); - if (!xl->agpBuf.buf) + if (!xl->agpBuf.buf) { + fprintf(stderr, "xl->agpBuf.buf malloc failed\n"); return releaseXvMCLowLevel(xl); + } xl->state = ll_agpBuf; xl->agpBuf.bufSize = LL_AGP_CMDBUF_SIZE; xl->agpBuf.flushFunc = &agpFlush; @@ -1538,8 +1547,10 @@ xl->agpBuf.waitFlags = 0; xl->pciBuf.buf = (CARD32 *) malloc(LL_PCI_CMDBUF_SIZE * sizeof(CARD32)); - if (!xl->pciBuf.buf) + if (!xl->pciBuf.buf) { + fprintf(stderr, "xl->pciBuf.buf malloc failed\n"); return releaseXvMCLowLevel(xl); + } xl->state = ll_pciBuf; xl->pciBuf.bufSize = LL_PCI_CMDBUF_SIZE; xl->pciBuf.flushFunc = &pciFlush; @@ -1562,15 +1573,19 @@ xl->agpSync = 0; xl->chipId = chipId; - if (viaDMAInitTimeStamp(xl)) + if ((ret = viaDMAInitTimeStamp(xl))) { + fprintf(stderr, "viaDMAInitTimeStamp failed with code %d\n", ret); return releaseXvMCLowLevel(xl); + } xl->state = ll_timeStamp; xl->scale.mem.size = 0; xl->back.mem.size = 0; - if (updateLowLevelBuf(xl, &xl->scale, width, height)) + if ((ret = updateLowLevelBuf(xl, &xl->scale, width, height))) { + fprintf(stderr, "updateLowLevelBuf failed with code %d\n", ret); return releaseXvMCLowLevel(xl); + } xl->state = ll_llBuf; #ifdef VIDEO_DMA