Bugzilla – Bug 30102
glean depthStencil test fails BadLength with indirect non-swrast rendering
Last modified: 2010-09-09 06:22:07 UTC
$ LIBGL_ALWAYS_INDIRECT=1 ./glean -r results -o --quick -t depthStencil
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 148 (GLX)
Minor opcode of failed request: 1 (X_GLXRender)
Serial number of failed request: 26
Current serial number in output stream: 27
Note that depthStencil requires GL_EXT_packed_depth_stencil, so this test does nothing against swrast and no failure is seen.
Created attachment 38578 [details] [review]
Have __glImageSize handle format GL_DEPTH_STENCIL_NV the same way as the server does
This failure occurs when testing that glDrawPixels with format GL_DEPTH_STENCIL_EXT generates an GL_INVALID_ENUM.
It appears that there is a mismatch between the client and server over the size of the image data in the GLX request: X server glx/rensize.c handles GL_DEPTH_STENCIL(|_NV|_EXT), whereas mesa GLX src/glx/compsize.c ignores it and returns an image size of 0.
Attached patch to mesa resolves that mismatch, allowing the test to successfully execute.
Created attachment 38579 [details] [review]
Synchronize mesa src/glx/compsize with Xserver glx/rensize.c
Comparing the client and server code for calculating image size, there are actually a few mismatches. Assuming that these are errors, and there's not some deeper technical reason for them to be different, here is a patch to synchronize them.
Created attachment 38580 [details] [review]
Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c