H. Verbeet wrote: > This patch and the next one fix some failures in Wine's D3D9 > fog_with_shader_test() unit test when run with Mesa's swrast. I > suppose it could have some impact on the other drivers as well.
There's a problem with the _tnl_allow_vertex/pixel_fog() functions even without your patch. They're called during context creation and check the Fog hint state but if the fog hint is changed later, the _DoVertexFog state isn't updated. I think I can fix that and incorporate your patch. > 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. Of course, none of this applies to DRI drivers. > 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. -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
