summaryrefslogtreecommitdiff
path: root/src/gallium/include
diff options
context:
space:
mode:
authorZack Rusin <zack@kde.org>2010-05-31 02:20:34 -0400
committerZack Rusin <zackr@vmware.com>2010-06-08 06:28:10 -0400
commitc9db97c8229689060fab0edee7df717f804b99ce (patch)
tree377767cfb01881eb1fc29fb2ca23d80219bd7409 /src/gallium/include
parenta45b7f47ee0e38b288cc8fc4f6a1c013e8c227bc (diff)
gallium: a lot more complete implementation of stream output
interface wise we have everything needed by d3d10 and gl transform feedback. the draw module misses implementation of some corner cases (e.g. when stream output wants different number of components per output than normal rendering paths)
Diffstat (limited to 'src/gallium/include')
-rw-r--r--src/gallium/include/pipe/p_state.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index 33ee066c0c..771bff524b 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -348,9 +348,19 @@ struct pipe_resource
struct pipe_stream_output_state
{
+ /**< number of the output buffer to insert each element into */
+ int output_buffer[PIPE_MAX_SHADER_OUTPUTS];
+ /**< which register to grab each output from */
+ int register_index[PIPE_MAX_SHADER_OUTPUTS];
/**< format for each output */
- enum pipe_format format[PIPE_MAX_SHADER_OUTPUTS];
+ /**< TGSI_WRITEMASK signifying which components to output */
+ ubyte register_mask[PIPE_MAX_SHADER_OUTPUTS];
+ /**< number of outputs */
int num_outputs;
+
+ /**< stride for an entire vertex, only used if all output_buffers
+ * are 0 */
+ unsigned stride;
};
/**