[Mesa-dev] [PATCH 1/2] gallium/docs: improve docs for SAMPLE_POS, SAMPLE_INFO, TXQS, MSAA semantics

Marek Olšák maraeo at gmail.com
Wed Aug 23 11:11:25 UTC 2017


On Wed, Aug 23, 2017 at 1:04 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Wed, Aug 23, 2017 at 2:49 AM, Roland Scheidegger <sroland at vmware.com> wrote:
>> Am 23.08.2017 um 01:59 schrieb Marek Olšák:
>>> On Wed, Aug 23, 2017 at 12:30 AM, Roland Scheidegger <sroland at vmware.com> wrote:
>>>> Am 22.08.2017 um 17:15 schrieb Marek Olšák:
>>>>> On Sun, Aug 20, 2017 at 12:32 AM, Roland Scheidegger <sroland at vmware.com> wrote:
>>>>>> Am 19.08.2017 um 21:32 schrieb Marek Olšák:
>>>>>>> How about we remove all opcodes that are unused? Like:
>>>>>>>
>>>>>>> SAMPLE_POS
>>>>>>> SAMPLE_INFO
>>>>>>> SAMPLE
>>>>>>> SAMPLE_I
>>>>>>> SAMPLE_I_MS
>>>>>>> SAMPLE_B
>>>>>>> SAMPLE_C
>>>>>>> SAMPLE_C_LZ
>>>>>>> SAMPLE_D
>>>>>>> SAMPLE_L
>>>>>>> GATHER4
>>>>>>> SVIEWINFO
>>>>>> These are all d3d10 opcodes, and we need them (llvmpipe supports all of
>>>>>> them with the exception of sample_pos and sample_info, right now). (It's
>>>>>
>>>>> SAMPLE_INFO is almost the same as TXQS and given the current state of
>>>>> driver support, it would be better to remove SAMPLE_INFO and keep
>>>>> TXQS.
>>>>>
>>>>> SAMPLE_INFO returns (samples, 0, 0, 0), while TXQS returns (samples,
>>>>> undef, undef, undef).
>>>>>
>>>>> There is also RESQ, which returns (w, h, d|layers, samples).
>>>>>
>>>>
>>>> They take different register types, however.
>>>
>>> Most instructions support multiple register types. MOV supports TEMP,
>>> CONST, IN, OUT. LOAD supports IMAGE, BUFFER, and in the future maybe
>>> also CONSTBUF and SAMP.
>>>
>> That's true, but there aren't really any opcodes which could take either
>> sampler view reg file or sampler. Albeit I suppose it would be doable.
>> Though it looks to me like you could easily ditch TXQS in favor of RESQ
>> too then...
>
> and TXF could be ditched in favor of LOAD.

I also forgot to say that TXF, TXQ, TEX and all tex opcodes, LOAD,
STORE, and ATOMIC* accept IN, CONST, TEMP, OUT (if reads are allowed)
as the resource, which means it's a bindless resource handle.

Marek


More information about the mesa-dev mailing list