1. 02 Feb, 2017 2 commits
    • Add new ESSL 3.10 pack/unpack builtins · 25aef453
      Olli Etuaho authored
      This adds new built-ins found in ESSL 3.10 section 8.4 Floating-Point
      Pack and Unpack Functions.
      
      This includes constant folding support and support for both GLSL and
      HLSL output. In HLSL all of these functions need to be emulated.
      
      BUG=angleproject:1730
      TEST=angle_unittests
      TEST=dEQP-GLES31.functional.shaders.*pack*norm4x8*
      
      Change-Id: Ibed60286a366cd35c4faafd405e79af562a02a06
      Reviewed-on: https://chromium-review.googlesource.com/434170
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Vulkan: Implement shader compilation. · 8ecf7f9b
      Jamie Madill authored
      This hooks up the Vulkan GLSL, decorated with locations, to glslang,
      and then pipes the SPIRV back to the Program implementation for later
      use when making pipelines to run draw calls.
      
      The program compilation tests work now, but don't really test
      anything other than not generating Vulkan validation layer errors
      during compilation and shader object generation.
      
      BUG=angleproject:1576
      
      Change-Id: I625e42219f4b4d1433dd3109b94e1a2f666ba4bd
      Reviewed-on: https://chromium-review.googlesource.com/408519
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  2. 01 Feb, 2017 9 commits
  3. 31 Jan, 2017 7 commits
  4. 30 Jan, 2017 5 commits
  5. 27 Jan, 2017 1 commit
  6. 26 Jan, 2017 3 commits
  7. 25 Jan, 2017 3 commits
  8. 24 Jan, 2017 2 commits
  9. 23 Jan, 2017 5 commits
  10. 20 Jan, 2017 1 commit
    • Make AST path always include the current node being traversed · 1d9dcc24
      Olli Etuaho authored
      AST traversers tend to sometimes call traverse() functions manually
      during PreVisit. Change TIntermTraverser so that even if this happens,
      all the nodes are automatically added to the traversal path, instead
      of having to add them manually in each individual AST traverser.
      
      This also makes calling getParentNode() return the correct node during
      InVisit.
      
      This does cause the same node being added to the traversal path twice
      in some cases, where nodes are repeatedly traversed, like in
      OutputHLSL, but this should not have adverse side effects. The more
      common case is that the traverse() function is called on the children
      of the node being currently traversed.
      
      This fixes a bug in OVR_multiview validation, which did not previously
      call incrementDepth and decrementDepth when it should have.
      
      BUG=angleproject:1725
      TEST=angle_unittests, angle_end2end_tests
      
      Change-Id: I6ae762eef760509ebe853eefa37dac28c16e7a9b
      Reviewed-on: https://chromium-review.googlesource.com/430732
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  11. 19 Jan, 2017 2 commits