Compare commits
3 commits
rawhide
...
ajax/upstr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b143056e8e | ||
|
|
a97ca48fea | ||
|
|
4f3a355e77 |
5 changed files with 589 additions and 36 deletions
101
0001-glx-Fix-glXQueryContext-for-GLX_FBCONFIG_ID-and-GLX_.patch
Normal file
101
0001-glx-Fix-glXQueryContext-for-GLX_FBCONFIG_ID-and-GLX_.patch
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
From 13004bed8ce5ab9de6650d371d073daf693bde63 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 21 Sep 2017 12:26:50 -0400
|
||||
Subject: [PATCH xserver 1/2] glx: Fix glXQueryContext for GLX_FBCONFIG_ID and
|
||||
GLX_RENDER_TYPE (v2)
|
||||
|
||||
Just never filled in, oops. Seems to have gone unnoticed because
|
||||
normally glXQueryContext simply returns the values filled in by the
|
||||
client library when the context was created. The only path by which you
|
||||
normally get to a GLXQueryContext request is glXImportContext, and then
|
||||
only if the context is already indirect.
|
||||
|
||||
However, that's a statement about Mesa's libGL (and anything else that
|
||||
inherited that bit of the SGI SI more or less intact). Nothing prevents
|
||||
a mischeivous client from issuing that request of a direct context, and
|
||||
if they did we'd be in trouble because we never bothered to preserve the
|
||||
associated fbconfig in the context state, so we'd crash looking up
|
||||
GLX_VISUAL_ID_EXT. So let's fix that too.
|
||||
|
||||
v2: Fixed missing preservation of the config in DRI2 (Eric Anholt)
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
glx/glxcmds.c | 7 ++++++-
|
||||
glx/glxdri2.c | 1 +
|
||||
glx/glxdriswrast.c | 1 +
|
||||
hw/xquartz/GL/indirect.c | 2 +-
|
||||
4 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||||
index 241abc6a5..8681ef13f 100644
|
||||
--- a/glx/glxcmds.c
|
||||
+++ b/glx/glxcmds.c
|
||||
@@ -215,6 +215,7 @@ __glXdirectContextCreate(__GLXscreen * screen,
|
||||
if (context == NULL)
|
||||
return NULL;
|
||||
|
||||
+ context->config = modes;
|
||||
context->destroy = __glXdirectContextDestroy;
|
||||
context->loseCurrent = __glXdirectContextLoseCurrent;
|
||||
|
||||
@@ -1718,7 +1719,7 @@ DoQueryContext(__GLXclientState * cl, GLXContextID gcId)
|
||||
ClientPtr client = cl->client;
|
||||
__GLXcontext *ctx;
|
||||
xGLXQueryContextInfoEXTReply reply;
|
||||
- int nProps = 3;
|
||||
+ int nProps = 5;
|
||||
int sendBuf[nProps * 2];
|
||||
int nReplyBytes;
|
||||
int err;
|
||||
@@ -1740,6 +1741,10 @@ DoQueryContext(__GLXclientState * cl, GLXContextID gcId)
|
||||
sendBuf[3] = (int) (ctx->config->visualID);
|
||||
sendBuf[4] = GLX_SCREEN_EXT;
|
||||
sendBuf[5] = (int) (ctx->pGlxScreen->pScreen->myNum);
|
||||
+ sendBuf[6] = GLX_FBCONFIG_ID;
|
||||
+ sendBuf[7] = (int) (ctx->config->fbconfigID);
|
||||
+ sendBuf[8] = GLX_RENDER_TYPE;
|
||||
+ sendBuf[9] = (int) (ctx->config->renderType);
|
||||
|
||||
if (client->swapped) {
|
||||
int length = reply.length;
|
||||
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
|
||||
index 8f5aab0c2..2c542bfdf 100644
|
||||
--- a/glx/glxdri2.c
|
||||
+++ b/glx/glxdri2.c
|
||||
@@ -552,6 +552,7 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+ context->base.config = glxConfig;
|
||||
context->base.destroy = __glXDRIcontextDestroy;
|
||||
context->base.makeCurrent = __glXDRIcontextMakeCurrent;
|
||||
context->base.loseCurrent = __glXDRIcontextLoseCurrent;
|
||||
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
|
||||
index 5b1f3d1fc..c000d6cfb 100644
|
||||
--- a/glx/glxdriswrast.c
|
||||
+++ b/glx/glxdriswrast.c
|
||||
@@ -231,6 +231,7 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
|
||||
if (context == NULL)
|
||||
return NULL;
|
||||
|
||||
+ context->base.config = glxConfig;
|
||||
context->base.destroy = __glXDRIcontextDestroy;
|
||||
context->base.makeCurrent = __glXDRIcontextMakeCurrent;
|
||||
context->base.loseCurrent = __glXDRIcontextLoseCurrent;
|
||||
diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c
|
||||
index 2d88ef284..6738946ff 100644
|
||||
--- a/hw/xquartz/GL/indirect.c
|
||||
+++ b/hw/xquartz/GL/indirect.c
|
||||
@@ -156,7 +156,7 @@ __glXAquaScreenCreateContext(__GLXscreen *screen,
|
||||
memset(context, 0, sizeof *context);
|
||||
|
||||
context->base.pGlxScreen = screen;
|
||||
-
|
||||
+ context->base.config = conf;
|
||||
context->base.destroy = __glXAquaContextDestroy;
|
||||
context->base.makeCurrent = __glXAquaContextMakeCurrent;
|
||||
context->base.loseCurrent = __glXAquaContextLoseCurrent;
|
||||
--
|
||||
2.14.3
|
||||
|
||||
261
0001-miinitext-General-cleanup.patch
Normal file
261
0001-miinitext-General-cleanup.patch
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
From 81fdf57d56c36c80274aa82a94b77a4e88f4ce50 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed, 13 Sep 2017 15:12:34 -0400
|
||||
Subject: [PATCH xserver] miinitext: General cleanup
|
||||
|
||||
This really just wants to be the list of disable booleans and
|
||||
initialization functions, and nothing else. Stop including the protocol
|
||||
headers from extinit.h, remove a stray mention of xgl, and move an
|
||||
XInput declaration to a better place.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
glx/glxcmds.c | 1 +
|
||||
hw/xfree86/drivers/modesetting/driver.h | 1 +
|
||||
include/extinit.h | 21 --------------------
|
||||
include/inputstr.h | 4 ++++
|
||||
mi/miinitext.c | 34 +++++++++++++++------------------
|
||||
5 files changed, 21 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||||
index 241abc6a5..d6c917653 100644
|
||||
--- a/glx/glxcmds.c
|
||||
+++ b/glx/glxcmds.c
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
#include "glxserver.h"
|
||||
#include <GL/glxtokens.h>
|
||||
+#include <X11/extensions/presenttokens.h>
|
||||
#include <unpack.h>
|
||||
#include <pixmapstr.h>
|
||||
#include <windowstr.h>
|
||||
diff --git a/hw/xfree86/drivers/modesetting/driver.h b/hw/xfree86/drivers/modesetting/driver.h
|
||||
index 7ea500f5c..0082348b4 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/driver.h
|
||||
+++ b/hw/xfree86/drivers/modesetting/driver.h
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <xf86drm.h>
|
||||
#include <xf86Crtc.h>
|
||||
#include <damage.h>
|
||||
+#include <X11/extensions/dpmsconst.h>
|
||||
|
||||
#ifdef GLAMOR_HAS_GBM
|
||||
#define GLAMOR_FOR_XORG 1
|
||||
diff --git a/include/extinit.h b/include/extinit.h
|
||||
index 4ad4fcac0..67e300d18 100644
|
||||
--- a/include/extinit.h
|
||||
+++ b/include/extinit.h
|
||||
@@ -69,7 +69,6 @@ extern void DbeExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#if defined(DPMSExtension)
|
||||
-#include <X11/extensions/dpmsconst.h>
|
||||
extern _X_EXPORT Bool noDPMSExtension;
|
||||
extern void DPMSExtensionInit(void);
|
||||
#endif
|
||||
@@ -82,7 +81,6 @@ extern _X_EXPORT Bool noGlxExtension;
|
||||
#endif
|
||||
|
||||
#ifdef PANORAMIX
|
||||
-#include <X11/extensions/panoramiXproto.h>
|
||||
extern _X_EXPORT Bool noPanoramiXExtension;
|
||||
extern void PanoramiXExtensionInit(void);
|
||||
#endif
|
||||
@@ -100,23 +98,18 @@ extern _X_EXPORT Bool noRenderExtension;
|
||||
extern void RenderExtensionInit(void);
|
||||
|
||||
#if defined(RES)
|
||||
-#include <X11/extensions/XResproto.h>
|
||||
extern _X_EXPORT Bool noResExtension;
|
||||
extern void ResExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#if defined(SCREENSAVER)
|
||||
-#include <X11/extensions/saver.h>
|
||||
extern _X_EXPORT Bool noScreenSaverExtension;
|
||||
extern void ScreenSaverExtensionInit(void);
|
||||
#endif
|
||||
|
||||
-#include <X11/extensions/shapeproto.h>
|
||||
extern void ShapeExtensionInit(void);
|
||||
|
||||
#ifdef MITSHM
|
||||
-#include <X11/extensions/shm.h>
|
||||
-#include <X11/extensions/shmproto.h>
|
||||
extern _X_EXPORT Bool noMITShmExtension;
|
||||
extern void ShmExtensionInit(void);
|
||||
#endif
|
||||
@@ -126,14 +119,11 @@ extern void SyncExtensionInit(void);
|
||||
extern void XCMiscExtensionInit(void);
|
||||
|
||||
#ifdef XCSECURITY
|
||||
-#include <X11/extensions/secur.h>
|
||||
-#include "securitysrv.h"
|
||||
extern _X_EXPORT Bool noSecurityExtension;
|
||||
extern void SecurityExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#ifdef XF86BIGFONT
|
||||
-#include <X11/extensions/xf86bigfproto.h>
|
||||
extern _X_EXPORT Bool noXFree86BigfontExtension;
|
||||
extern void XFree86BigfontExtensionInit(void);
|
||||
#endif
|
||||
@@ -144,40 +134,29 @@ extern _X_EXPORT Bool noXFixesExtension;
|
||||
extern void XFixesExtensionInit(void);
|
||||
|
||||
extern void XInputExtensionInit(void);
|
||||
-extern _X_EXPORT void AssignTypeAndName(DeviceIntPtr dev,
|
||||
- Atom type,
|
||||
- const char *name);
|
||||
|
||||
-#include <X11/extensions/XKB.h>
|
||||
extern void XkbExtensionInit(void);
|
||||
|
||||
#if defined(XSELINUX)
|
||||
-#include "xselinux.h"
|
||||
extern _X_EXPORT Bool noSELinuxExtension;
|
||||
extern void SELinuxExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#ifdef XTEST
|
||||
-#include <X11/extensions/xtestconst.h>
|
||||
-#include <X11/extensions/xtestproto.h>
|
||||
extern void XTestExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#if defined(XV)
|
||||
-#include <X11/extensions/Xv.h>
|
||||
-#include <X11/extensions/XvMC.h>
|
||||
extern _X_EXPORT Bool noXvExtension;
|
||||
extern void XvExtensionInit(void);
|
||||
extern void XvMCExtensionInit(void);
|
||||
#endif
|
||||
|
||||
#if defined(DRI3)
|
||||
-#include <X11/extensions/dri3proto.h>
|
||||
extern void dri3_extension_init(void);
|
||||
#endif
|
||||
|
||||
#if defined(PRESENT)
|
||||
-#include <X11/extensions/presentproto.h>
|
||||
#include "presentext.h"
|
||||
#endif
|
||||
|
||||
diff --git a/include/inputstr.h b/include/inputstr.h
|
||||
index 568f5f991..466b58845 100644
|
||||
--- a/include/inputstr.h
|
||||
+++ b/include/inputstr.h
|
||||
@@ -57,6 +57,10 @@ SOFTWARE.
|
||||
#include "geext.h"
|
||||
#include "privates.h"
|
||||
|
||||
+extern _X_EXPORT void AssignTypeAndName(DeviceIntPtr dev,
|
||||
+ Atom type,
|
||||
+ const char *name);
|
||||
+
|
||||
#define BitIsOn(ptr, bit) (!!(((const BYTE *) (ptr))[(bit)>>3] & (1 << ((bit) & 7))))
|
||||
#define SetBit(ptr, bit) (((BYTE *) (ptr))[(bit)>>3] |= (1 << ((bit) & 7)))
|
||||
#define ClearBit(ptr, bit) (((BYTE *)(ptr))[(bit)>>3] &= ~(1 << ((bit) & 7)))
|
||||
diff --git a/mi/miinitext.c b/mi/miinitext.c
|
||||
index 9e6578d4a..ce9325e29 100644
|
||||
--- a/mi/miinitext.c
|
||||
+++ b/mi/miinitext.c
|
||||
@@ -97,10 +97,6 @@ SOFTWARE.
|
||||
#undef DPMSExtension
|
||||
#endif
|
||||
|
||||
-#ifdef HAVE_XGL_CONFIG_H
|
||||
-#include <xgl-config.h>
|
||||
-#endif
|
||||
-
|
||||
#include "misc.h"
|
||||
#include "extension.h"
|
||||
#include "extinit.h"
|
||||
@@ -140,7 +136,7 @@ static ExtensionToggle ExtensionToggleList[] = {
|
||||
{"MIT-SCREEN-SAVER", &noScreenSaverExtension},
|
||||
#endif
|
||||
#ifdef MITSHM
|
||||
- {SHMNAME, &noMITShmExtension},
|
||||
+ {"MIT-SHM", &noMITShmExtension},
|
||||
#endif
|
||||
#ifdef RANDR
|
||||
{"RANDR", &noRRExtension},
|
||||
@@ -237,21 +233,21 @@ static const ExtensionModule staticExtensions[] = {
|
||||
{GEExtensionInit, "Generic Event Extension", &noGEExtension},
|
||||
{ShapeExtensionInit, "SHAPE", NULL},
|
||||
#ifdef MITSHM
|
||||
- {ShmExtensionInit, SHMNAME, &noMITShmExtension},
|
||||
+ {ShmExtensionInit, "MIT-SHM", &noMITShmExtension},
|
||||
#endif
|
||||
{XInputExtensionInit, "XInputExtension", NULL},
|
||||
#ifdef XTEST
|
||||
- {XTestExtensionInit, XTestExtensionName, &noTestExtensions},
|
||||
+ {XTestExtensionInit, "XTEST", &noTestExtensions},
|
||||
#endif
|
||||
{BigReqExtensionInit, "BIG-REQUESTS", NULL},
|
||||
{SyncExtensionInit, "SYNC", NULL},
|
||||
- {XkbExtensionInit, XkbName, NULL},
|
||||
+ {XkbExtensionInit, "XKEYBOARD", NULL},
|
||||
{XCMiscExtensionInit, "XC-MISC", NULL},
|
||||
#ifdef XCSECURITY
|
||||
- {SecurityExtensionInit, SECURITY_EXTENSION_NAME, &noSecurityExtension},
|
||||
+ {SecurityExtensionInit, "SECURITY", &noSecurityExtension},
|
||||
#endif
|
||||
#ifdef PANORAMIX
|
||||
- {PanoramiXExtensionInit, PANORAMIX_PROTOCOL_NAME, &noPanoramiXExtension},
|
||||
+ {PanoramiXExtensionInit, "XINERAMA", &noPanoramiXExtension},
|
||||
#endif
|
||||
#ifdef INXQUARTZ
|
||||
/* PseudoramiXExtensionInit must be done before RRExtensionInit, or
|
||||
@@ -262,7 +258,7 @@ static const ExtensionModule staticExtensions[] = {
|
||||
/* must be before Render to layer DisplayCursor correctly */
|
||||
{XFixesExtensionInit, "XFIXES", &noXFixesExtension},
|
||||
#ifdef XF86BIGFONT
|
||||
- {XFree86BigfontExtensionInit, XF86BIGFONTNAME, &noXFree86BigfontExtension},
|
||||
+ {XFree86BigfontExtensionInit, "XFree86-Bigfont", &noXFree86BigfontExtension},
|
||||
#endif
|
||||
{RenderExtensionInit, "RENDER", &noRenderExtension},
|
||||
#ifdef RANDR
|
||||
@@ -275,7 +271,7 @@ static const ExtensionModule staticExtensions[] = {
|
||||
{DamageExtensionInit, "DAMAGE", &noDamageExtension},
|
||||
#endif
|
||||
#ifdef SCREENSAVER
|
||||
- {ScreenSaverExtensionInit, ScreenSaverName, &noScreenSaverExtension},
|
||||
+ {ScreenSaverExtensionInit, "MIT-SCREEN-SAVER", &noScreenSaverExtension},
|
||||
#endif
|
||||
#ifdef DBE
|
||||
{DbeExtensionInit, "DOUBLE-BUFFER", &noDbeExtension},
|
||||
@@ -284,23 +280,23 @@ static const ExtensionModule staticExtensions[] = {
|
||||
{RecordExtensionInit, "RECORD", &noTestExtensions},
|
||||
#endif
|
||||
#ifdef DPMSExtension
|
||||
- {DPMSExtensionInit, DPMSExtensionName, &noDPMSExtension},
|
||||
+ {DPMSExtensionInit, "DPMS", &noDPMSExtension},
|
||||
#endif
|
||||
#ifdef PRESENT
|
||||
- {present_extension_init, PRESENT_NAME, NULL},
|
||||
+ {present_extension_init, "Present", NULL},
|
||||
#endif
|
||||
#ifdef DRI3
|
||||
- {dri3_extension_init, DRI3_NAME, NULL},
|
||||
+ {dri3_extension_init, "DRI3", NULL},
|
||||
#endif
|
||||
#ifdef RES
|
||||
- {ResExtensionInit, XRES_NAME, &noResExtension},
|
||||
+ {ResExtensionInit, "X-Resource", &noResExtension},
|
||||
#endif
|
||||
#ifdef XV
|
||||
- {XvExtensionInit, XvName, &noXvExtension},
|
||||
- {XvMCExtensionInit, XvMCName, &noXvExtension},
|
||||
+ {XvExtensionInit, "XVideo", &noXvExtension},
|
||||
+ {XvMCExtensionInit, "XVideo-MotionCompensation", &noXvExtension},
|
||||
#endif
|
||||
#ifdef XSELINUX
|
||||
- {SELinuxExtensionInit, SELINUX_EXTENSION_NAME, &noSELinuxExtension},
|
||||
+ {SELinuxExtensionInit, "SELinux", &noSELinuxExtension},
|
||||
#endif
|
||||
};
|
||||
|
||||
--
|
||||
2.14.3
|
||||
|
||||
203
0002-glx-Implement-GLX_EXT_no_config_context-v2.patch
Normal file
203
0002-glx-Implement-GLX_EXT_no_config_context-v2.patch
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
From 5c9749499e866b5eb0558b063b817f35bbd92cfa Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 21 Sep 2017 12:45:04 -0400
|
||||
Subject: [PATCH xserver 2/2] glx: Implement GLX_EXT_no_config_context (v2)
|
||||
|
||||
Only enabled for the DRI backends at the moment. In principle WGL/CGL
|
||||
could support this - it's sort of implied by GL 3.0 support - but in
|
||||
practice I don't know that it would actually work.
|
||||
|
||||
This is currently a draft extension, under review at:
|
||||
|
||||
https://github.com/KhronosGroup/OpenGL-Registry/pull/102
|
||||
|
||||
v2: Require that the two screen numbers match, per v4 of spec.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
glx/createcontext.c | 20 +++++++++++++++++---
|
||||
glx/extension_string.c | 1 +
|
||||
glx/extension_string.h | 1 +
|
||||
glx/glxcmds.c | 6 +++---
|
||||
glx/glxdri2.c | 13 +++++++------
|
||||
glx/glxdriswrast.c | 8 ++++++--
|
||||
6 files changed, 35 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/glx/createcontext.c b/glx/createcontext.c
|
||||
index 1216f9412..76316db67 100644
|
||||
--- a/glx/createcontext.c
|
||||
+++ b/glx/createcontext.c
|
||||
@@ -93,7 +93,7 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
|
||||
__GLXcontext *ctx = NULL;
|
||||
__GLXcontext *shareCtx = NULL;
|
||||
__GLXscreen *glxScreen;
|
||||
- __GLXconfig *config;
|
||||
+ __GLXconfig *config = NULL;
|
||||
int err;
|
||||
|
||||
/* The GLX_ARB_create_context_robustness spec says:
|
||||
@@ -136,8 +136,10 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
|
||||
if (!validGlxScreen(client, req->screen, &glxScreen, &err))
|
||||
return __glXError(GLXBadFBConfig);
|
||||
|
||||
- if (!validGlxFBConfig(client, glxScreen, req->fbconfig, &config, &err))
|
||||
- return __glXError(GLXBadFBConfig);
|
||||
+ if (req->fbconfig) {
|
||||
+ if (!validGlxFBConfig(client, glxScreen, req->fbconfig, &config, &err))
|
||||
+ return __glXError(GLXBadFBConfig);
|
||||
+ }
|
||||
|
||||
/* Validate the context with which the new context should share resources.
|
||||
*/
|
||||
@@ -182,6 +184,9 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
|
||||
break;
|
||||
|
||||
case GLX_RENDER_TYPE:
|
||||
+ /* Not valid for GLX_EXT_no_config_context */
|
||||
+ if (!req->fbconfig)
|
||||
+ return BadValue;
|
||||
render_type = attribs[2 * i + 1];
|
||||
break;
|
||||
|
||||
@@ -206,6 +211,15 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
|
||||
break;
|
||||
#endif
|
||||
|
||||
+ case GLX_SCREEN:
|
||||
+ /* Only valid for GLX_EXT_no_config_context */
|
||||
+ if (req->fbconfig)
|
||||
+ return BadValue;
|
||||
+ /* Must match the value in the request header */
|
||||
+ if (attribs[2 * i + 1] != req->screen)
|
||||
+ return BadValue;
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
if (!req->isDirect)
|
||||
return BadValue;
|
||||
diff --git a/glx/extension_string.c b/glx/extension_string.c
|
||||
index d1da4815c..102f9dd42 100644
|
||||
--- a/glx/extension_string.c
|
||||
+++ b/glx/extension_string.c
|
||||
@@ -86,6 +86,7 @@ static const struct extension_info known_glx_extensions[] = {
|
||||
{ GLX(EXT_framebuffer_sRGB), VER(0,0), N, },
|
||||
{ GLX(EXT_import_context), VER(0,0), Y, },
|
||||
{ GLX(EXT_libglvnd), VER(0,0), N, },
|
||||
+ { GLX(EXT_no_config_context), VER(0,0), N, },
|
||||
{ GLX(EXT_stereo_tree), VER(0,0), N, },
|
||||
{ GLX(EXT_texture_from_pixmap), VER(0,0), N, },
|
||||
{ GLX(EXT_visual_info), VER(0,0), Y, },
|
||||
diff --git a/glx/extension_string.h b/glx/extension_string.h
|
||||
index a10d7108a..f049f5840 100644
|
||||
--- a/glx/extension_string.h
|
||||
+++ b/glx/extension_string.h
|
||||
@@ -48,6 +48,7 @@ enum {
|
||||
EXT_fbconfig_packed_float_bit,
|
||||
EXT_import_context_bit,
|
||||
EXT_libglvnd_bit,
|
||||
+ EXT_no_config_context_bit,
|
||||
EXT_stereo_tree_bit,
|
||||
EXT_texture_from_pixmap_bit,
|
||||
EXT_visual_info_bit,
|
||||
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||||
index 8681ef13f..324558b6e 100644
|
||||
--- a/glx/glxcmds.c
|
||||
+++ b/glx/glxcmds.c
|
||||
@@ -1738,13 +1738,13 @@ DoQueryContext(__GLXclientState * cl, GLXContextID gcId)
|
||||
sendBuf[0] = GLX_SHARE_CONTEXT_EXT;
|
||||
sendBuf[1] = (int) (ctx->share_id);
|
||||
sendBuf[2] = GLX_VISUAL_ID_EXT;
|
||||
- sendBuf[3] = (int) (ctx->config->visualID);
|
||||
+ sendBuf[3] = (int) (ctx->config ? ctx->config->visualID : 0);
|
||||
sendBuf[4] = GLX_SCREEN_EXT;
|
||||
sendBuf[5] = (int) (ctx->pGlxScreen->pScreen->myNum);
|
||||
sendBuf[6] = GLX_FBCONFIG_ID;
|
||||
- sendBuf[7] = (int) (ctx->config->fbconfigID);
|
||||
+ sendBuf[7] = (int) (ctx->config ? ctx->config->fbconfigID : 0);
|
||||
sendBuf[8] = GLX_RENDER_TYPE;
|
||||
- sendBuf[9] = (int) (ctx->config->renderType);
|
||||
+ sendBuf[9] = (int) (ctx->config ? ctx->config->renderType : GLX_DONT_CARE);
|
||||
|
||||
if (client->swapped) {
|
||||
int length = reply.length;
|
||||
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
|
||||
index 2c542bfdf..2e24b56e6 100644
|
||||
--- a/glx/glxdri2.c
|
||||
+++ b/glx/glxdri2.c
|
||||
@@ -441,6 +441,7 @@ create_driver_context(__GLXDRIcontext * context,
|
||||
int *error)
|
||||
{
|
||||
context->driContext = NULL;
|
||||
+ const __DRIconfig *driConfig = config ? config->driConfig : NULL;
|
||||
|
||||
if (screen->dri2->base.version >= 3) {
|
||||
uint32_t ctx_attribs[4 * 2];
|
||||
@@ -483,10 +484,8 @@ create_driver_context(__GLXDRIcontext * context,
|
||||
}
|
||||
|
||||
context->driContext =
|
||||
- (*screen->dri2->createContextAttribs)(screen->driScreen,
|
||||
- api,
|
||||
- config->driConfig,
|
||||
- driShare,
|
||||
+ (*screen->dri2->createContextAttribs)(screen->driScreen, api,
|
||||
+ driConfig, driShare,
|
||||
num_ctx_attribs / 2,
|
||||
ctx_attribs,
|
||||
&dri_err,
|
||||
@@ -522,8 +521,7 @@ create_driver_context(__GLXDRIcontext * context,
|
||||
}
|
||||
|
||||
context->driContext =
|
||||
- (*screen->dri2->createNewContext) (screen->driScreen,
|
||||
- config->driConfig,
|
||||
+ (*screen->dri2->createNewContext) (screen->driScreen, driConfig,
|
||||
driShare, context);
|
||||
}
|
||||
|
||||
@@ -831,6 +829,9 @@ initializeExtensions(__GLXscreen * screen)
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_MESA_copy_sub_buffer");
|
||||
LogMessage(X_INFO, "AIGLX: enabled GLX_MESA_copy_sub_buffer\n");
|
||||
|
||||
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_no_config_context");
|
||||
+ LogMessage(X_INFO, "AIGLX: enabled GLX_EXT_no_config_context\n");
|
||||
+
|
||||
if (dri->dri2->base.version >= 3) {
|
||||
__glXEnableExtension(screen->glx_enable_bits,
|
||||
"GLX_ARB_create_context");
|
||||
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
|
||||
index c000d6cfb..adc97df93 100644
|
||||
--- a/glx/glxdriswrast.c
|
||||
+++ b/glx/glxdriswrast.c
|
||||
@@ -211,6 +211,7 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
|
||||
__GLXDRIscreen *screen = (__GLXDRIscreen *) baseScreen;
|
||||
__GLXDRIcontext *context, *shareContext;
|
||||
__GLXDRIconfig *config = (__GLXDRIconfig *) glxConfig;
|
||||
+ const __DRIconfig *driConfig = config ? config->driConfig : NULL;
|
||||
const __DRIcoreExtension *core = screen->core;
|
||||
__DRIcontext *driShare;
|
||||
|
||||
@@ -240,8 +241,8 @@ __glXDRIscreenCreateContext(__GLXscreen * baseScreen,
|
||||
context->base.releaseTexImage = __glXDRIreleaseTexImage;
|
||||
|
||||
context->driContext =
|
||||
- (*core->createNewContext) (screen->driScreen,
|
||||
- config->driConfig, driShare, context);
|
||||
+ (*core->createNewContext) (screen->driScreen, driConfig, driShare,
|
||||
+ context);
|
||||
|
||||
return &context->base;
|
||||
}
|
||||
@@ -352,6 +353,9 @@ initializeExtensions(__GLXscreen * screen)
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_MESA_copy_sub_buffer");
|
||||
LogMessage(X_INFO, "IGLX: enabled GLX_MESA_copy_sub_buffer\n");
|
||||
|
||||
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_no_config_context");
|
||||
+ LogMessage(X_INFO, "IGLX: enabled GLX_EXT_no_config_context\n");
|
||||
+
|
||||
if (dri->swrast->base.version >= 3) {
|
||||
__glXEnableExtension(screen->glx_enable_bits,
|
||||
"GLX_ARB_create_context");
|
||||
--
|
||||
2.14.3
|
||||
|
||||
1
sources
1
sources
|
|
@ -1 +1,2 @@
|
|||
SHA512 (xorg-server-1.19.5.tar.bz2) = 928dea5850b98cd815004cfa133eca23cfa9521920c934c68a92787f2cae13cca1534eee772a4fb74b8ae8cb92662b5d68b95b834c8aa8ec57cd57cb4e5dd45c
|
||||
SHA512 (xserver-1.19.99.1.tar.xz) = d442022e64d1321879827f601e2606c82cac32d2926840dbb7b19cdd3ef67518de9fdbebb47be4779beaa95cb9c8cd86d4ee1221ff0a4cc8835e57b2e5a54185
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
# source because rpm is a terrible language.
|
||||
%global ansic_major 0
|
||||
%global ansic_minor 4
|
||||
%global videodrv_major 23
|
||||
%global videodrv_major 24
|
||||
%global videodrv_minor 0
|
||||
%global xinput_major 24
|
||||
%global xinput_minor 1
|
||||
|
|
@ -44,8 +44,8 @@
|
|||
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.19.5
|
||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
||||
Version: 1.19.99.1
|
||||
Release: 0.3%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
|
|
@ -59,7 +59,7 @@ Source0: xorg-server-%{gitdate}.tar.xz
|
|||
Source1: make-git-snapshot.sh
|
||||
Source2: commitid
|
||||
%else
|
||||
Source0: https://www.x.org/pub/individual/xserver/%{pkgname}-%{version}.tar.bz2
|
||||
Source0: https://www.x.org/pub/individual/xserver/xserver-%{version}.tar.xz
|
||||
Source1: gitignore
|
||||
%endif
|
||||
|
||||
|
|
@ -77,47 +77,25 @@ Source31: xserver-sdk-abi-requires.git
|
|||
# maintainer convenience script
|
||||
Source40: driver-abi-rebuild.sh
|
||||
|
||||
# Various fixes pending upstream
|
||||
Patch2: 0005-xfree86-Remove-redundant-ServerIsNotSeat0-check-from.patch
|
||||
Patch3: 0006-xfree86-Make-adding-unclaimed-devices-as-GPU-devices.patch
|
||||
Patch4: 0007-xfree86-Try-harder-to-find-atleast-1-non-GPU-Screen.patch
|
||||
|
||||
# Patches for better integration with the nvidia driver, pending upstream
|
||||
Patch11: 0001-xfree86-Free-devlist-returned-by-xf86MatchDevice.patch
|
||||
Patch12: 0002-xfree86-Make-OutputClassMatches-take-a-xf86_platform.patch
|
||||
Patch13: 0003-xfree86-Add-options-support-for-OutputClass-Options.patch
|
||||
Patch14: 0004-xfree86-xf86platformProbe-split-finding-pci-info-and.patch
|
||||
Patch15: 0005-xfree86-Allow-overriding-primary-GPU-detection-from-.patch
|
||||
Patch16: 0006-xfree86-Add-ModulePath-support-for-OutputClass-confi.patch
|
||||
|
||||
# Backport tablet support for Xwayland - *NOT* in server-1.19-branch
|
||||
Patch9901: 0001-xwayland-Depend-on-wayland-protocols-to-build-tablet.patch
|
||||
Patch9902: 0002-xwayland-Bind-to-wp_tablet_manager-if-available-and-.patch
|
||||
Patch9903: 0003-xwayland-Listen-for-wp_tablet_seat-events.patch
|
||||
Patch9904: 0004-xwayland-Handle-wp_tablet-events.patch
|
||||
Patch9905: 0005-xwayland-Handle-tablet_tool-events.patch
|
||||
Patch9906: 0006-xwayland-handle-button-events-after-motion-events.patch
|
||||
Patch9907: 0007-xwayland-Refactor-cursor-management-into-xwl_cursor.patch
|
||||
Patch9908: 0008-xwayland-update-cursor-on-tablet-tools-in-proximity.patch
|
||||
Patch9909: 0009-xwayland-add-tablet-pad-support.patch
|
||||
Patch9910: 0010-xwayland-Unconditionally-initialize-lists-in-init_ta.patch
|
||||
Patch9911: 0011-xwayland-Correct-off-by-one-error-in-tablet-button-n.patch
|
||||
Patch9912: 0012-xwayland-Implement-tablet_tool_wheel-for-scrolling.patch
|
||||
|
||||
# From Debian use intel ddx driver only for gen4 and older chipsets
|
||||
%if 0%{?fedora} > 25 || 0%{?rhel} > 7
|
||||
Patch20: 06_use-intel-only-on-pre-gen4.diff
|
||||
%endif
|
||||
|
||||
# Submitted upstream
|
||||
Patch21: 0001-xf86-dri2-Use-va_gl-as-vdpau_driver-for-Intel-i965-G.patch
|
||||
# Submitted upstream XXX ajax fix this
|
||||
# Patch21: 0001-xf86-dri2-Use-va_gl-as-vdpau_driver-for-Intel-i965-G.patch
|
||||
|
||||
#Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
|
||||
|
||||
Patch7025: 0001-Always-install-vbe-and-int10-sdk-headers.patch
|
||||
# XXX ajax
|
||||
# Patch7025: 0001-Always-install-vbe-and-int10-sdk-headers.patch
|
||||
|
||||
# Submitted upstream, but not going anywhere
|
||||
Patch7027: xserver-autobind-hotplug.patch
|
||||
# Patch7027: xserver-autobind-hotplug.patch
|
||||
|
||||
Patch100: 0001-glx-Fix-glXQueryContext-for-GLX_FBCONFIG_ID-and-GLX_.patch
|
||||
Patch101: 0002-glx-Implement-GLX_EXT_no_config_context-v2.patch
|
||||
Patch102: 0001-miinitext-General-cleanup.patch
|
||||
|
||||
# because the display-managers are not ready yet, do not upstream
|
||||
Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
|
||||
|
|
@ -359,7 +337,7 @@ Xserver source code needed to build VNC server (Xvnc)
|
|||
|
||||
|
||||
%prep
|
||||
%autosetup -N -n %{pkgname}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||
%autosetup -N -n xserver-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||
rm -rf .git
|
||||
cp %{SOURCE1} .gitignore
|
||||
# ick
|
||||
|
|
@ -617,6 +595,15 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
|||
|
||||
|
||||
%changelog
|
||||
* Tue Nov 07 2017 Adam Jackson <ajax@redhat.com> - 1.19.99.1-0.3
|
||||
- miinitext test
|
||||
|
||||
* Tue Nov 07 2017 Adam Jackson <ajax@redhat.com> - 1.19.99.1-0.2
|
||||
- Test of GLX_EXT_no_config_context
|
||||
|
||||
* Mon Nov 06 2017 Adam Jackson <ajax@redhat.com> - 1.19.99.1-0.1
|
||||
- Initial pre-1.20 import
|
||||
|
||||
* Thu Oct 12 2017 Adam Jackson <ajax@redhat.com> - 1.19.5-1
|
||||
- xserver 1.19.5
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue