xserver: Branch 'master' - 4 commits
Adam Jackson
ajax at kemper.freedesktop.org
Thu Mar 10 20:56:41 UTC 2016
glx/extension_string.c | 2 +
glx/extension_string.h | 2 +
glx/glxcmds.c | 50 +++++++++++++++++++++++++------------------------
glx/glxdri2.c | 6 +++++
glx/glxdriswrast.c | 1
5 files changed, 37 insertions(+), 24 deletions(-)
New commits:
commit ef3005da3d5dc92b3ee5a0ee78164e739a3216dc
Author: Adam Jackson <ajax at redhat.com>
Date: Thu Jan 21 12:47:57 2016 -0500
glx: Implement GLX_EXT_fbconfig_packed_float
The tokens for this are already defined by GLX_ARB_fbconfig_float, which
we already support, so just add the extension to the list and let the
driver provide those configs if it wants.
Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Adam Jackson <ajax at redhat.com>
diff --git a/glx/extension_string.c b/glx/extension_string.c
index c3ddc4c..616c793 100644
--- a/glx/extension_string.c
+++ b/glx/extension_string.c
@@ -82,6 +82,7 @@ static const struct extension_info known_glx_extensions[] = {
{ GLX(EXT_create_context_es_profile), VER(0,0), N, },
{ GLX(EXT_create_context_es2_profile), VER(0,0), N, },
+ { GLX(EXT_fbconfig_packed_float), VER(0,0), N, },
{ GLX(EXT_framebuffer_sRGB), VER(0,0), N, },
{ GLX(EXT_import_context), VER(0,0), Y, },
{ GLX(EXT_stereo_tree), VER(0,0), N, },
diff --git a/glx/extension_string.h b/glx/extension_string.h
index c1df91b..425a805 100644
--- a/glx/extension_string.h
+++ b/glx/extension_string.h
@@ -45,6 +45,7 @@ enum {
ARB_multisample_bit,
EXT_create_context_es_profile_bit,
EXT_create_context_es2_profile_bit,
+ EXT_fbconfig_packed_float_bit,
EXT_import_context_bit,
EXT_stereo_tree_bit,
EXT_texture_from_pixmap_bit,
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 89ad808..58e60b9 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -895,6 +895,12 @@ initializeExtensions(__GLXDRIscreen * screen)
LogMessage(X_INFO, "AIGLX: enabled GLX_ARB_fbconfig_float\n");
}
+ /* enable EXT_fbconfig_packed_float (even if there are no packed float fbconfigs) */
+ {
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_fbconfig_packed_float");
+ LogMessage(X_INFO, "AIGLX: enabled GLX_EXT_fbconfig_packed_float\n");
+ }
+
for (i = 0; extensions[i]; i++) {
if (strcmp(extensions[i]->name, __DRI_READ_DRAWABLE) == 0) {
__glXEnableExtension(screen->glx_enable_bits,
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index be00f5f..924067c 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -413,6 +413,7 @@ initializeExtensions(__GLXDRIscreen * screen)
/* these are harmless to enable unconditionally */
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_framebuffer_sRGB");
__glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_fbconfig_float");
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_fbconfig_packed_float");
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGI_make_current_read");
extensions = screen->core->getExtensions(screen->driScreen);
commit d15cb654b6ba365dac9a62064e277adebde2fdab
Author: Adam Jackson <ajax at redhat.com>
Date: Mon May 18 13:00:02 2015 -0400
glx: Implement GLX_EXT_stereo_tree
This is correct as it is, but only because we know no DRI drivers
implement stereo.
v2: Use new ATTRIB macro
Reviewed-by: James Jones <jajones at nvidia.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Adam Jackson <ajax at redhat.com>
diff --git a/glx/extension_string.c b/glx/extension_string.c
index cf90146..c3ddc4c 100644
--- a/glx/extension_string.c
+++ b/glx/extension_string.c
@@ -84,6 +84,7 @@ static const struct extension_info known_glx_extensions[] = {
{ GLX(EXT_create_context_es2_profile), VER(0,0), N, },
{ GLX(EXT_framebuffer_sRGB), VER(0,0), N, },
{ GLX(EXT_import_context), VER(0,0), Y, },
+ { GLX(EXT_stereo_tree), VER(0,0), N, },
{ GLX(EXT_texture_from_pixmap), VER(0,0), Y, },
{ GLX(EXT_visual_info), VER(0,0), Y, },
{ GLX(EXT_visual_rating), VER(0,0), Y, },
diff --git a/glx/extension_string.h b/glx/extension_string.h
index ffaab07..c1df91b 100644
--- a/glx/extension_string.h
+++ b/glx/extension_string.h
@@ -46,6 +46,7 @@ enum {
EXT_create_context_es_profile_bit,
EXT_create_context_es2_profile_bit,
EXT_import_context_bit,
+ EXT_stereo_tree_bit,
EXT_texture_from_pixmap_bit,
EXT_visual_info_bit,
EXT_visual_rating_bit,
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 139432e..561faeb 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -1921,6 +1921,11 @@ __glXDisp_CopySubBufferMESA(__GLXclientState * cl, GLbyte * pc)
return Success;
}
+/* hack for old glxext.h */
+#ifndef GLX_STEREO_TREE_EXT
+#define GLX_STEREO_TREE_EXT 0x20F5
+#endif
+
/*
** Get drawable attributes
*/
@@ -1931,7 +1936,7 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
xGLXGetDrawableAttributesReply reply;
__GLXdrawable *pGlxDraw = NULL;
DrawablePtr pDraw;
- CARD32 attributes[16];
+ CARD32 attributes[18];
int num = 0, error;
if (!validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY,
@@ -1964,6 +1969,9 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
if (pGlxDraw->type == GLX_DRAWABLE_PBUFFER) {
ATTRIB(GLX_PRESERVED_CONTENTS, GL_TRUE);
}
+ if (pGlxDraw->type == GLX_DRAWABLE_WINDOW) {
+ ATTRIB(GLX_STEREO_TREE_EXT, 0);
+ }
}
#undef ATTRIB
commit a18238877bbf9aab95843d849a6f434275e9cd6c
Author: Adam Jackson <ajax at redhat.com>
Date: Thu Mar 3 16:50:02 2016 -0500
glx: Add GLX_SCREEN to the GetDrawableAttributes response
libglvnd would like to use this to map from drawable to screen, so it
can know which driver to dispatch to. Refer to the spec proposal here:
https://lists.freedesktop.org/archives/mesa-dev/2016-March/109543.html
Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Adam Jackson <ajax at redhat.com>
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index d8a144f..139432e 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -1931,7 +1931,7 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
xGLXGetDrawableAttributesReply reply;
__GLXdrawable *pGlxDraw = NULL;
DrawablePtr pDraw;
- CARD32 attributes[14];
+ CARD32 attributes[16];
int num = 0, error;
if (!validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY,
@@ -1954,6 +1954,7 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
ATTRIB(GLX_Y_INVERTED_EXT, GL_FALSE);
ATTRIB(GLX_WIDTH, pDraw->width);
ATTRIB(GLX_HEIGHT, pDraw->height);
+ ATTRIB(GLX_SCREEN, pDraw->pScreen->myNum);
if (pGlxDraw) {
ATTRIB(GLX_TEXTURE_TARGET_EXT,
pGlxDraw->target == GL_TEXTURE_2D ?
commit 47c1d6b7abcfb1c6b478367bbc2e869c91485bc0
Author: Adam Jackson <ajax at redhat.com>
Date: Thu Mar 10 12:29:34 2016 -0500
glx: Macroize building the attribute list in DoGetDrawableAttributes
No functional change, just a little easier to read and harder to get
wrong.
Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Adam Jackson <ajax at redhat.com>
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 6eb3541..d8a144f 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -1945,33 +1945,26 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
if (pGlxDraw)
pDraw = pGlxDraw->pDraw;
- attributes[2*num] = GLX_Y_INVERTED_EXT;
- attributes[2*num+1] = GL_FALSE;
- num++;
- attributes[2*num] = GLX_WIDTH;
- attributes[2*num+1] = pDraw->width;
- num++;
- attributes[2*num] = GLX_HEIGHT;
- attributes[2*num+1] = pDraw->height;
- num++;
+#define ATTRIB(a, v) do { \
+ attributes[2*num] = (a); \
+ attributes[2*num+1] = (v); \
+ num++; \
+ } while (0)
+
+ ATTRIB(GLX_Y_INVERTED_EXT, GL_FALSE);
+ ATTRIB(GLX_WIDTH, pDraw->width);
+ ATTRIB(GLX_HEIGHT, pDraw->height);
if (pGlxDraw) {
- attributes[2*num] = GLX_TEXTURE_TARGET_EXT;
- attributes[2*num+1] = pGlxDraw->target == GL_TEXTURE_2D ?
- GLX_TEXTURE_2D_EXT :
- GLX_TEXTURE_RECTANGLE_EXT;
- num++;
- attributes[2*num] = GLX_EVENT_MASK;
- attributes[2*num+1] = pGlxDraw->eventMask;
- num++;
- attributes[2*num] = GLX_FBCONFIG_ID;
- attributes[2*num+1] = pGlxDraw->config->fbconfigID;
- num++;
+ ATTRIB(GLX_TEXTURE_TARGET_EXT,
+ pGlxDraw->target == GL_TEXTURE_2D ?
+ GLX_TEXTURE_2D_EXT : GLX_TEXTURE_RECTANGLE_EXT);
+ ATTRIB(GLX_EVENT_MASK, pGlxDraw->eventMask);
+ ATTRIB(GLX_FBCONFIG_ID, pGlxDraw->config->fbconfigID);
if (pGlxDraw->type == GLX_DRAWABLE_PBUFFER) {
- attributes[2*num] = GLX_PRESERVED_CONTENTS;
- attributes[2*num+1] = GL_TRUE;
- num++;
+ ATTRIB(GLX_PRESERVED_CONTENTS, GL_TRUE);
}
}
+#undef ATTRIB
reply = (xGLXGetDrawableAttributesReply) {
.type = X_Reply,
More information about the xorg-commit
mailing list