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

Reply via email to