b978becd89
- mesa-7.1-fbconfig-fix.patch: Fix fbconfig comparisons.
53 lines
2.0 KiB
Diff
53 lines
2.0 KiB
Diff
From 2771862adcbc163c0a3f3eaaf4b58c658e72f680 Mon Sep 17 00:00:00 2001
|
|
From: Jie Luo <clotho67@gmail.com>
|
|
Date: Tue, 08 Apr 2008 23:17:06 +0000
|
|
Subject: Handle fbconfig comparison correctly for attributes the X server didn't send.
|
|
|
|
---
|
|
diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
|
|
index fd10047..70873c2 100644
|
|
--- a/src/glx/x11/dri_glx.c
|
|
+++ b/src/glx/x11/dri_glx.c
|
|
@@ -520,13 +520,13 @@ static const struct { unsigned int attrib, offset; } attribMap[] = {
|
|
static int
|
|
scalarEqual(__GLcontextModes *mode, unsigned int attrib, unsigned int value)
|
|
{
|
|
- unsigned int driValue;
|
|
+ unsigned int glxValue;
|
|
int i;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(attribMap); i++)
|
|
if (attribMap[i].attrib == attrib) {
|
|
- driValue = *(unsigned int *) ((char *) mode + attribMap[i].offset);
|
|
- return driValue == value;
|
|
+ glxValue = *(unsigned int *) ((char *) mode + attribMap[i].offset);
|
|
+ return glxValue == GLX_DONT_CARE || glxValue == value;
|
|
}
|
|
|
|
return GL_TRUE; /* Is a non-existing attribute equal to value? */
|
|
@@ -572,7 +572,8 @@ driConfigEqual(const __DRIcoreExtension *core,
|
|
glxValue |= GLX_TEXTURE_2D_BIT_EXT;
|
|
if (value & __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT)
|
|
glxValue |= GLX_TEXTURE_RECTANGLE_BIT_EXT;
|
|
- if (glxValue != modes->bindToTextureTargets)
|
|
+ if (modes->bindToTextureTargets != GLX_DONT_CARE &&
|
|
+ glxValue != modes->bindToTextureTargets)
|
|
return GL_FALSE;
|
|
break;
|
|
|
|
diff --git a/src/glx/x11/glcontextmodes.c b/src/glx/x11/glcontextmodes.c
|
|
index 58c548a..2a8e48d 100644
|
|
--- a/src/glx/x11/glcontextmodes.c
|
|
+++ b/src/glx/x11/glcontextmodes.c
|
|
@@ -415,7 +415,7 @@ _gl_context_modes_create( unsigned count, size_t minimum_size )
|
|
(*next)->bindToTextureRgb = GLX_DONT_CARE;
|
|
(*next)->bindToTextureRgba = GLX_DONT_CARE;
|
|
(*next)->bindToMipmapTexture = GLX_DONT_CARE;
|
|
- (*next)->bindToTextureTargets = 0;
|
|
+ (*next)->bindToTextureTargets = GLX_DONT_CARE;
|
|
(*next)->yInverted = GLX_DONT_CARE;
|
|
|
|
next = & ((*next)->next);
|
|
--
|
|
cgit v0.7.2-37-g538c
|