[Mesa-dev] [PATCH 01/17] gallium: Add PIPE_CAP_MSAA_MODES
eocallaghan at alterapraxis.com
eocallaghan at alterapraxis.com
Mon Mar 21 11:30:31 UTC 2016
On 2016-03-21 21:06, Marek Olšák wrote:
> On Sat, Mar 19, 2016 at 5:09 PM, Ilia Mirkin <imirkin at alum.mit.edu>
> wrote:
>> On Sat, Mar 19, 2016 at 12:02 PM, Bas Nieuwenhuizen
>> <bas at basnieuwenhuizen.nl> wrote:
>>> On Sat, Mar 19, 2016 at 4:25 PM, Ilia Mirkin <imirkin at alum.mit.edu>
>>> wrote:
>>>> On Sat, Mar 19, 2016 at 11:14 AM, Bas Nieuwenhuizen
>>>> <bas at basnieuwenhuizen.nl> wrote:
>>>>> That would limit us to supporting sample counts for which we have
>>>>> texture formats.
>>>>>
>>>>> As far as I understand with radeonsi we can support 16 samples
>>>>> without
>>>>> any attachments, but all formats are limited to <= 8 samples.
>>>>
>>>> So you're going to end up with a situation where GL_MAX_SAMPLES is
>>>> less than GL_MAX_FRAMEBUFFER_SAMPLES? I don't know that that's a
>>>> useful thing to have. This implementation still has the problem of
>>>> only supporting POT MSAA levels (although tbh I'm not 100% sure
>>>> there's hw out there that supports NPOT MSAA levels). If people
>>>> really
>>>> want this, I think the way to go would be to make
>>>> is_format_supported() work with PIPE_FORMAT_NONE and do it that way.
>>>>
>>>> Also, are you *sure* that's the case on radeonsi? I find it very odd
>>>> that the rasterizer would support a higher MSAA level than the
>>>> highest
>>>> attachment would...
>>>
>>> I am pretty confident that this is the case. I just tested 16 samples
>>> (although this series seems to miss changing MaxFramebufferSamples),
>>> and the driver disallows any texture format with > 8 samples [1].
>>> Furthermore the proprietary driver on Windows seems to have
>>> GL_MAX_SAMPLES=8 and GL_MAX_FRAMEBUFFER_SAMPLES=16 [2].
>>
>> OK. I still think it's crazy, but it is what it is :)
>
> It's called EQAA (similar to CSAA). The hardware can do 16 unique
> depth samples, but only 8 unique color samples can be stored. Other
> than that, the rasterization hw supports 16x MSAA fully.
>
>>
>>>
>>> Using PIPE_FORMAT_NONE to query the driver would probably be a bit
>>> less error prone than the current code that sets the masks, so that
>>> would be fine with me.
>>
>> Actually my earlier criticism about it only doing POT levels is a bit
>> off -- after reading some more of the code, I just think that the
>> settings to drivers were off - it should have been (1 << 8) | (1 <<
>> 4), etc. This works up to 32x MSAA, which is not supported by anyone
>> (for real, although NVIDIA blob drivers do fake it).
>
> R300 can do 6x MSAA, but granted it won't support this extension.
>
>>
>> I do still prefer to avoid having separate places where this info is
>> encoded... so I maintain my vote for using PIPE_FORMAT_NONE in
>> is_format_supported.
>
> Same here.
Same. I fixed this in the up-coming series.
>
> Marek
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list