--- glx/glxdri.c.orig 2010-12-02 17:32:48.691356473 +0200 +++ glx/glxdri.c 2010-12-02 17:34:06.263362237 +0200 @@ -83,7 +83,8 @@ const __DRItexOffsetExtension *texOffset; DRITexOffsetStartProcPtr texOffsetStart; DRITexOffsetFinishProcPtr texOffsetFinish; - __GLXDRIdrawable *texOffsetOverride[16]; +#define NUM_TEX_OFFSET_OVERRIDES 64 + __GLXDRIdrawable *texOffsetOverride[NUM_TEX_OFFSET_OVERRIDES]; GLuint lastTexOffsetOverride; #endif @@ -418,17 +419,17 @@ if (testTexOffset(screen, pixmap)) { __GLXDRIdrawable **texOffsetOverride = screen->texOffsetOverride; - int i, firstEmpty = 16; + int i, firstEmpty = NUM_TEX_OFFSET_OVERRIDES; - for (i = 0; i < 16; i++) { + for (i = 0; i < NUM_TEX_OFFSET_OVERRIDES; i++) { if (texOffsetOverride[i] == driDraw) goto alreadyin; - if (firstEmpty == 16 && !texOffsetOverride[i]) + if (firstEmpty == NUM_TEX_OFFSET_OVERRIDES && !texOffsetOverride[i]) firstEmpty = i; } - if (firstEmpty == 16) { + if (firstEmpty == NUM_TEX_OFFSET_OVERRIDES) { ErrorF("%s: Failed to register texture offset override\n", __func__); goto nooverride; }