Skip to content
  • Marcin Ślusarz's avatar
    st/mesa: fix transform feedback of unsubscripted gl_ClipDistance array · 7e63b613
    Marcin Ślusarz authored
    gl_ClipDistance needs special treatment in form of lowering pass
    which transforms gl_ClipDistance representation from float[] to
    vec4[]. There are 2 implementations - at glsl linker level (enabled
    by LowerClipDistance option) and at glsl_to_tgsi level (enabled
    unconditionally for gallium drivers). Second implementation is
    incomplete - it does not take into account transform feedback (see
    commit 642e5b41 "mesa: Fix transform
    feedback of unsubscripted gl_ClipDistance array" for details).
    
    There are 2 possible fixes:
    - adding transform feedback support into glsl_to_tgsi version
    - ripping gl_ClipDistance support from glsl_to_tgsi and enabling
      gl_ClipDistance lowering on glsl linker side
    
    This patch implements 2nd option. All it does is:
    - reverts most of the commit 59be6916
      "st/mesa: add support for gl_ClipDistance"
    - changes LowerClipDistance to true
    
    Fixes Piglit tests "EXT_transform_feedback/builtin-varyings
    gl_ClipDistance[{2,3,4,5,6,7,8}]-no-subscript" at least on nv50
    and evergreen cards.
    7e63b613