[Mesa-dev] [PATCH 1/2] gallium/docs: improve docs for SAMPLE_POS, SAMPLE_INFO, TXQS, MSAA semantics
Brian Paul
brianp at vmware.com
Mon Jun 12 19:13:58 UTC 2017
Or say they're undefined: sample pos = (x, y, undef, undef), for example.
I'd be OK with that. You?
-Brian
On 06/12/2017 11:47 AM, Ilia Mirkin wrote:
> Perhaps this is wrong in the grand scheme of things, but at least
> nouveau will *only* set the defined components of dst, not the
> undefined ones. Perhaps we should zero those out?
>
> On Mon, Jun 12, 2017 at 1:37 PM, Brian Paul <brianp at vmware.com> wrote:
>> For the SAMPLE_POS and SAMPLE_INFO opcodes, clarify resource vs. render
>> target queries, range of postion values, swizzling, etc. We basically
>> follow the DX10.1 conventions.
>>
>> For the TXQS opcode and TGSI_SEMANTIC_SAMPLEID, clarify return value
>> and type.
>>
>> For the TGSI_SEMANTIC_SAMPLEPOS system value, clarify the range of
>> positions returned.
>> ---
>> src/gallium/docs/source/tgsi.rst | 53 +++++++++++++++++++++++++++++++---------
>> 1 file changed, 42 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst
>> index 7fb963f..310b49d 100644
>> --- a/src/gallium/docs/source/tgsi.rst
>> +++ b/src/gallium/docs/source/tgsi.rst
>> @@ -982,7 +982,9 @@ XXX doesn't look like most of the opcodes really belong here.
>> .. opcode:: TXQS - Texture Samples Query
>>
>> This retrieves the number of samples in the texture, and stores it
>> - into the x component. The other components are undefined.
>> + into the x component as an unsigned integer. The other components are
>> + undefined. If the texture is not multisampled, this function returns
>> + (1, 0, 0, 0).
>>
>> .. math::
>>
>> @@ -2538,14 +2540,40 @@ after lookup.
>>
>> .. opcode:: SAMPLE_POS
>>
>> - Query the position of a given sample. dst receives float4 (x, y, 0, 0)
>> - indicated where the sample is located. If the resource is not a multi-sample
>> - resource and not a render target, the result is 0.
>> + Query the position of a sample in the given resource or render target
>> + when per-sample fragment shading is in effect.
>> +
>> + Syntax: ``SAMPLE_POS dst, source, sample_index``
>> +
>> + dst receives float4 (x, y, 0, 0) indicated where the sample is located.
>> + Sample locations are in the range [0, 1] where 0.5 is the center of the
>> + fragment.
>> +
>> + source is either a sampler view (to indicate a shader resource) or temp
>> + register (to indicate the render target). The source register may have
>> + an optional swizzle to apply to the returned result
>> +
>> + sample_index is an integer scalar indicating which sample position is to
>> + be queried.
>> +
>> + If per-sample shading is not in effect or the source resource or render
>> + target is not multisampled, the result is (0, 0, 0, 0).
>>
>> .. opcode:: SAMPLE_INFO
>>
>> - dst receives number of samples in x. If the resource is not a multi-sample
>> - resource and not a render target, the result is 0.
>> + Query the number of samples in a multisampled resource or render target.
>> +
>> + Syntax: ``SAMPLE_INFO dst, source``
>> +
>> + dst receives int4 (n, 0, 0, 0) where n is the number of samples in a
>> + resource or the render target.
>> +
>> + source is either a sampler view (to indicate a shader resource) or temp
>> + register (to indicate the render target). The source register may have
>> + an optional swizzle to apply to the returned result
>> +
>> + If per-sample shading is not in effect or the source resource or render
>> + target is not multisampled, the result is (1, 0, 0, 0).
>>
>>
>> .. _resourceopcodes:
>> @@ -3284,15 +3312,18 @@ TGSI_SEMANTIC_SAMPLEID
>> """"""""""""""""""""""
>>
>> For fragment shaders, this semantic label indicates that a system value
>> -contains the current sample id (i.e. gl_SampleID).
>> -This is an integer value, and only the X component is used.
>> +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, 0, 0, 0).
>>
>> TGSI_SEMANTIC_SAMPLEPOS
>> """""""""""""""""""""""
>>
>> -For fragment shaders, this semantic label indicates that a system value
>> -contains the current sample's position (i.e. gl_SamplePosition). Only the X
>> -and Y values are used.
>> +For fragment shaders, this semantic label indicates that a system
>> +value contains the current sample's position as float4(x, y, 0, 0) 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.
>>
>> TGSI_SEMANTIC_SAMPLEMASK
>> """"""""""""""""""""""""
>> --
>> 1.9.1
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=DwIBaQ&c=uilaK90D4TOVoH58JNXRgQ&r=Ie7_encNUsqxbSRbqbNgofw0ITcfE8JKfaUjIQhncGA&m=Rf5WxNSp1rJlF8Sn19utEreOUJk2L1hqNZSDk3yPLFc&s=44Rk8znw2BUsD4CJtTuGgIp-i6eBDQbhywzt8Ctox5c&e=
More information about the mesa-dev
mailing list