panfrost/docs: Fix v9+ varyings description

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40515>
This commit is contained in:
Lorenzo Rossi 2026-03-19 11:49:29 +01:00 committed by Marge Bot
parent caf5a2640b
commit f742482ef6

View file

@ -67,14 +67,14 @@ also load (flat) ints with those. We need to specify no conversion
(``.f16.src_flat16`` or ``.f32.src_flat32``), but with those we can load both
16-bit and 32-bit integers.
In this architecture the descriptors got a major update too and now there is
just one set of descriptors for both the VS and FS.
In this architecture we assume the VS always uses IDVS, emitting attribute data
with ``LEA_BUF`` (instead of ``LEA_ATTR``), and never emit varying
``AttributeDescriptor`` for VS.
Challenges
==========
Theoretically, the output types from the VS and input types from the FS should
always agree. In practice we cannot always trust the varyings types given to us,
always agree. In practice we cannot trust the varyings types given to us,
here are some challenging examples:
* Shaders are allowed to use the same types with different precision modifiers.
@ -97,10 +97,8 @@ In practice you have to follow these rules:
Current implementation rules:
* VS decides the memory layout
* On v9+, FS decides the descriptor formats, VS uses auto32 for 32-bit types
* On v7-, descriptor formats can mismatch (VS int - FS float)
* Descriptor formats always match what the instructions are using (unless V9
auto32)
* Descriptor formats can mismatch between stages (eg. VS int - FS float)
* Descriptor formats always match what the instructions are using
To regain the type information: