--- glx/glxdriswrast.c.orig 2021-07-29 18:48:14 UTC +++ glx/glxdriswrast.c @@ -50,6 +50,8 @@ #include "extension_string.h" +#include "xf86.h" + /* RTLD_LOCAL is not defined on Cygwin */ #ifdef __CYGWIN__ #ifndef RTLD_LOCAL @@ -332,11 +334,29 @@ swrastGetImage(__DRIdrawable * draw, } } +static void +swrastGetRGBOffsets(void *loaderPrivate, int *offsets) +{ + __GLXDRIscreen *gscreen = loaderPrivate; + ScrnInfoPtr scrn = xf86ScreenToScrn(gscreen->base.pScreen); + + offsets[0] = scrn->offset.red; + offsets[1] = scrn->offset.green; + offsets[2] = scrn->offset.blue; +} + static const __DRIswrastLoaderExtension swrastLoaderExtension = { - {__DRI_SWRAST_LOADER, 1}, + {__DRI_SWRAST_LOADER, 7}, swrastGetDrawableInfo, swrastPutImage, - swrastGetImage + swrastGetImage, + NULL, /* putImage2 */ + NULL, /* getImage2 */ + NULL, /* putImageShm */ + NULL, /* getImageShm */ + NULL, /* putImageShm2 */ + NULL, /* getImageShm2 */ + swrastGetRGBOffsets }; static const __DRIextension *loader_extensions[] = {