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

Reply via email to