[Mesa-dev] [PATCH] mesa: Fix transform feedback of unsubscripted arrays.

Kenneth Graunke kenneth at whitecape.org
Wed Jan 4 02:50:11 PST 2012


On 01/03/2012 10:35 PM, Paul Berry wrote:
> It is not explicitly stated in the GL 3.0 spec that transform feedback
> can be performed on a whole varying array (without supplying a
> subscript).  However, it seems clear from context that this was the
> intent.  Section 2.15 (TransformFeedback) says this:
> 
>     When writing varying variables that are arrays, individual array
>     elements are written in order.
> 
> And section 2.20.3 (Shader Variables), says this, in the description
> of GetTransformFeedbackVarying:
> 
>     For the selected varying variable, its type is returned into
>     type. The size of the varying is returned into size. The value in
>     size is in units of the type returned in type.
> 
> If it were not possible to perform transform feedback on an
> unsubscripted array, the returned size would always be 1.
> 
> This patch fixes the linker so that transform feedback on an
> unsubscripted array is supported.
> 
> Fixes piglit tests "EXT_transform_feedback/builtin-varyings
> gl_ClipDistance[{4,8}]-no-subscript" and
> "EXT_transform_feedback/output_type *[2]-no-subscript".
> 
> Note: on back-ends that set
> gl_shader_compiler_options::LowerClipDistance (for example i965),
> tests "EXT_transform_feedback/builtin-varyings
> gl_ClipDistance[{1,2,3,5,6,7}]" still fail.  I hope to address this in
> a later patch.
> ---
>  src/glsl/linker.cpp |   99 ++++++++++++++++++++++++++++-----------------------
>  1 files changed, 54 insertions(+), 45 deletions(-)

Looks good to me.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>



More information about the mesa-dev mailing list