mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-16 12:00:35 +01:00
dri2: Register the DRI2DrawableType after server regeneration
The Resource database is reset upon regeneration and so the dri2 module
needs to re-register its RESTYPE for the drawable or else it will
clobber the next unsuspecting user of the database. Fortunately, DRI2 is
loaded late in the initialisation sequence and was last up until
xf86-video-intel started using the Resource database to track
outstanding swaps...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
(cherry picked from commit 34b0e4eee9)
This commit is contained in:
parent
73beaf9033
commit
7972e2dade
2 changed files with 15 additions and 2 deletions
|
|
@ -1194,14 +1194,24 @@ DRI2CloseScreen(ScreenPtr pScreen)
|
|||
}
|
||||
|
||||
extern ExtensionModule dri2ExtensionModule;
|
||||
extern Bool DRI2ModuleSetup(void);
|
||||
|
||||
/* Called by InitExtensions() */
|
||||
Bool
|
||||
DRI2ModuleSetup(void)
|
||||
{
|
||||
dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone, "DRI2Drawable");
|
||||
if (!dri2DrawableRes)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static pointer
|
||||
DRI2Setup(pointer module, pointer opts, int *errmaj, int *errmin)
|
||||
{
|
||||
static Bool setupDone = FALSE;
|
||||
|
||||
dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone, "DRI2Drawable");
|
||||
|
||||
if (!setupDone)
|
||||
{
|
||||
setupDone = TRUE;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include "xf86Module.h"
|
||||
|
||||
static ExtensionEntry *dri2Extension;
|
||||
extern Bool DRI2ModuleSetup(void);
|
||||
|
||||
static Bool
|
||||
validDrawable(ClientPtr client, XID drawable, Mask access_mode,
|
||||
|
|
@ -636,6 +637,8 @@ DRI2ExtensionInit(void)
|
|||
StandardMinorOpcode);
|
||||
|
||||
DRI2EventBase = dri2Extension->eventBase;
|
||||
|
||||
DRI2ModuleSetup();
|
||||
}
|
||||
|
||||
extern Bool noDRI2Extension;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue