[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