1. 29 May, 2017 4 commits
    • Initialize uninitialized locals in GLSL output · 9733ceef
      Olli Etuaho authored
      Guarantee that local variables are initialized before they are used
      in GLSL output. In HLSL output all variables were already being
      initialized.
      
      Locals are initialized using an AST transform. The local variable init
      can only be run after some simplification of the AST, so that it is
      able to handle complex cases like:
      
      for (int i[2], j = i[0]; i[0] < 3; ++i[0]) {
      }
      
      If we're dealing with ESSL 1.00 which lacks array constructors, in
      this kind of case the uninitialized array initialization code needs to
      be hoisted out of the loop init statement, and the code also needs to
      make sure that j's initializer is run after i is initialized.
      
      Another complex case involves nameless structs. This can be an issue
      also in ESSL 3.00 and above:
      
      for (struct { float f; } s; s.f < 1.0; ++s.f) {
      }
      
      Since the struct doesn't have a name, its constructor can not be used.
      We solve this by initializing the struct members individually,
      similarly to how arrays are initialized in ESSL 1.00.
      
      Initializing local variables is disabled on Mac and Android for now.
      On Mac, invalid behavior was exposed in the WebGL 2.0 tests when
      enabling it. On Android, the dEQP test runs failed for an unknown
      reason. Bugs have been opened to resolve these issues later.
      
      BUG=angleproject:1966
      TEST=angle_end2end_tests, WebGL conformance tests
      
      Change-Id: Ic06927f5b6cc9619bc82c647ee966605cd80bab2
      Reviewed-on: https://chromium-review.googlesource.com/504728
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • D3D11: Consolidate Buffer allocation. · bdc1e2a2
      Jamie Madill authored
      We now allocate and release all buffer resources from a single place,
      allowing us to allocate junk memory, clear on init, and track the
      currently allocated buffer memory.
      
      BUG=angleproject:2034
      
      Change-Id: Id60b63a7f77bc369dfc494a7587ab06c8d34a8e2
      Reviewed-on: https://chromium-review.googlesource.com/503253Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Refactor multisample framebuffer completeness checks. · a1b9d5a2
      Geoff Lang authored
      Re-land with protection against div-by-zero in samples compatibility
      check.
      
      BUG=722684
      
      Change-Id: I3d5c310d1f2cb4d8b92d80492435855c3c4ad807
      Reviewed-on: https://chromium-review.googlesource.com/517427Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Support multiview in ESSL 1.00 shaders · 95468d17
      Olli Etuaho authored
      Support is added according to the proposal for WEBGL_multiview. When
      the multiview extension is enabled in an ESSL 1.00 shader, num_views
      can be specified using a layout qualifier. To support this, enabling
      the multiview extension makes "layout" a keyword rather than an
      identifier in ESSL 1.00.
      
      The type of gl_ViewID_OVR is also different in case of ESSL 1.00: it
      has to be a signed integer, since unsigned integers are not supported
      in ESSL 1.00.
      
      Some existing tests for multiview shaders are extended in this patch.
      The changes make sure that vertex shader "in" qualifier is still
      allowed in ESSL 3.00 multiview shaders, since this patch adds code to
      disallow it in ESSL 1.00 multiview shaders.
      
      BUG=angleproject:1669
      TEST=angle_unittests
      
      Change-Id: I65dbbbebabdb24cf0bb647d40aa80cebf713c4f7
      Reviewed-on: https://chromium-review.googlesource.com/506088Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 26 May, 2017 3 commits
  3. 25 May, 2017 3 commits
  4. 24 May, 2017 12 commits
  5. 23 May, 2017 1 commit
  6. 22 May, 2017 1 commit
  7. 19 May, 2017 4 commits
  8. 18 May, 2017 5 commits
  9. 17 May, 2017 7 commits