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);

>> 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.


Henri

-------------------------------------------------------------------------
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