From c9db97c8229689060fab0edee7df717f804b99ce Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Mon, 31 May 2010 02:20:34 -0400 Subject: 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) --- src/gallium/include/pipe/p_state.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/gallium/include') 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; }; /** -- cgit v1.2.3