1. 11 Jul, 2018 6 commits
    • Refactor internal format pixel math methods. · ca2ff38b
      Jamie Madill authored
      This removes the use of the ErrorOrResult class from these methods.
      This will enable more performant Error handling. Also cleans up the
      ANGLE_TRY_CHECKED_MATH macro to be more general.
      
      Bug: angleproject:2713
      Change-Id: I349947d320907839ca88ec1f9251e6ddc3858a08
      Reviewed-on: https://chromium-review.googlesource.com/1128920
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
    • EGL: Fix binding EGL_NO_SURFACE without surfaceless support. · 89ef177f
      Geoff Lang authored
      It was possible for ANGLE to call eglMakeCurrent with EGL_NO_SURFACE and
      a valid context when the client called eglMakeCurrent with
      EGL_NO_SURFACE and EGL_NO_CONTEXT.  Fix this by always binding a surface
      when the driver has no native surfaceless support.
      
      Don't expose the surfaceless extension when it's not possible to support
      it (unvirtualized contexts and no native surfaceless support).
      
      BUG=860800
      BUG=angleproject:2464
      
      Change-Id: Id8af9638d4356dbd710c453c9f196b9f25a2bbf9
      Reviewed-on: https://chromium-review.googlesource.com/1131555Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Vulkan: Remove vk::ErrorOrResult. · 6cad7736
      Jamie Madill authored
      The ErrorOrResult pattern doesn't help much. Removing it enables the
      Error passing refactor in the Vulkan back-end.
      
      Bug: angleproject:2713
      Change-Id: I4e8277ad856c785bf22b4d37b7ae880b534ef005
      Reviewed-on: https://chromium-review.googlesource.com/1128919
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
    • Vulkan: Implement sampler structs as function args. · 84c11c53
      Jamie Madill authored
      Bug: angleproject:2494
      Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96
      Reviewed-on: https://chromium-review.googlesource.com/1117323
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
    • Vulkan/D3D11: Improve blit framebuffer tests and fix bug in D3D11 · 5c8113d3
      Luc Ferron authored
      - Improving the tests revealed a bug in D3D 11 Fast Path rendering.
      - These changes here are preliminary to implementing the blit for
      depth/stencil in Vulkan when using the viewport flipping.
      
      Bug: angleproject:2673
      Bug: angleproject:2719
      Change-Id: I6d55084e559d3110c8eeb0e7acb4e6fb09b6c1b5
      Reviewed-on: https://chromium-review.googlesource.com/1132125Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Luc Ferron <lucferron@chromium.org>
    • ES31: Support atomic functions on D3D11 - Part I · a6a7842f
      Jiawei Shao authored
      This patch is the first one of the implementation of atomic
      functions in D3D11.
      
      There are mainly two differences in the usage of GLSL and HLSL
      atomic functions:
      1. All GLSL atomic functions have return values, which all
         represent the original value of the shared or ssbo variable;
         while all HLSL atomic functions don't, and the original value
         can be stored in the last parameter of the function call.
      2. For HLSL atomic functions, the last parameter that stores the
         original value is optional except for InterlockedExchange and
         InterlockedCompareExchange. Missing original_value in the call
         of InterlockedExchange and InterlockedCompareExchange results
         in a compile error from HLSL compiler.
      
      To handle these differences, we plan to implement the translation
      in two steps:
      1. Support direct translations from GLSL atomic functions to HLSL
         ones.
      Direct translation can only handle the following two situations:
      (1) The sentence is a GLSL atomic function call without requesting
          a return value and it is not atomicExchange or atomicCompSwap:
          e.g.
          GLSL: atomicAdd(mem, value);
       -> HLSL: InterlockedAdd(mem, value);
      (2) The sentence is a simple assignment expression: its right is
          a GLSL atomic function call and its left is a declared variable.
          e.g.
          GLSL: oldValue = atomicAdd(mem, value);
       -> HLSL: InterlockedAdd(mem, value, oldValue);
      
      2. Support atomic functions in the situations that don't support
         direct translations.
      We will modify the intermediate tree to make direct translation work
      on all these situations.
      e.g.
         atomicExchange(mem, value);
      -> int oldValue;
         oldValue = atomicExchange(mem, value);
      
         int oldValue = atomicAdd(mem, value);
      -> int oldValue;
         oldValue = atomicAdd(mem, value);
      
         return atomicAdd(mem, value);
      -> int temp;
         temp = atomicAdd(mem, value);
         return temp;
      
         for (i = 0; i < atomicAdd(mem, value); ++i)
      -> int temp;
         temp = atomicAdd(mem, value);
         for (i = 0; i < temp; ++i)
         {
             ...
             temp = atomicAdd(mem, value);
         }
      
         int result = isTrue ? atomicAdd(mem, value) : 0;
      -> int result;
         if (isTrue)
         {
             result = atomicAdd(mem, value);
         }
         else
         {
             result = 0;
         }
      
      This patch completes Step 1 which mainly focus on the translation
      from GLSL atomic functions to HLSL ones.
      
      BUG=angleproject:2682
      TEST=angle_end2end_tests
      
      Change-Id: I3b655b6e286dad4fd97f255f7fe87521c94db30c
      Reviewed-on: https://chromium-review.googlesource.com/1121835
      Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
      Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
  2. 10 Jul, 2018 18 commits
  3. 09 Jul, 2018 12 commits
  4. 06 Jul, 2018 1 commit
  5. 05 Jul, 2018 3 commits