1. 09 Dec, 2016 1 commit
    • Output infinity and NaN literals correctly in shaders · 56a2f95f
      Olli Etuaho authored
      Previously infinity and NaN resulting from constant folding would be
      clamped to finite 32-bit float range when they were written in shader
      output. Now they are written as a bit pattern in case the shader
      version allows it.
      
      This does not guarantee that NaNs work, but this is fine, since ESSL
      3.00.6 spec has very loose requirements when it comes to NaNs.
      
      BUG=angleproject:1654
      TEST=angle_end2end_tests
      
      Change-Id: I9997000beeaa8ed22523c22d5cf6929cdfc93f60
      Reviewed-on: https://chromium-review.googlesource.com/417301
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  2. 08 Dec, 2016 6 commits
  3. 07 Dec, 2016 2 commits
    • Validate that line width is not NaN. · 47c48080
      Geoff Lang authored
      BUG=668223
      
      Change-Id: I2f38b358dd4a6b9327562704dacce37f2b16acaa
      Reviewed-on: https://chromium-review.googlesource.com/417192Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Handle constant folding arithmetic involving infinity · 2d73665d
      Olli Etuaho authored
      Constant folding arithmetic operations that involve infinity are now
      handled correctly in the cases where the result is infinity or zero.
      The implementation mostly relies on C++ to implement IEEE float
      arithmetic correctly so that unnecessary overhead is avoided.
      
      Constant folding arithmetic operations that result in overflow now
      issue a warning but result in infinity. This is not mandated by the
      spec but is a reasonable choice since it is the behavior of the
      default IEEE rounding mode.
      
      Constant folding arithmetic operations that result in NaN in IEEE will
      generate a warning but the NaN is kept. This is also not mandated by
      the spec, but is among the allowed behaviors.
      
      There's no special handling for ESSL 1.00. ESSL 1.00 doesn't really
      have the concept of NaN, but since it is not feasible to control
      generating NaNs at shader run time either way, it should not be a big
      issue if constant folding may generate them as well.
      
      TEST=angle_unittests
      BUG=chromium:661857
      
      Change-Id: I06116c6fdd02f224939d4a651e4e62f2fd4c98a8
      Reviewed-on: https://chromium-review.googlesource.com/414911Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  4. 06 Dec, 2016 1 commit
  5. 05 Dec, 2016 2 commits
  6. 02 Dec, 2016 3 commits
  7. 01 Dec, 2016 5 commits
  8. 30 Nov, 2016 3 commits
  9. 29 Nov, 2016 3 commits
  10. 28 Nov, 2016 5 commits
  11. 25 Nov, 2016 1 commit
  12. 24 Nov, 2016 1 commit
  13. 23 Nov, 2016 5 commits
  14. 22 Nov, 2016 2 commits