• Józef Kucia's avatar
    wined3d: Do not declare pixel shader inputs when they are not used. · 2b77c00b
    Józef Kucia authored
    This is a workaround for a bug in Mesa GLSL linker. The bug is triggered
    by GLSL generated for SM3 shaders when shader inputs are not read and
    interface blocks are used for shader inputs/outputs (core profile code
    path).
    
    Declarations for unused shader inputs are not generated for pixel
    shaders. We still declare shader outputs in the previous shader stage,
    but it's allowed by the GLSL 1.50 spec:
    
      "Only output variables that are read by the subsequent pipeline stage
      need to be written; it is allowed to have superfluous declarations of
      output variables."
    
    The table in section 4.3.4 (Input Variables) of the GLSL 4.20 spec even
    more explicitly allows shader output variables with no matching input
    variables declared in the consuming shader.
    Signed-off-by: 's avatarJózef Kucia <jkucia@codeweavers.com>
    Signed-off-by: 's avatarHenri Verbeet <hverbeet@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    2b77c00b
glsl_shader.c 493 KB