Skip to content

glsl: Fix recording of variables for XFB in TCS shaders

José María Casanova Crespo requested to merge chema/mesa:fix-108457 into master

This series fixes the KHR-GL45.tessellation_shader.single.xfb_captures_data_from_correct_stage regression reported at https://bugs.freedesktop.org/show_bug.cgi?id=108457

The change at OpenGL CTS ("Use non-arrayed varying name for TCS blocks") on KHR-GL*.tessellation_shader.single.xfb_captures_data_from_correct_stage tests changed how to name per-vertex Tessellation Control Shader output varyings in transform feedback using interface block as "BLOCK_INOUT.value" rather than "BLOCK_INOUT[0].value"

So Tessellation control shader per-vertex output variables and blocks that are required to be declared as arrays, with each element representing output values for a single vertex of a multi-vertex primitive are expected to be named as they were not declared as arrays.

This series adapts our implementations to the updated expectation of the tests.

The second paths of the series avoids regressing the GLES version of the tests that we were passing by luck because of the name mismatch but TCS shader output varyings names should never be candidates for XFB on GLES.

On the first patch we fix some typos now we are there.

Fixes: KHR-GL4*.tessellation_shader.single.xfb_captures_data_from_correct_stage

Merge request reports