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 > > > > _______________________________________________ > [email protected]: 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
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
