[Mesa-dev] [PATCH] st/mesa: only enable MSAA coverage options when we have a MSAA buffer

Erik Faye-Lund kusmabite at gmail.com
Sun Sep 18 09:20:38 UTC 2016


On Fri, Sep 16, 2016 at 4:42 PM, Brian Paul <brianp at vmware.com> wrote:
> On 09/16/2016 08:07 AM, Marek Olšák wrote:
>>
>> On Thu, Sep 15, 2016 at 11:20 PM, Brian Paul <brianp at vmware.com> wrote:
>>>
>>> Regardless of whether GL_MULTISAMPLE is enabled (it's enabled by default)
>>> we should not set the alpha_to_coverage or alpha_to_one flags if the
>>> current drawing buffer does not do MSAA.
>>>
>>> This fixes the new piglit gl-1.3-alpha_to_coverage_nop test.
>>> ---
>>>   src/mesa/state_tracker/st_atom_blend.c | 9 ++++++---
>>>   src/mesa/state_tracker/st_context.c    | 3 ++-
>>>   2 files changed, 8 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/src/mesa/state_tracker/st_atom_blend.c
>>> b/src/mesa/state_tracker/st_atom_blend.c
>>> index 65de67b..222267e 100644
>>> --- a/src/mesa/state_tracker/st_atom_blend.c
>>> +++ b/src/mesa/state_tracker/st_atom_blend.c
>>> @@ -265,9 +265,12 @@ update_blend( struct st_context *st )
>>>
>>>      blend->dither = ctx->Color.DitherFlag;
>>>
>>> -   if (ctx->Multisample.Enabled) {
>>> -      /* unlike in gallium/d3d10 these operations are only performed
>>> -         if msaa is enabled */
>>> +   if (ctx->Multisample.Enabled &&
>>> +       ctx->DrawBuffer &&
>>
>>
>> Is it possible for ctx->DrawBuffer to be NULL?
>
>
> Probably not, but I'm not 100% sure.  I have some memory of an extension to
> allow MakeCurrent(ctx!=null, fb==null) but I can't find it now.  Or maybe
> MakeCurrent(ctx!=null, fb==null) is supposed to be generally supported now.
> I don't remember and will have to look.

At least KHR_surfaceless_context (which is core in EGL 1.5) enables
support for something like this. I'm not sure if this actually means
DrawBuffer is NULL, though.


More information about the mesa-dev mailing list