On 05/20/2013 04:58 AM, Connor Behan wrote: > On 19/05/13 09:48 AM, Pander wrote: >> On 05/18/2013 10:28 PM, Tormod Volden wrote: >>> On Sat, May 18, 2013 at 7:52 PM, Pander wrote: >>>> (manual) patch results in >>>> >>>> [ 74.465] (II) LoadModule: "sisimedia" >>>> [ 74.465] (II) Loading /usr/lib/xorg/modules/drivers/sisimedia_drv.so >>>> [ 74.465] (EE) Failed to load >>>> /usr/lib/xorg/modules/drivers/sisimedia_drv.so: >>>> /usr/lib/xorg/modules/drivers/sisimedia_drv.so: undefined symbol: >>>> SiSUploadToScratch >>>> [ 74.465] (II) UnloadModule: "sisimedia" >>>> [ 74.465] (II) Unloading sisimedia >>>> [ 74.465] (EE) Failed to load module "sisimedia" (loader failed, 7) >>>> >>>> I used this file: http://pastebin.com/XkYfxrQy >>> It would be more useful if you told which file it is and which version >>> instead of paste-binning it. I assume this is the src/sis310_accel.c >>> from git://gitorious.org/xf86-video-sis671/sis-671-fix.git >> Sorry, I forgot indeed that filename. I have removed declarations and >> usage of SiSUploadToScreen, SiSUploadToScratch and SiSDownloadFromScreen. >> >> Do I need to do that also for >> void SiSScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area); >> ? >> > No, that can be left in. Sorry for messing up the patch.
It works. Here is the Xorg log file. Switching to console with CTRL+ALT+F1 etc still doesn't work however. See the top pf the file for loading of the driver and the bottom (probably) for switching to console and back: http://pastebin.com/VA7dVBjL Using Option "UseTiming1366" "true" in the Device section still causes screen to remain black. the log file for that is: http://pastebin.com/7t2XWRpQ Attached are the patches for my current version. I have tried to contact the author via https://gitorious.org/xf86-video-sis671/sis-671-fix but I have not yet received any response. In his log file I see some syncing with Xorg so (in response of Alan's message of the 12th of May, the author might be interested to contribute this to Xorg. I have send him a message again if he can help out with a this. What can be done next to get : - console working - acceleration support - driver shipped with Xorg - other improvements (fix compiler warnings, UseTiming1366, etc.) Regards, Pander > > > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel >
--- sis_accel.c.orig 2013-05-20 11:23:36.280836820 +0200 +++ sis_accel.c 2013-05-19 18:46:07.753545455 +0200 @@ -55,9 +55,6 @@ #ifdef SIS_USE_EXA extern void SiSScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area); -extern Bool SiSUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch); -extern Bool SiSUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst); -extern Bool SiSDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch); #endif /* EXA */ extern UChar SiSGetCopyROP(int rop); @@ -862,8 +859,8 @@ SiSAccelInit(ScreenPtr pScreen) /* Composite not supported */ /* Upload, download to/from Screen */ - pSiS->EXADriverPtr->UploadToScreen = SiSUploadToScreen; - pSiS->EXADriverPtr->DownloadFromScreen = SiSDownloadFromScreen; +// pSiS->EXADriverPtr->UploadToScreen = SiSUploadToScreen; +// pSiS->EXADriverPtr->DownloadFromScreen = SiSDownloadFromScreen; #endif /*end of Xorg>=7.0 EXA Setting*/ } @@ -949,7 +946,7 @@ SiSAccelInit(ScreenPtr pScreen) //#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) // pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch; //#else - pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch; +//svg pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch; //#endif }
--- sis_3daccel.c.orig 2013-05-20 11:23:43.716836455 +0200 +++ sis_3daccel.c 2013-05-19 18:43:46.729552378 +0200 @@ -91,9 +91,6 @@ #ifdef SIS_USE_EXA /* EXA */ void SiSScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area); -Bool SiSUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch); -Bool SiSUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst); -Bool SiSDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch); #endif /* EXA */
--- sis310_accel.c.orig 2013-05-20 11:23:15.780837827 +0200 +++ sis310_accel.c 2013-05-18 18:38:22.582402302 +0200 @@ -101,9 +101,6 @@ static CARD32 SiSDstTextureFormats32[3] #ifdef SIS_USE_EXA /* EXA */ void SiSScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area); -Bool SiSUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch); -Bool SiSUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst); -Bool SiSDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch); #endif /* EXA */ void SISWriteBlitPacket(SISPtr pSiS, CARD32 *packet); @@ -1429,141 +1426,6 @@ SiSDoneComposite(PixmapPtr pDst) } #endif -Bool -SiSUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch) -{ - ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); - SISPtr pSiS = SISPTR(pScrn); - unsigned char *dst = pDst->devPrivate.ptr; - int dst_pitch = exaGetPixmapPitch(pDst); - - (pSiS->SyncAccel)(pScrn); - - if(pDst->drawable.bitsPerPixel < 8) - return FALSE; - - dst += (x * pDst->drawable.bitsPerPixel / 8) + (y * src_pitch); - while(h--) { - SiSMemCopyToVideoRam(pSiS, dst, (unsigned char *)src, - (w * pDst->drawable.bitsPerPixel / 8)); - src += src_pitch; - dst += dst_pitch; - } - - return TRUE; -} - -Bool -SiSUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst) -{ - ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen); - SISPtr pSiS = SISPTR(pScrn); - unsigned char *src, *dst; - int src_pitch = exaGetPixmapPitch(pSrc); - int dst_pitch, size, w, h, bytes; - - w = pSrc->drawable.width; -/* -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0) - dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) + - pSiS->EXADriverPtr->card.offscreenPitch - 1) & - ~(pSiS->EXADriverPtr->card.offscreenPitch - 1); -#elif XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) - dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) + - pSiS->EXADriverPtr->card.pixmapPitchAlign - 1) & - ~(pSiS->EXADriverPtr->card.pixmapPitchAlign - 1); -#else*/ - dst_pitch = ((w * (pSrc->drawable.bitsPerPixel >> 3)) + - pSiS->EXADriverPtr->pixmapPitchAlign - 1) & - ~(pSiS->EXADriverPtr->pixmapPitchAlign - 1); - -//#endif - size = dst_pitch * pSrc->drawable.height; - - if(size > pSiS->exa_scratch->size) - return FALSE; -/* -#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(6,8,2,0,0) - pSiS->exa_scratch_next = (pSiS->exa_scratch_next + - pSiS->EXADriverPtr->card.offscreenByteAlign - 1) & - ~(pSiS->EXADriverPtr->card.offscreenByteAlign - 1); -#elif XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) - pSiS->exa_scratch_next = (pSiS->exa_scratch_next + - pSiS->EXADriverPtr->card.pixmapOffsetAlign - 1) & - ~(pSiS->EXADriverPtr->card.pixmapOffsetAlign - 1); -#else*/ - pSiS->exa_scratch_next = (pSiS->exa_scratch_next + - pSiS->EXADriverPtr->pixmapOffsetAlign - 1) & - ~(pSiS->EXADriverPtr->pixmapOffsetAlign - 1); -//#endif -/* -#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) - if(pSiS->exa_scratch_next + size > - pSiS->exa_scratch->offset + pSiS->exa_scratch->size) { - (pSiS->EXADriverPtr->accel.WaitMarker)(pSrc->drawable.pScreen, 0); - pSiS->exa_scratch_next = pSiS->exa_scratch->offset; - } -#else*/ - if(pSiS->exa_scratch_next + size > - pSiS->exa_scratch->offset + pSiS->exa_scratch->size) { - (pSiS->EXADriverPtr->WaitMarker)(pSrc->drawable.pScreen, 0); - pSiS->exa_scratch_next = pSiS->exa_scratch->offset; - } -//#endif - - memcpy(pDst, pSrc, sizeof(*pDst)); - pDst->devKind = dst_pitch; - -//#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) -// pDst->devPrivate.ptr = pSiS->EXADriverPtr->card.memoryBase + pSiS->exa_scratch_next; -//#else - pDst->devPrivate.ptr = pSiS->EXADriverPtr->memoryBase + pSiS->exa_scratch_next; -//#endif - - pSiS->exa_scratch_next += size; - - src = pSrc->devPrivate.ptr; - src_pitch = exaGetPixmapPitch(pSrc); - dst = pDst->devPrivate.ptr; - - bytes = (src_pitch < dst_pitch) ? src_pitch : dst_pitch; - - h = pSrc->drawable.height; - - (pSiS->SyncAccel)(pScrn); - - while(h--) { - SiSMemCopyToVideoRam(pSiS, dst, src, size); - src += src_pitch; - dst += dst_pitch; - } - - return TRUE; -} - -Bool -SiSDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch) -{ - ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen); - SISPtr pSiS = SISPTR(pScrn); - unsigned char *src = pSrc->devPrivate.ptr; - int src_pitch = exaGetPixmapPitch(pSrc); - int size = src_pitch < dst_pitch ? src_pitch : dst_pitch; - - (pSiS->SyncAccel)(pScrn); - - if(pSrc->drawable.bitsPerPixel < 8) - return FALSE; - - src += (x * pSrc->drawable.bitsPerPixel / 8) + (y * src_pitch); - while(h--) { - SiSMemCopyFromVideoRam(pSiS, (unsigned char *)dst, src, size); - src += src_pitch; - dst += dst_pitch; - } - - return TRUE; -} #endif /* EXA */ /* Helper for xv video blitter and rotation */ @@ -1818,9 +1680,6 @@ SiS315AccelInit(ScreenPtr pScreen) } #endif - /* Upload, download to/from Screen */ - pSiS->EXADriverPtr->accel.UploadToScreen = SiSUploadToScreen; - pSiS->EXADriverPtr->accel.DownloadFromScreen = SiSDownloadFromScreen; #else /*Xorg>= 7.0*/ @@ -1868,9 +1727,6 @@ SiS315AccelInit(ScreenPtr pScreen) } #endif - /* Upload, download to/from Screen */ - pSiS->EXADriverPtr->UploadToScreen = SiSUploadToScreen; - pSiS->EXADriverPtr->DownloadFromScreen = SiSDownloadFromScreen; #endif /*end of Xorg>=7.0*/ } @@ -1953,11 +1809,6 @@ SiS315AccelInit(ScreenPtr pScreen) SiSScratchSave, pSiS); if(pSiS->exa_scratch) { pSiS->exa_scratch_next = pSiS->exa_scratch->offset; - //#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,0,0,0,0) - // pSiS->EXADriverPtr->accel.UploadToScratch = SiSUploadToScratch; - //#else - pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch; - //#endif } } else {
--- sis300_accel.c.orig 2013-05-20 11:23:27.836837235 +0200 +++ sis300_accel.c 2013-05-19 18:45:45.373546553 +0200 @@ -61,10 +61,6 @@ #ifdef SIS_USE_EXA extern void SiSScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area); -extern Bool SiSUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch); -extern Bool SiSUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst); -extern Bool SiSDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, - char *dst, int dst_pitch); #endif /* EXA */ extern UChar SiSGetCopyROP(int rop); @@ -1332,8 +1328,8 @@ SiS300AccelInit(ScreenPtr pScreen) /* Composite not supported */ /* Upload, download to/from Screen */ - pSiS->EXADriverPtr->UploadToScreen = SiSUploadToScreen; - pSiS->EXADriverPtr->DownloadFromScreen = SiSDownloadFromScreen; +// pSiS->EXADriverPtr->UploadToScreen = SiSUploadToScreen; +// pSiS->EXADriverPtr->DownloadFromScreen = SiSDownloadFromScreen; } #endif @@ -1439,7 +1435,7 @@ SiS300AccelInit(ScreenPtr pScreen) #else if(pSiS->exa_scratch) { pSiS->exa_scratch_next = pSiS->exa_scratch->offset; - pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch; +//svg pSiS->EXADriverPtr->UploadToScratch = SiSUploadToScratch; } #endif
signature.asc
Description: OpenPGP digital signature
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel