tgsi: add SUBGROUP_* semantics

v2: add documentation (Nicolai)

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Ilia Mirkin
2017-02-09 18:48:18 -05:00
committed by Nicolai Hähnle
parent 3650d7455f
commit 08bd0aa507
3 changed files with 65 additions and 0 deletions
@@ -99,6 +99,13 @@ const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] =
"BASEINSTANCE",
"DRAWID",
"WORK_DIM",
"SUBGROUP_SIZE",
"SUBGROUP_INVOCATION",
"SUBGROUP_EQ_MASK",
"SUBGROUP_GE_MASK",
"SUBGROUP_GT_MASK",
"SUBGROUP_LE_MASK",
"SUBGROUP_LT_MASK",
};
const char *tgsi_texture_names[TGSI_TEXTURE_COUNT] =
+51
View File
@@ -3430,6 +3430,57 @@ For compute shaders, this semantic indicates the (x, y, z) coordinates of the
current thread inside of the block.
TGSI_SEMANTIC_SUBGROUP_SIZE
"""""""""""""""""""""""""""
This semantic indicates the subgroup size for the current invocation. This is
an integer of at most 64, as it indicates the width of lanemasks. It does not
depend on the number of invocations that are active.
TGSI_SEMANTIC_SUBGROUP_INVOCATION
"""""""""""""""""""""""""""""""""
The index of the current invocation within its subgroup.
TGSI_SEMANTIC_SUBGROUP_EQ_MASK
""""""""""""""""""""""""""""""
A bit mask of ``bit index == TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``1 << subgroup_invocation`` in arbitrary precision arithmetic.
TGSI_SEMANTIC_SUBGROUP_GE_MASK
""""""""""""""""""""""""""""""
A bit mask of ``bit index >= TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``((1 << (subgroup_size - subgroup_invocation)) - 1) << subgroup_invocation``
in arbitrary precision arithmetic.
TGSI_SEMANTIC_SUBGROUP_GT_MASK
""""""""""""""""""""""""""""""
A bit mask of ``bit index > TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``((1 << (subgroup_size - subgroup_invocation - 1)) - 1) << (subgroup_invocation + 1)``
in arbitrary precision arithmetic.
TGSI_SEMANTIC_SUBGROUP_LE_MASK
""""""""""""""""""""""""""""""
A bit mask of ``bit index <= TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``(1 << (subgroup_invocation + 1)) - 1`` in arbitrary precision arithmetic.
TGSI_SEMANTIC_SUBGROUP_LT_MASK
""""""""""""""""""""""""""""""
A bit mask of ``bit index > TGSI_SEMANTIC_SUBGROUP_INVOCATION``, i.e.
``(1 << subgroup_invocation) - 1`` in arbitrary precision arithmetic.
Declaration Interpolate
^^^^^^^^^^^^^^^^^^^^^^^
@@ -199,6 +199,13 @@ enum tgsi_semantic {
TGSI_SEMANTIC_BASEINSTANCE,
TGSI_SEMANTIC_DRAWID,
TGSI_SEMANTIC_WORK_DIM, /**< opencl get_work_dim value */
TGSI_SEMANTIC_SUBGROUP_SIZE,
TGSI_SEMANTIC_SUBGROUP_INVOCATION,
TGSI_SEMANTIC_SUBGROUP_EQ_MASK,
TGSI_SEMANTIC_SUBGROUP_GE_MASK,
TGSI_SEMANTIC_SUBGROUP_GT_MASK,
TGSI_SEMANTIC_SUBGROUP_LE_MASK,
TGSI_SEMANTIC_SUBGROUP_LT_MASK,
TGSI_SEMANTIC_COUNT, /**< number of semantic values */
};