From 96f216565e09032021bafa7a805aa7707777fda1 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 29 Nov 2005 23:01:43 +0000 Subject: [PATCH] assorted fixes for server-side direct rendering (bug 5199) --- include/GL/internal/dri_interface.h | 1 - src/mesa/drivers/dri/common/dri_util.c | 6 +++--- src/mesa/drivers/dri/common/dri_util.h | 1 + src/mesa/drivers/dri/common/glcontextmodes.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index e63415db026..0f3555b576e 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -39,7 +39,6 @@ #define DRI_INTERFACE_H #include -#include #include /** diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c index 421f24ccb1c..d7640759dee 100644 --- a/src/mesa/drivers/dri/common/dri_util.c +++ b/src/mesa/drivers/dri/common/dri_util.c @@ -133,9 +133,8 @@ static void __driGarbageCollectDrawables(void *drawHash) __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; dpy = pdp->driScreenPriv->display; if (! (*dri_interface->windowExists)(dpy, draw)) { - /* Destroy the local drawable data in the hash table, if the - drawable no longer exists in the Xserver */ - drmHashDelete(drawHash, draw); + /* Destroy the local drawable data, if the drawable no + longer exists in the Xserver */ (*pdraw->destroyDrawable)(dpy, pdraw->private); _mesa_free(pdraw); } @@ -667,6 +666,7 @@ driDestroyDrawable(__DRInativeDisplay *dpy, void *drawablePrivate) (*psp->DriverAPI.DestroyBuffer)(pdp); if ((*dri_interface->windowExists)(dpy, pdp->draw)) (void)(*dri_interface->destroyDrawable)(dpy, scrn, pdp->draw); + drmHashDelete(psp->drawHash, pdp->draw); if (pdp->pClipRects) { _mesa_free(pdp->pClipRects); pdp->pClipRects = NULL; diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h index a5e907e7261..b9b38f39cd6 100644 --- a/src/mesa/drivers/dri/common/dri_util.h +++ b/src/mesa/drivers/dri/common/dri_util.h @@ -54,6 +54,7 @@ #include #include "drm.h" #include "drm_sarea.h" +#include "xf86drm.h" #include "GL/internal/glcore.h" #include "GL/internal/dri_interface.h" diff --git a/src/mesa/drivers/dri/common/glcontextmodes.c b/src/mesa/drivers/dri/common/glcontextmodes.c index 4bff387ae0a..5e9e352f2c6 100644 --- a/src/mesa/drivers/dri/common/glcontextmodes.c +++ b/src/mesa/drivers/dri/common/glcontextmodes.c @@ -157,8 +157,8 @@ _gl_copy_visual_to_context_mode( __GLcontextModes * mode, mode->greenMask = config->greenMask; mode->blueMask = config->blueMask; mode->alphaMask = config->alphaMask; - mode->rgbBits = config->bufferSize; - mode->indexBits = config->bufferSize; + mode->rgbBits = mode->rgbMode ? config->bufferSize : 0; + mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0; mode->accumRedBits = config->accumRedSize; mode->accumGreenBits = config->accumGreenSize; -- 2.30.2