1. 06 Jun, 2017 3 commits
  2. 05 Jun, 2017 10 commits
  3. 02 Jun, 2017 5 commits
  4. 01 Jun, 2017 8 commits
  5. 31 May, 2017 5 commits
  6. 30 May, 2017 3 commits
  7. 29 May, 2017 6 commits
    • Ensure gl State structs are zero filled. · aa0a5446
      Jamie Madill authored
      In some cases we would hash or memcmp against structs with bools or
      other non-filled data. This could have implementation differences,
      and may have been causing cache errors on Clang.
      
      BUG=chromium:721648
      BUG=angleproject:2044
      
      Change-Id: I981a1e6e8d50a33f7fade568497b72b919accfce
      Reviewed-on: https://chromium-review.googlesource.com/516383Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Support CHROMIUM_copy_texture for all formats on D3D11. · 80616218
      Geoff Lang authored
      Adds a CPU readback and conversion path when the destination texture is
      not renderable.
      
      BUG=angleproject:1932
      
      Change-Id: I71461ca991dc10dd636ff38e1ae20db2be0f8d63
      Reviewed-on: https://chromium-review.googlesource.com/508308
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Platform: Fix initialization order in tests. · 98de826c
      Jamie Madill authored
      Because of the platform refactor in abf38572 we broke the way
      the tests override the D3D workarounds for the tiny depth/stencil bug.
      
      This change passes a pointer to the platform directly in the EGL init
      logic, which solves this issue. It also removes all decltype code in
      the platform header which might fix the UBSAN problem we were seeing
      previously.
      
      Also change a present mode selection error into a warning in the Vk
      back-end, since this was being triggered on AMD, but is safe.
      
      BUG=angleproject:2042
      
      Change-Id: Ibbd0c69ce11a840cf4b33c616f56020001e553aa
      Reviewed-on: https://chromium-review.googlesource.com/513519Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • D3D11: Consolidate state allocation. · 20805650
      Jamie Madill authored
      This cleans up the allocation and deallocation of Blend, DepthStencil,
      Rasterizer, and Sampler states.
      
      This patch introduces a LazyResource2 class, basically a replacement
      for LazyResource, which will be removed once the refactor is done.
      
      BUG=angleproject:2034
      
      Change-Id: I4fa759ae479807ff69a629f89a08b01800ba3f66
      Reviewed-on: https://chromium-review.googlesource.com/503627
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Add missing completeness checks for texture attachments. · 857c09db
      Geoff Lang authored
      Texture attachments need to validate that the attached mip level is within
      the [baseLevel,maxLevel] range and that the texture is complete if the
      attached mip level is not the base level.
      
      BUG=722684
      
      Change-Id: I859766506b295638572b75a0e2e9fed168be047a
      Reviewed-on: https://chromium-review.googlesource.com/506928Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • 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>