----- Original Message ----- > On 06/09/2014 11:38 AM, Jose Fonseca wrote: > > > > > > ----- Original Message ----- > >> On 06/09/2014 07:22 AM, Jose Fonseca wrote: > >>> I don't think that OpenGL ICD should advertise multi-sample formats via > >>> the > >>> standard DescribePixelFormat. > >>> http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt states: > >>> > >>> Indices are assigned to pixel formats in the following order: > >>> > >>> 1. Accelerated pixel formats that are displayable > >>> > >>> 2. Accelerated pixel formats that are displayable and which have > >>> extended attributes > >>> > >>> 3. Generic pixel formats > >>> > >>> 4. Accelerated pixel formats that are non displayable > >>> > >>> ChoosePixelFormat will never select pixel formats from either group > >>> 2 or group 4. Each pixel format in group 2 is required to appear > >>> identical to some pixel format in group 1 when queried by > >>> DescribePixelFormat. Consequently, ChoosePixelFormat will always > >>> select a format from group 1 when it might otherwise have selected > >>> a > >>> format from group 2. Pixel formats in group 4 cannot be accessed by > >>> ChoosePixelFormat at all. > >>> > >>> That is, IIUC, in order to discover multi-sampled formats one must get > >>> the > >>> the number of pixel formats via > >>> wglGetPixelFormatAttribivARB(WGL_NUMBER_PIXEL_FORMATS_ARB) instead of > >>> > >>> numVisuals = DescribePixelFormat(hdc, 1, > >>> sizeof(PIXELFORMATDESCRIPTOR), > >>> NULL); > >>> if (numVisuals == 0) > >>> return; > >>> > >>> And I'm not even sure if it is OK to call DescribePixelFormat() with > >>> extended pixel formats or if one must use exclusively > >>> wglGetPixelFormatAttribivARB/wglGetPixelFormatAttribivARB. You can see > >>> how GLFW does it on > >>> https://github.com/glfw/glfw/blob/master/src/wgl_context.c#L144 > >> > >> Nothing's ever easy on Windows. <sigh> > > > > No. OPENGL32.DLL interface > > > >> The code as-is seems to work fine both on a Windows/nvidia host and in > >> the guest but I'll try the changes you suggested... > > > > Is wglinfo displaying multi-sampled pixelformats on NVIDIA as is? If so > > then my interpretation might be wrong somehow. > > Yes. I'm attaching the output of wglinfo on a windows/nvidia host w/ > the patch in question.
Interesting. So indeed it does seem that either I'm misinterpreting (may be both group 1 and 2 are supposed to be exposed to Describe/ChoosePixelFormat, and not just group 1 as I initially though), or NVIDIA opted for non-strict conformance. I'll need to re-read the spec and our wgl state tracker more closely. Either way, it seems that if all MSAA pixelformats have a non-MSAA correspondent, and that these non-MSAA pixelformats are listed first, then ChoosePixelFormat will never pick a later pixel format by mistake. It wouldn't hurt to eventually extend wglinfo to iterate over WGL_NUMBER_PIXEL_FORMATS_ARB though -- as it might show additional pixel formats (group 4?), at least for some GL drivers out there. But if/when to do that is entirely up to you. Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev