summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2013-03-14 11:10:16 +0100
committerChristian König <christian.koenig@amd.com>2013-03-19 13:38:32 +0100
commit897303f8ffb78026bf6563c87c699e37465e9f33 (patch)
tree653cbbc267d362988ec91350b93c27b93985aac5
parent21190fbd56ec2f12dc5a1bf1d9fc32d507e8f0a3 (diff)
tgsi: add ArrayID documentation v2
v2: further improve the text with comments from Christoph Bumiller. Signed-off-by: Christian König <christian.koenig@amd.com>
-rw-r--r--src/gallium/docs/source/tgsi.rst18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/docs/source/tgsi.rst b/src/gallium/docs/source/tgsi.rst
index d9a7fe9774a..4c55e60cff0 100644
--- a/src/gallium/docs/source/tgsi.rst
+++ b/src/gallium/docs/source/tgsi.rst
@@ -1833,6 +1833,24 @@ If Interpolate flag is set to 1, a Declaration Interpolate token follows.
If file is TGSI_FILE_RESOURCE, a Declaration Resource token follows.
+If Array flag is set to 1, a Declaration Array token follows.
+
+Array Declaration
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+Declarations can optional have an ArrayID attribute which can be referred by
+indirect addressing operands. An ArrayID of zero is reserved and treaded as
+if no ArrayID is specified.
+
+If an indirect addressing operand refers to a specific declaration by using
+an ArrayID only the registers in this declaration are guaranteed to be
+accessed, accessing any register outside this declaration results in undefined
+behavior. Note that for compatibility the effective index is zero-based and
+not relative to the specified declaration
+
+If no ArrayID is specified with an indirect addressing operand the whole
+register file might be accessed by this operand. This is strongly discouraged
+and will prevent packing of scalar/vec2 arrays and effective alias analysis.
Declaration Semantic
^^^^^^^^^^^^^^^^^^^^^^^^