On 10/15/2013 10:41 AM, Ian Romanick wrote: > On 07/15/2013 08:06 AM, Tomasz Lis wrote: >> From: Tomasz Lis <[email protected]> >> >> diff --git a/glx/glxcmds.c b/glx/glxcmds.c >> index 5b7a628..716e60c 100644 >> --- a/glx/glxcmds.c >> +++ b/glx/glxcmds.c >> @@ -1400,6 +1400,7 @@ DoCreatePbuffer(ClientPtr client, int screenNum, XID >> fbconfigId, >> __GLXconfig *config; >> __GLXscreen *pGlxScreen; >> PixmapPtr pPixmap; >> + int depth; >> int err; >> >> LEGAL_NEW_RESOURCE(glxDrawableId, client); >> @@ -1409,10 +1410,19 @@ DoCreatePbuffer(ClientPtr client, int screenNum, XID >> fbconfigId, >> if (!validGlxFBConfig(client, pGlxScreen, fbconfigId, &config, &err)) >> return err; >> >> + if (config->renderType & (GLX_RGBA_FLOAT_BIT_ARB | >> + GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT)) { >> + /* There are no float X pixmaps - create a dummy one, with 1 BPP. */ >> + depth = 1; >> + } else { >> + depth = config->rgbBits; >> + } > > I still think this is no good. With the changes that are going to be > made on the client side, is this hack even necessary?
I'm actually recommend pulling this part out into a separate patch. This is for two reasons: 1. It's really doing something different that the rest of the changes in the patch (and doesn't match the patch description). 2. None of the other parts are contentious. We should be able to get those landed much easier. >> + >> + >> __glXenterServer(GL_FALSE); >> pPixmap = (*pGlxScreen->pScreen->CreatePixmap) (pGlxScreen->pScreen, >> width, height, >> - config->rgbBits, 0); >> + depth, 0); >> __glXleaveServer(GL_FALSE); >> >> /* Assign the pixmap the same id as the pbuffer and add it as a _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
