docs: Implement constant buffer CAPs.
authorMichal Krol <michal@vmware.com>
Mon, 25 Jan 2010 13:55:24 +0000 (14:55 +0100)
committerMichal Krol <michal@vmware.com>
Thu, 28 Jan 2010 13:08:16 +0000 (14:08 +0100)
src/gallium/docs/source/screen.rst

index 1fff20f5398798dec6abce17b5e7ea4564aee36e..905ff24db99931e81cc629a80d89753705a89b71 100644 (file)
@@ -78,7 +78,29 @@ Returns the screen vendor.
 get_param
 ^^^^^^^^^
 
-Get an integer/boolean screen parameter.
+Get an integer/boolean screen parameter. Valid parameter names include.
+
+* ``PIPE_CAP_MAX_CONST_BUFFERS``: Maximum number of constant buffers that
+  can be bound to any shader stage using ``set_constant_buffer``.
+  
+  If 0 is returned, the driver is not aware of multiple constant buffers,
+  supports binding of only one constant buffer, and does not support
+  two-dimensional CONST register file access in TGSI shaders.
+  
+  If a value greater than 0 is returned, the driver can have multiple
+  constant buffers bound to shader stages. The CONST register file can
+  be accessed with two-dimensional indices, like in the example below.
+  
+    DCL CONST[0][0..7]       # declare first 8 vectors of constbuf 0
+    DCL CONST[3][0]          # declare first vector of constbuf 3
+    MOV OUT[0], CONST[0][3]  # copy vector 3 of constbuf 0
+  
+  For backwards compatibility, one-dimensional access to CONST register
+  file is still supported. In that case, the constbuf index is assumed
+  to be 0.
+
+* ``PIPE_CAP_MAX_CONST_BUFFER_SIZE``: Maximum byte size of a single constant
+  buffer.
 
 get_paramf
 ^^^^^^^^^^