Skip to content
  • Paul Berry's avatar
    Modify tests for error checking on "flat" keyword to match updated specs. · 0fac0a62
    Paul Berry authored
    All of the GLSL specs from GLSL 1.30 (and GLSL ES 3.00) onward contain
    language requiring certain integer variables to be declared with the
    "flat" keyword, but they differ in exactly *when* the rule is
    enforced:
    
    (a) GLSL 1.30 and 1.40 say that vertex shader outputs having integral
    type must be declared as "flat".  There is no restriction on fragment
    shader inputs.
    
    (b) GLSL 1.50 through 4.30 say that fragment shader inputs having
    integral type must be declared as "flat".  There is no restriction on
    vertex shader outputs.
    
    (c) GLSL ES 3.00 says that both vertex shader outputs and fragment
    shader inputs having integral type must be declared as "flat".
    
    Previously, Piglit simply checked for behaviour (a).  This patch makes
    it check for behaviour (b) in desktop GL and behaviour (c) in GLES.
    
    Rationale: once geometry shader support is included, (b) is the only
    sensible choice, because it requires "flat" in just the situations
    where it matters.  Since many implementations extend geometry shader
    support back before GLSL 1.50 (via ARB_geometry_shader4), it seems
    sensible to regard the difference between (a) and (b) as a bug fix
    rather than a deliberate behavioural difference, and therefore test
    for behaviour (b) even in GLSL 1.30.
    
    Some discussion about this has already happened on the Mesa-dev list.
    See:
    
    http://lists.freedesktop.org/archives/mesa-dev/2013-February/034199.html
    
    
    
    Reviewed-by: default avatarAnuj Phogat <anuj.phogat@gmail.com>
    0fac0a62