1. 04 May, 2017 5 commits
    • GLES2: Auto-generate entry points file. · ee769dd2
      Jamie Madill authored
      BUG=angleproject:1309
      
      Change-Id: I7817444c3ea56f932fe769a860f4a70b29262019
      Reviewed-on: https://chromium-review.googlesource.com/483427Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Inherit privately from angle::NonCopyable. · aa7203ef
      Frank Henigman authored
      Make all inheritance from angle::NonCopyable private so the compiler
      complains about this (admittedly unlikely) code:
      
        class Foo: angle::NonCopyable {
            virtual ~Foo() { ... }
        };
        angle::NonCopyable *p = new Foo;
        delete p;
      
      In the above code ~Foo() is not called, only ~NonCopyable(), because the
      latter is not virtual.  Making it virtual would add overhead to all derived
      classes which don't already have a virtual method.
      
      Also tighten access in NonCopyable, because we can.
      
      BUG=angleproject:2026
      
      Change-Id: Id0dc4d959cfb7bb82cf49382118129abb1d3a4f0
      Reviewed-on: https://chromium-review.googlesource.com/495352Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
    • Fix compilation of the Vulkan loader / layers in standalone · 6a1d2f93
      Corentin Wallez authored
      This commit introduces a stamping mechanism to make sure the order of
      build dependencies is correct.
      
      In GYP there are the following build order dependencies (between others):
       - A target link depends on previous target links
       - A target source compile depends on that target actions outputs
       - An action output depends on the action inputs
      
      The problem was that there were actions in vulkan_layer_utils_static
      that generated headers needed by vulkan_loader's sources (between others)
      Making a "dependencies" relationship between the two was not enough to
      ensure the headers were generated before the source were compiled.
      
      Instead we replicated the "stamping" mechanism used in GN using GYP
      actions that depend on the headers and output a dummy stamp file. This
      completes the build order dependencies: the sources depend on the stamp
      which depend on the action's input, i.e. the generated headers.
      
      BUG=angleproject:1668
      
      Change-Id: I2de15ac2ea8f838acdbf43da1f111b28b8cc2184
      Reviewed-on: https://chromium-review.googlesource.com/493892
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarFrank Henigman <fjhenigman@chromium.org>
    • Update checks for floating point renderability. · 677bb6ff
      Geoff Lang authored
       * Expose GL_CHROMIUM_color_buffer_float_rgb and
         GL_CHROMIUM_color_buffer_float_rgba
       * Fix many texture formats that were incorrectly checking the wrong
         extension for support or renderability.
       * Make all floating point texture extensions dynamically enableable.
      
      BUG=angleproject:1958
      BUG=angleproject:1715
      
      Change-Id: Iefccc8b5ae5edd97623affa9de05b1d9af5c9598
      Reviewed-on: https://chromium-review.googlesource.com/468450Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • GLSL parser: Fix empty declaration qualifier checks · bb7e5a7c
      Olli Etuaho authored
      The shader validation now does the same checks for qualifier
      combinations regardless of if a declaration is empty, as is specified.
      Some of these checks used to be in singleDeclarationErrorCheck, and
      have now been moved to a new function declarationQualifierErrorCheck.
      The other parts of singleDeclarationErrorCheck are under a renamed
      nonEmptyDeclarationErrorCheck.
      
      The patch also contains another related cleanup: Unnecessary symbol
      nodes won't be created for empty declarations any more.
      
      BUG=angleproject:2020
      TEST=angle_unittests
      
      Change-Id: I1c864a5e151c52703926d8c550450b2561bfcbb2
      Reviewed-on: https://chromium-review.googlesource.com/493227
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  2. 03 May, 2017 5 commits
  3. 02 May, 2017 6 commits
  4. 01 May, 2017 2 commits
  5. 28 Apr, 2017 5 commits
  6. 27 Apr, 2017 4 commits
  7. 26 Apr, 2017 3 commits
    • Use parameter cache to skip passing IndexRange. · 9c9b40ac
      Jamie Madill authored
      For DrawElements et al., we can use a simple design to store
      entry point parameters and compute index ranges lazily. This allows
      us to compute the index range outside of the validation layer.
      
      Fixing this will let us implement a few things, such as the no error
      extension. It will also allow auto-generation of the entry points,
      since we won't have to have special cases for certain entry
      points. It will also help fix the syncState layering problem. Now the
      cached parameter helper (which is owned by the Context) can make the
      impl layer calls, instead of the validation layer calling the impl
      directly.
      
      We use a small array in Context to gather parameters in a generic
      way without reallocation on call. We also check type safety by storing
      a type info struct which can handle inheritance between type classes.
      Optional variables for the cache determine when to re-compute values.
      
      The intent with gatherParams is to call this in every entry point, and
      have in most cases be a no-op. In some cases like for IndexRange, we
      store some parameters for later use. The inheritance scheme enables
      auto-generation of the entry points by keeping signatures similar.
      
      BUG=angleproject:747
      
      Change-Id: I871e99e1334cf6e61ef8da62fde3ced094903f8a
      Reviewed-on: https://chromium-review.googlesource.com/474119
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • D3D11: Alias dirty buffer channel bindings. · 25e297e9
      Jamie Madill authored
      The types for this were a bit disorganized. Clean this up.
      
      BUG=angleproject:1635
      
      Change-Id: I669d347697e0c7c5b06ed7165fa0997c375e876e
      Reviewed-on: https://chromium-review.googlesource.com/483315
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Support Vulkan on Linux as well as Windows. · 29f148b0
      Frank Henigman authored
      Refactor display and surface classes into Win32 and Linux parts and
      add Linux parts to gn and gyp builds.
      
      BUG=angleproject:1668
      
      Change-Id: I2a7d29c35f4f42fa0035bd97938d3770f3627672
      Reviewed-on: https://chromium-review.googlesource.com/412426
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  8. 25 Apr, 2017 3 commits
  9. 24 Apr, 2017 4 commits
  10. 21 Apr, 2017 3 commits