On 25.04.2013 19:22, Roland Scheidegger wrote: > 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 <za...@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
Actually yes, we can output 4 * [0 to 128] components on >= Fermi. It's getting a bit large though (2 KiB), so I'd probably switch to not storing that whole struct for each shader then (in the driver) ... > 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 > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev