gallium: Add new fine grained PIPE_CAP_xx for shader limits.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 12 May 2010 13:08:22 +0000 (14:08 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 12 May 2010 13:11:28 +0000 (14:11 +0100)
PIPE_CAP_GLSL and PIPE_CAP_SM3 not removed yet, as opcode support is not
yet covered.

src/gallium/docs/source/screen.rst
src/gallium/include/pipe/p_defines.h

index c5815f8939c2f61d803fc8ea805f51876c99222e..71b7aec35a5cc85755c8767b305d7bd682015d30 100644 (file)
@@ -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:
index 7e43edcff8c66f62c975030e2a99ab37f543c9ab..2d363dd47b61c4bfad30c5bdc29a4546127d26e7 100644 (file)
@@ -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
 };