[Mesa-dev] [Piglit] [PATCH] ext_framebuffer_multisample: check for num_samples<=1

Marek Olšák maraeo at gmail.com
Mon Jan 28 08:17:41 PST 2013


On Mon, Jan 28, 2013 at 4:54 PM, Brian Paul <brianp at vmware.com> wrote:
> [cross-posting this reply to the mesa-dev list]
>
>
> On 01/27/2013 09:07 AM, Brian Paul wrote:
>>
>> On Sun, Jan 27, 2013 at 2:51 AM, Eric Anholt<eric at anholt.net>  wrote:
>>>
>>> Brian Paul<brianp at vmware.com>  writes:
>>>
>>>> Even if GL_ARB_multisample is advertised, it's OK for the max number of
>>>> samples to be zero.
>>>
>>>
>>> Huh?  The EXT_framebuffer_multisample spec says minmax of MAX_SAMPLES is
>>> 1.
>>
>>
>> And GL_ARB_framebuffer_object says it's zero.
>>
>> It looks like the piglit test is checking the wrong extension.  At
>> line 364 we're calling
>> piglit_require_extension("GL_ARB_framebuffer_object").  I don't see
>> any checks for GL_EXT_framebuffer_multisample.  I was looking at
>> GL_MAX_SAMPLES in the former, not the later.
>>
>> I guess the proper fix is to just check for the proper extension.
>
>
>
> There's several things going on here.
>
> First, the piglit test needs a
> piglit_require_extension("GL_EXT_framebuffer_multisample") check.
>
> Second, I think we need to disable advertising this extension for swrast,
> softpipe and llvmpipe.
>
> Third, I think we need to decide what GL_MAX_SAMPLES=1 really means.
>
> I've been reading the various multisample-related extensions and none of
> them really says anything special about GL_MAX_SAMPLES=1.  But in some
> places (like the GLSL spec) you'll see the phrase "single-sampling" but it
> seems to mean the non-multisample / conventional rasterization case.
>
> My thinking is that it would be theoretically possible to have single-sample
> multisampling (perhaps with a different sample position per pixel).
>
> In any case, regardless of the number of samples per pixel, we still must
> obey centroid sampling mode (must interpolate at a point that lies in both
> the pixel and in the primitive being
> rendered).  swrast, softpipe and llvmpipe don't support that so we really
> shouldn't advertise GL_MAX_SAMPLES=1 (it should be zero) so
> GL_EXT_framebuffer_multisample shouldn't be advertised for those drivers.
>
> Most likely, the user's going to be disappointed if they want multisampling
> in their app and the driver only gives him GL_MAX_SAMPLES=1.
>
> Does this sound reasonable?

I think that not advertising ARB_framebufer_object (which adds
GL_MAX_SAMPLES) is a much worse solution than returning GL_MAX_SAMPLES
<= 1.

EXT_framebuffer_multisample is only a subset of ARB_framebuffer_object...

Marek


More information about the mesa-dev mailing list