1. 03 Nov, 2016 8 commits
  2. 02 Nov, 2016 7 commits
  3. 01 Nov, 2016 8 commits
  4. 31 Oct, 2016 5 commits
  5. 29 Oct, 2016 1 commit
    • Reland "Remove invariant qualifier for input in fragment shader" · 705a9194
      Qiankun Miao authored
      This relands https://chromium-review.googlesource.com/#/c/400005/.
      
      ESSL and GLSL are not consistent on invariant matching in vertex shader
      and fragment shader. See the following rules:
      ESSL 1.00 - input and output must match
      ESSL 3.00 - only output, inputs cannot be declared as invariant.
      
      GLSL 1.10.59 - does not exist
      GLSL 1.20.8  - input and output must match
      GLSL 1.30.10 - input and output must match
      GLSL 1.40.8  - input and output must match
      GLSL 1.50.11 - input and output must match
      GLSL 3.30.6  - input and output must match
      GLSL 4.00.9  - input and output must match
      GLSL 4.10.6  - input and output must match
      GLSL 4.20.11 - input can omit invariant
      GLSL 4.30.8  - input can omit invariant
      GLSL 4.40.9  - input can omit invariant
      GLSL 4.50.5  - input can omit invariant
      
      Since GLSL 4.20, invariant qualifier description were changed to:
      "
      Only variables output from a shader (including those that are then input
      to a subsequent shader) can be candidates for invariance. This includes
      user-defined output variables and the built-in output variables. As only
      outputs need be declared with invariant, an output from one shader stage
      will still match an input of a subsequent stage without the input being
      declared as invariant.
      "
      It's not very clear if input in fragment can be declared as invariant.
      Mesa driver disallows use of input declared as invariant in fragment
      shader, while other drivers may allow it. This CL removes invariant
      declaration for input in fragment shader except AMD driver in Linux.
      AMD's driver obviously contradicts the spec by forcing invariance to
      match between vertex and fragment shaders.
      
      BUG=chromium:639760, chromium:659326
      TEST=conformance/glsl/misc/shaders-with-invariance.html and
      conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html
      
      Change-Id: I0aa9be14f0cee7a11a249c91fba27c570c52ca1b
      Reviewed-on: https://chromium-review.googlesource.com/404228Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
  6. 28 Oct, 2016 5 commits
  7. 27 Oct, 2016 5 commits
  8. 26 Oct, 2016 1 commit
    • Split TIntermDeclaration from TIntermAggregate · 13389b66
      Olli Etuaho authored
      The new class TIntermDeclaration is now used for struct, interface
      block and variable declarations. TIntermDeclaration nodes do not have
      a type - rather the type is stored in each child node. The types may
      differ in case the declaration is a series of array declarators with
      mismatching sizes.
      
      TIntermAggregate is still used for function calls, function
      prototypes, function parameter lists and invariant declarations.
      
      BUG=angleproject:1490
      TEST=angle_unittests
      
      Change-Id: I0457188f354481470855f61ac1c878fc2579b1d1
      Reviewed-on: https://chromium-review.googlesource.com/400023
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>