1. 20 Jul, 2016 3 commits
    • Add support for ES31 context creation · 1be913cf
      Martin Radev authored
      The dEQP test for context creation passes.
      
      SH_WEBGL3_SPEC has been added, but it should be considered whether we
      should keep it, remove it or rename it. It was added so that there is
      a webgl mapping to es 310 shaders. Check Compiler.cpp. The bison file
      has been modified so that some tokens from es3 can be also used in
      es31 as well.
      
      A separate macro ES3_1_ONLY is added so that some tokens are limited
      only for es 310 shaders.
      
      BUG=angleproject:1442
      TEST=angle_unittests
      
      Change-Id: I2e5ca227c96046c30dc796ab934f3fda9c533eba
      Reviewed-on: https://chromium-review.googlesource.com/360300Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Fix windows clang build · 6396d9f2
      Yoichi Osato authored
      Change-Id: I920e9be38c3dd63e00db111294f69c335c4e772d
      Reviewed-on: https://chromium-review.googlesource.com/361663Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Fix KHR_Debug segfault errors · 9d901791
      Martin Radev authored
      Calls to functions ObjectLabel, ObjectPtrLabel, GetObjectLabel,
      GetObjectPtrLabel were resulting into segfaults due to improper
      validation and parameter handling. It could be that the
      implementations of those functions were based on an earlier version
      of the KHR_Debug extension.
      
      The patch fixes the segfault error and almost all failing dEQP 3.1
      tests related to KHR_Debug. The failing tests were also relevant to
      older ES versions. There is still one failing test, but that one
      fails since ES3.1 is not fully supported yet.
      
      List of reasons for the segfault error and failing tests:
      - the segfault error was caused by strlen called on a null pointer
      - another segfault was caused by writing out the length to a null
      pointer
      - even if the buffer size for getObject(Ptr)Label is 0, still the
      length of the label can be returned. That was not handled.
      
      BUG=angleproject:1446
      TEST=angle_deqp_gtest_gles31_tests
      --gtest_filter=*functional_debug_object*
      
      Change-Id: I4743be8e862f3620091061cd7abb206a426655ed
      Reviewed-on: https://chromium-review.googlesource.com/361300Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 19 Jul, 2016 10 commits
  3. 18 Jul, 2016 10 commits
  4. 16 Jul, 2016 1 commit
  5. 15 Jul, 2016 6 commits
  6. 14 Jul, 2016 5 commits
  7. 13 Jul, 2016 3 commits
  8. 12 Jul, 2016 2 commits
    • TranslatorGLSL/ESSL: Output #pragma before #extension · b00dcee4
      Corentin Wallez authored
      The Intel Mesa driver considers the #pragma directive to be a
      non-preprocessor token which makes shaders fail compilation.
      
      The relevant blurb from the spec is: "the extension directives
      must occur before any non-preprocessor tokens"
      
      BUG=627417
      
      Change-Id: Ic22cff49a9f9c1fe5d140302581ca7b36688732c
      Reviewed-on: https://chromium-review.googlesource.com/359621Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
    • 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>