[Mesa-dev] [PATCH] gallium/docs: document automatic per-sample FS execution
Brian Paul
brianp at vmware.com
Thu Jul 27 19:31:18 UTC 2017
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