[Mesa-dev] [PATCH] gallium/docs: document automatic per-sample FS execution
Roland Scheidegger
sroland at vmware.com
Thu Jul 27 20:29:16 UTC 2017
Ok, I suppose that makes sense.
I just wouldn't be surprised if some driver instead just relies on the
set_min_samples() value all the time and ignoring it should really run
at per sample frequency in any case.
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Am 27.07.2017 um 21:31 schrieb Brian Paul:
> The DX10.1 docs specify this, and there's language in both the
> GL_ARB_sample_shading and GLSL 4.00 specs that this behavior is
> expected. I think it makes sense to say the same for gallium.
>
> Mesa's _mesa_get_min_invocations_per_fragment() returns N samples when
> the FS uses the sample ID or position, where N = number of samples in
> the render target. That is, glMinSampleShading has no effect() and we
> call set_min_samplers(N).
>
> That's consistent with NVIDIA's driver- the value set with
> glMinSampleShading() has no effect on the sample pos or sample ID piglit
> tests.
>
> -Brian
>
> On 07/27/2017 12:49 PM, Roland Scheidegger wrote:
>> Are you sure on this?
>> If you can do per-sample shading (there's a cap bit for it), then you're
>> supposed to implement set_min_samples(). The state tracker will set this
>> accordingly if these inputs are used then.
>>
>> Though maybe it would make sense regardless...
>>
>> Roland
>>
>>
>> Am 27.07.2017 um 19:54 schrieb Brian Paul:
>>> Both the GLSL 4.00 specs and DX10.1 specs specify that if a fragment
>>> shader uses the sample ID or sample position inputs, the shader is
>>> automatically run at per sample frequency. Document that expectation
>>> for gallium fragment shaders.
>>> ---
>>> src/gallium/docs/source/tgsi.rst | 6 ++++++
>>> 1 file changed, 6 insertions(+)
>>>
>>> diff --git a/src/gallium/docs/source/tgsi.rst
>>> b/src/gallium/docs/source/tgsi.rst
>>> index 0dd2ac0..d7817cc 100644
>>> --- a/src/gallium/docs/source/tgsi.rst
>>> +++ b/src/gallium/docs/source/tgsi.rst
>>> @@ -3331,6 +3331,9 @@ contains the current sample id (i.e.
>>> gl_SampleID) as an unsigned int.
>>> Only the X component is used. If per-sample shading is not enabled,
>>> the result is (0, undef, undef, undef).
>>>
>>> +Note that if the fragment shader uses this system value, the fragment
>>> +shader is automatically executed at per sample frequency.
>>> +
>>> TGSI_SEMANTIC_SAMPLEPOS
>>> """""""""""""""""""""""
>>>
>>> @@ -3340,6 +3343,9 @@ in the render target (i.e. gl_SamplePosition)
>>> when per-fragment shading
>>> is in effect. Position values are in the range [0, 1] where 0.5 is
>>> the center of the fragment.
>>>
>>> +Note that if the fragment shader uses this system value, the fragment
>>> +shader is automatically executed at per sample frequency.
>>> +
>>> TGSI_SEMANTIC_SAMPLEMASK
>>> """"""""""""""""""""""""
>>>
>>>
>>
>
More information about the mesa-dev
mailing list