diff options
Diffstat (limited to 'user/xf86-video-sis/glx.patch')
-rw-r--r-- | user/xf86-video-sis/glx.patch | 302 |
1 files changed, 302 insertions, 0 deletions
diff --git a/user/xf86-video-sis/glx.patch b/user/xf86-video-sis/glx.patch new file mode 100644 index 000000000..f3cad9fad --- /dev/null +++ b/user/xf86-video-sis/glx.patch @@ -0,0 +1,302 @@ +From a50b2b3412dd8e7f3916acb142c942e85ffcb3e5 Mon Sep 17 00:00:00 2001 +From: Emil Velikov <emil.velikov@collabora.com> +Date: Mon, 17 Jul 2017 12:01:57 +0100 +Subject: [PATCH 2/2] xf86-video-sis: remove the GlxSetVisualConfigs stub and + friends + +The function was an empty since 2008 at least. Remove it alongside the +unused GLX visuals code. + +With this all the GL/GLX dependencies in the driver are gone. + +Cc: Connor Behan <connor.behan@gmail.com> +Cc: Thomas Klausner <wiz@NetBSD.org> +Signed-off-by: Emil Velikov <emil.velikov@collabora.com> +--- + src/sis.h | 4 -- + src/sis_dri.c | 161 +------------------------------------------------------ + src/sis_dri.h | 5 -- + src/sis_driver.c | 10 +--- + 4 files changed, 3 insertions(+), 177 deletions(-) + +diff --git a/src/sis.h b/src/sis.h +index 385b784..2b764cb 100644 +--- a/src/sis.h ++++ b/src/sis.h +@@ -197,7 +197,6 @@ + #include "sarea.h" + #define _XF86DRI_SERVER_ + #include "dri.h" +-#include "GL/glxint.h" + #include "sis_dri.h" + #endif /* SISDRI */ + +@@ -1198,9 +1197,6 @@ typedef struct { + Bool directRenderingEnabled; + DRIInfoPtr pDRIInfo; + int drmSubFD; +- int numVisualConfigs; +- __GLXvisualConfig* pVisualConfigs; +- SISConfigPrivPtr pVisualConfigsPriv; + SISRegRec DRContextRegs; + #endif + +diff --git a/src/sis_dri.c b/src/sis_dri.c +index 9a045a2..5778c51 100644 +--- a/src/sis_dri.c ++++ b/src/sis_dri.c +@@ -44,7 +44,6 @@ + #include "sis_regs.h" + + #include "fb.h" +-#include "GL/glxtokens.h" + + #ifndef SISHAVEDRMWRITE + # if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0) +@@ -96,12 +95,6 @@ extern char *DRICreatePCIBusID(pciVideoPtr PciInfo); + while( (SIS_MMIO_IN16(pSiS->IOBase, Q_STATUS+2) & 0x8000) != 0x8000){}; \ + } + +-extern void GlxSetVisualConfigs( +- int nconfigs, +- __GLXvisualConfig *configs, +- void **configprivs +-); +- + /* The kernel's "sis" DRM module handles all chipsets */ + static char SISKernelDriverName[] = "sis"; + +@@ -110,7 +103,6 @@ static char SISClientDriverNameSiS300[] = "sis"; /* 300, 540, 630, 730 */ + static char SISClientDriverNameSiS315[] = "sis315"; /* All of 315/330 series */ + static char SISClientDriverNameXGI[] = "xgi"; /* XGI V3, V5, V8 */ + +-static Bool SISInitVisualConfigs(ScreenPtr pScreen); + static Bool SISCreateContext(ScreenPtr pScreen, VisualPtr visual, + drm_context_t hwContext, void *pVisualConfigPriv, + DRIContextType contextStore); +@@ -125,141 +117,6 @@ static void SISDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index); + static void SISDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, + RegionPtr prgnSrc, CARD32 index); + +-static Bool +-SISInitVisualConfigs(ScreenPtr pScreen) +-{ +- ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); +- SISPtr pSIS = SISPTR(pScrn); +- int numConfigs = 0; +- __GLXvisualConfig *pConfigs = 0; +- SISConfigPrivPtr pSISConfigs = 0; +- SISConfigPrivPtr *pSISConfigPtrs = 0; +- int i, db, z_stencil, accum; +- Bool useZ16 = FALSE; +- +- if(getenv("SIS_FORCE_Z16")) { +- useZ16 = TRUE; +- } +- +- switch (pScrn->bitsPerPixel) { +- case 8: +- case 24: +- break; +- case 16: +- case 32: +- numConfigs = (useZ16) ? 8 : 16; +- +- if(!(pConfigs = (__GLXvisualConfig*)calloc(sizeof(__GLXvisualConfig), +- numConfigs))) { +- return FALSE; +- } +- if(!(pSISConfigs = (SISConfigPrivPtr)calloc(sizeof(SISConfigPrivRec), +- numConfigs))) { +- free(pConfigs); +- return FALSE; +- } +- if(!(pSISConfigPtrs = (SISConfigPrivPtr*)calloc(sizeof(SISConfigPrivPtr), +- numConfigs))) { +- free(pConfigs); +- free(pSISConfigs); +- return FALSE; +- } +- for(i=0; i<numConfigs; i++) pSISConfigPtrs[i] = &pSISConfigs[i]; +- +- i = 0; +- for(accum = 0; accum <= 1; accum++) { +- for(z_stencil = 0; z_stencil < (useZ16 ? 2 : 4); z_stencil++) { +- for(db = 0; db <= 1; db++) { +- pConfigs[i].vid = -1; +- pConfigs[i].class = -1; +- pConfigs[i].rgba = TRUE; +- if(pScrn->bitsPerPixel == 16) { +- pConfigs[i].redSize = 5; +- pConfigs[i].greenSize = 6; +- pConfigs[i].blueSize = 5; +- pConfigs[i].alphaSize = 0; +- pConfigs[i].redMask = 0x0000F800; +- pConfigs[i].greenMask = 0x000007E0; +- pConfigs[i].blueMask = 0x0000001F; +- pConfigs[i].alphaMask = 0x00000000; +- } else { +- pConfigs[i].redSize = 8; +- pConfigs[i].greenSize = 8; +- pConfigs[i].blueSize = 8; +- pConfigs[i].alphaSize = 8; +- pConfigs[i].redMask = 0x00FF0000; +- pConfigs[i].greenMask = 0x0000FF00; +- pConfigs[i].blueMask = 0x000000FF; +- pConfigs[i].alphaMask = 0xFF000000; +- } +- if(accum) { +- pConfigs[i].accumRedSize = 16; +- pConfigs[i].accumGreenSize = 16; +- pConfigs[i].accumBlueSize = 16; +- if(pConfigs[i].alphaMask == 0) +- pConfigs[i].accumAlphaSize = 0; +- else +- pConfigs[i].accumAlphaSize = 16; +- } else { +- pConfigs[i].accumRedSize = 0; +- pConfigs[i].accumGreenSize = 0; +- pConfigs[i].accumBlueSize = 0; +- pConfigs[i].accumAlphaSize = 0; +- } +- if(db) pConfigs[i].doubleBuffer = TRUE; +- else pConfigs[i].doubleBuffer = FALSE; +- pConfigs[i].stereo = FALSE; +- pConfigs[i].bufferSize = -1; +- switch(z_stencil) { +- case 0: +- pConfigs[i].depthSize = 0; +- pConfigs[i].stencilSize = 0; +- break; +- case 1: +- pConfigs[i].depthSize = 16; +- pConfigs[i].stencilSize = 0; +- break; +- case 2: +- pConfigs[i].depthSize = 32; +- pConfigs[i].stencilSize = 0; +- break; +- case 3: +- pConfigs[i].depthSize = 24; +- pConfigs[i].stencilSize = 8; +- break; +- } +- pConfigs[i].auxBuffers = 0; +- pConfigs[i].level = 0; +- if(pConfigs[i].accumRedSize != 0) +- pConfigs[i].visualRating = GLX_SLOW_CONFIG; +- else +- pConfigs[i].visualRating = GLX_NONE_EXT; +- pConfigs[i].transparentPixel = GLX_NONE; +- pConfigs[i].transparentRed = 0; +- pConfigs[i].transparentGreen = 0; +- pConfigs[i].transparentBlue = 0; +- pConfigs[i].transparentAlpha = 0; +- pConfigs[i].transparentIndex = 0; +- i++; +- } +- } +- } +- if(i != numConfigs) { +- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, +- "[dri] Incorrect initialization of visuals. Disabling the DRI.\n"); +- return FALSE; +- } +- break; +- } +- +- pSIS->numVisualConfigs = numConfigs; +- pSIS->pVisualConfigs = pConfigs; +- pSIS->pVisualConfigsPriv = pSISConfigs; +- GlxSetVisualConfigs(numConfigs, pConfigs, (void**)pSISConfigPtrs); +- +- return TRUE; +-} +- + Bool + SISDRIScreenInit(ScreenPtr pScreen) + { +@@ -276,10 +133,9 @@ SISDRIScreenInit(ScreenPtr pScreen) + pSIS->cmdQ_SharedWritePortBackup = NULL; + #endif + +- /* Check that the GLX, DRI, and DRM modules have been loaded by testing ++ /* Check that the DRI, and DRM modules have been loaded by testing + * for canonical symbols in each module. + */ +- if(!xf86LoaderCheckSymbol("GlxSetVisualConfigs")) return FALSE; + if(!xf86LoaderCheckSymbol("drmAvailable")) return FALSE; + if(!xf86LoaderCheckSymbol("DRIQueryVersion")) { + xf86DrvMsg(pScreen->myNum, X_ERROR, +@@ -651,11 +507,6 @@ SISDRIScreenInit(ScreenPtr pScreen) + + pSISDRI->irqEnabled = pSIS->irqEnabled; + +- if(!(SISInitVisualConfigs(pScreen))) { +- SISDRICloseScreen(pScreen); +- return FALSE; +- } +- + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[dri] Visual configs initialized\n" ); + + return TRUE; +@@ -801,16 +652,6 @@ SISDRICloseScreen(ScreenPtr pScreen) + pSIS->pDRIInfo = NULL; + } + +- if(pSIS->pVisualConfigs) { +- free(pSIS->pVisualConfigs); +- pSIS->pVisualConfigs = NULL; +- } +- +- if(pSIS->pVisualConfigsPriv) { +- free(pSIS->pVisualConfigsPriv); +- pSIS->pVisualConfigsPriv = NULL; +- } +- + } + + /* TODO: xserver receives driver's swapping event and do something +diff --git a/src/sis_dri.h b/src/sis_dri.h +index 399d757..ce9039c 100644 +--- a/src/sis_dri.h ++++ b/src/sis_dri.h +@@ -103,11 +103,6 @@ typedef struct { + #define AGPVtxBufOffset AGPCmdBufOffset + #define AGPVtxBufSize AGPCmdBufSize + +-typedef struct { +- /* Nothing here yet */ +- int dummy; +-} SISConfigPrivRec, *SISConfigPrivPtr; +- + typedef struct { + /* Nothing here yet */ + int dummy; +diff --git a/src/sis_driver.c b/src/sis_driver.c +index 513f68b..4e51e2e 100644 +--- a/src/sis_driver.c ++++ b/src/sis_driver.c +@@ -6901,17 +6901,11 @@ SISPreInit(ScrnInfoPtr pScrn, int flags) + } + } + +- /* Load the dri and glx modules if requested. */ ++ /* Load the dri modules if requested. */ + #ifdef SISDRI + if(pSiS->loadDRI) { + if(!xf86LoaderCheckSymbol("DRIScreenInit")) { +- if(xf86LoadSubModule(pScrn, "dri")) { +- if(!xf86LoaderCheckSymbol("GlxSetVisualConfigs")) { +- if(!xf86LoadSubModule(pScrn, "glx")) { +- SISErrorLog(pScrn, "Failed to load glx module\n"); +- } +- } +- } else { ++ if(!xf86LoadSubModule(pScrn, "dri")) { + SISErrorLog(pScrn, "Failed to load dri module\n"); + } + } +-- +2.16.2 + |