summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2010-05-12 14:08:22 +0100
committerJosé Fonseca <[email protected]>2010-05-12 14:11:28 +0100
commitbfc702d1e7470d611600dad18e0f829d08281eed (patch)
treeb07345d622aaba0350067fb233205dcd2fa738cf
parente1238b5cad3845c029f60d92c08e810274517d33 (diff)
gallium: Add new fine grained PIPE_CAP_xx for shader limits.
PIPE_CAP_GLSL and PIPE_CAP_SM3 not removed yet, as opcode support is not yet covered.
-rw-r--r--src/gallium/docs/source/screen.rst16
-rw-r--r--src/gallium/include/pipe/p_defines.h24
2 files changed, 40 insertions, 0 deletions
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
index c5815f8939c..71b7aec35a5 100644
--- a/src/gallium/docs/source/screen.rst
+++ b/src/gallium/docs/source/screen.rst
@@ -101,6 +101,22 @@ The floating-point capabilities:
* ``GUARD_BAND_LEFT``, ``GUARD_BAND_TOP``, ``GUARD_BAND_RIGHT``,
``GUARD_BAND_BOTTOM``: XXX
+Fragment shader limits:
+
+* ``PIPE_CAP_MAX_FS_INSTRUCTIONS``: The maximum number of instructions.
+* ``PIPE_CAP_MAX_FS_ALU_INSTRUCTIONS``: The maximum number of arithmetic instructions.
+* ``PIPE_CAP_MAX_FS_TEX_INSTRUCTIONS``: The maximum number of texture instructions.
+* ``PIPE_CAP_MAX_FS_TEX_INDIRECTIONS``: The maximum number of texture indirections.
+* ``PIPE_CAP_MAX_FS_CONTROL_FLOW_DEPTH``: The maximum nested control flow depth.
+* ``PIPE_CAP_MAX_FS_INPUTS``: The maximum number of input registers.
+* ``PIPE_CAP_MAX_FS_CONSTS``: The maximum number of constants.
+* ``PIPE_CAP_MAX_FS_TEMPS``: The maximum number of temporary registers.
+* ``PIPE_CAP_MAX_FS_ADDRS``: The maximum number of address registers.
+* ``PIPE_CAP_MAX_FS_PREDS``: The maximum number of predicate registers.
+
+Vertex shader limits:
+
+* ``PIPE_CAP_MAX_VS_*``: Identical to ``PIPE_CAP_MAX_FS_*``.
.. _pipe_bind:
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index 7e43edcff8c..2d363dd47b6 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -457,6 +457,30 @@ enum pipe_cap {
PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT,
PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER,
PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER,
+
+ /*
+ * Shader limits.
+ */
+ PIPE_CAP_MAX_FS_INSTRUCTIONS,
+ PIPE_CAP_MAX_FS_ALU_INSTRUCTIONS,
+ PIPE_CAP_MAX_FS_TEX_INSTRUCTIONS,
+ PIPE_CAP_MAX_FS_TEX_INDIRECTIONS,
+ PIPE_CAP_MAX_FS_CONTROL_FLOW_DEPTH,
+ PIPE_CAP_MAX_FS_INPUTS,
+ PIPE_CAP_MAX_FS_CONSTS,
+ PIPE_CAP_MAX_FS_TEMPS,
+ PIPE_CAP_MAX_FS_ADDRS,
+ PIPE_CAP_MAX_FS_PREDS,
+ PIPE_CAP_MAX_VS_INSTRUCTIONS,
+ PIPE_CAP_MAX_VS_ALU_INSTRUCTIONS,
+ PIPE_CAP_MAX_VS_TEX_INSTRUCTIONS,
+ PIPE_CAP_MAX_VS_TEX_INDIRECTIONS,
+ PIPE_CAP_MAX_VS_CONTROL_FLOW_DEPTH,
+ PIPE_CAP_MAX_VS_INPUTS,
+ PIPE_CAP_MAX_VS_CONSTS,
+ PIPE_CAP_MAX_VS_TEMPS,
+ PIPE_CAP_MAX_VS_ADDRS,
+ PIPE_CAP_MAX_VS_PREDS
};