[Mesa-dev] [PATCH 2/5] gallium: increase the number of available stream output decls
Roland Scheidegger
sroland at vmware.com
Thu Apr 25 10:22:25 PDT 2013
Am 24.04.2013 00:58, schrieb Zack Rusin:
> There can be more stream output decls than shader outputs because
> individual components from them can be split and distributed
> among different so buffers.
>
> Signed-off-by: Zack Rusin <zackr at vmware.com>
> ---
> src/gallium/include/pipe/p_state.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
> index c0b2bcd..5830dff 100644
> --- a/src/gallium/include/pipe/p_state.h
> +++ b/src/gallium/include/pipe/p_state.h
> @@ -64,6 +64,7 @@ extern "C" {
> #define PIPE_MAX_SHADER_RESOURCES 32
> #define PIPE_MAX_TEXTURE_LEVELS 16
> #define PIPE_MAX_SO_BUFFERS 4
> +#define PIPE_MAX_SO_OUTPUT_COMPONENT_COUNT 128
>
>
> struct pipe_reference
> @@ -198,7 +199,7 @@ struct pipe_stream_output_info
> unsigned num_components:3; /** 1 to 4 */
> unsigned output_buffer:3; /**< 0 to PIPE_MAX_SO_BUFFERS */
> unsigned dst_offset:16; /**< offset into the buffer in dwords */
> - } output[PIPE_MAX_SHADER_OUTPUTS];
> + } output[PIPE_MAX_SO_BUFFERS * PIPE_MAX_SO_OUTPUT_COMPONENT_COUNT];
> };
>
>
>
Are you sure this isn't overkill, that is if you have multiple buffers
this really increases the total number of attributes you can output? I
thought this merely allows you to distribute the same number to
different buffers.
Also I'm not quite convinced with the 128 number. It looks like d3d10
has a limit of 64 components, and it seems like OpenGL would be happy
with that as well.
Roland
More information about the mesa-dev
mailing list