H. Verbeet wrote: > 2008/6/16 Brian Paul <[EMAIL PROTECTED]>: >>> With the fog bugs fixed, there are two issues I run into when running >>> Wine's D3D unit tests with Mesa's swrast. The first issue is that by >>> default Mesa doesn't report any visuals / FBConfigs with an alpha >>> channel in the colorbuffer, unless I set MESA_GLX_FORCE_ALPHA (which >>> makes them all get an alpha channel). Is this intentional? I would >>> guess not. >> It's intentional. >> >> With the xlib driver, we're faking GLX. Since we're acting like an ordinary >> X client we have no notion of visual alpha channels so by default there >> isn't an alpha channel. When MESA_GLX_FORCE_ALPHA is set, we add an alpha >> channel to each visual. This isn't free, however, since we have to allocate >> extra memory and do extra work. >> > The problem is that without an alpha channel things like blend > operations on the framebuffer that use the destination's alpha > component don't work properly. > eg. glBendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);
If your app/Wine calls glXChooseVisual() with GLX_ALPHA_SIZE > 0 you should be getting a visual with an alpha channel, regardless of MESA_GLX_FORCE_ALPHA. Does Wine do that? >>> The other issue is that not being able to link multiple >>> >>> GLSL shaders together makes Mesa's GLSL implementation pretty much >>> unusable for Wine. Due to the way D3D SM3 shaders work we're pretty >>> much forced to link a second vertex shader to the main vertex shader >>> that matches up the correct vertex shader output varyings with the >>> fragment shader input varyings for the fragment shader that's used at >>> the time. >> This is the first app I've heard of that needs the full linker. The easiest >> way to implement this in Mesa would be to concatenate all the shader source >> files together then compile the result. Unfortunately, I really don't have >> any time to work on that. >> > I think that's also the way nvidia handles this in their drivers, but > the main disadvantage of that approach is that linking becomes a lot > more expensive. Otoh, any other implementation will probably be a lot > harder. Yup. -Brian ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
