[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