1. 12 Jul, 2016 1 commit
    • Support precision emulation on HLSL · a42e8b2c
      Olli Etuaho authored
      Add precision emulation support to HLSL 4.1 output. This makes it
      possible for developers to test their shaders for precision issues
      easily on Chrome on Windows without having to use the GL backend. The
      patch has been verified with Chrome on Windows to reproduce some
      precision bugs in real-world WebGL content, including old versions of
      the babylon.js library.
      
      The EmulatePrecision AST transformation still relies on writing out
      raw shader code for the rounding functions, with raw HLSL code added
      alongside pre-existing GLSL and ESSL code. In some ways it would be
      nicer to do the EmulatePrecision step as a pure AST transformation,
      but on the other hand the raw code is much more readable and easier
      to optimize.
      
      To better support multiple output languages in EmulatePrecision, add a
      RoundingHelperWriter class that has different subclasses for writing
      the rounding functions in different languages.
      
      The unit tests are expanded to cover the HLSL output of precision
      emulation. The parts of the tests that require the HLSL output are
      only active on Windows where ANGLE_ENABLE_HLSL define is added to the
      unit tests. Putting the HLSL tests in an entirely separate file is a
      worse alternative, since it would require either a lot of code
      duplication or add a lot of boilerplate to the individual tests.
      
      BUG=angleproject:1437
      TEST=angle_unittests
      
      Change-Id: Ia4ba0374cd415908f16f34752321af1cb93525a5
      Reviewed-on: https://chromium-review.googlesource.com/358473Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 11 Jul, 2016 1 commit
  3. 09 Jul, 2016 1 commit
  4. 07 Jul, 2016 3 commits
  5. 06 Jul, 2016 2 commits
  6. 05 Jul, 2016 4 commits
  7. 04 Jul, 2016 9 commits
  8. 01 Jul, 2016 1 commit
    • Add a helper class for compiler string matching tests · 10fcd9be
      Olli Etuaho authored
      The MatchOutputCodeTest class makes it easier to implement tests that
      do string matching on compiler output. Inheriting test classes set the
      compiler settings, tests then call compile() with the shader string
      and can call foundInCode() to check if the output code contains a
      given string.
      
      Various compiler unit tests that already did string matching are
      refactored to make use of this new helper class. Some tests now use
      SH_GLES3_SPEC instead of SH_GLES2_SPEC - this should not have a
      significant impact on test coverage.
      
      Some compileTestShader function variants that are now unused can be
      removed from the code.
      
      BUG=angleproject:1430
      TEST=angle_unittests
      
      Change-Id: I1fd3529d5a1c6ab192f95ace800cf162604e68e7
      Reviewed-on: https://chromium-review.googlesource.com/357800Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  9. 30 Jun, 2016 4 commits
  10. 29 Jun, 2016 9 commits
  11. 28 Jun, 2016 1 commit
  12. 25 Jun, 2016 1 commit
  13. 24 Jun, 2016 1 commit
  14. 23 Jun, 2016 2 commits