1. 14 Oct, 2016 1 commit
    • Split TIntermFunctionDefinition from TIntermAggregate · 336b1470
      Olli Etuaho authored
      This makes the code easier to understand. Function definition nodes
      always have just two children, the parameters node and the function
      body node, so there was no proper reason why they should be aggregate
      nodes.
      
      As a part of this change, intermediate output is modified to print
      symbol table ids of functions so that debugging function id related
      functionality will be easier in the future.
      
      After this patch, TIntermAggregate is still used for function
      prototypes, function parameter lists, function calls, variable and
      invariant declarations and the comma (sequence) operator.
      
      BUG=angleproject:1490
      TEST=angle_unittests, angle_end2end_tests
      
      Change-Id: Ib88b4ca5d21abd5f126836ca5900d0baecabd19e
      Reviewed-on: https://chromium-review.googlesource.com/394707
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
  2. 13 Oct, 2016 3 commits
  3. 12 Oct, 2016 3 commits
  4. 11 Oct, 2016 6 commits
  5. 10 Oct, 2016 3 commits
    • Add cross-platform Workarounds to Context. · f2f6f65f
      Kenneth Russell authored
      These are distinct from the renderer-level workarounds.
      
      Add the first workaround, loseContextOnOutOfMemory. This is enabled
      when the application enables reset notifications via KHR_robustness,
      and is intended for more robust handling of errors in key APIs for
      Chromium's correctness (in particular, sync objects).
      
      Change Context::getResetStatus to persistently return the "lost" status
      if it was set by calling Context::markContextLost. Previously, if
      markContextLost was called but the implementation hadn't actually
      received an error like a lost device, the "lost" reset status would be
      dropped. Returning it only once to the caller is also fragile. Tested
      this by manually injecting a failure in FenceSync11::clientWait and
      ensuring that Chromium detected it as expected.
      
      BUG=chromium:650138
      
      Change-Id: Ie53069eacd1754ad5d64936e3fef315af24605fa
      Reviewed-on: https://chromium-review.googlesource.com/394233
      Commit-Queue: Kenneth Russell <kbr@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
    • Add missing virtual destructor on TIntermAggregateBase · f8fd2bd3
      Olli Etuaho authored
      BUG=angleproject:1490
      TEST=build on Linux GCC
      
      Change-Id: I64f53d636d4acee0469b6e9ba1201322087d5f65
      Reviewed-on: https://chromium-review.googlesource.com/395732Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Split TIntermBlock from TIntermAggregate · 6d40bbdd
      Olli Etuaho authored
      The new TIntermBlock node class replaces TIntermAggregate nodes with
      the EOpSequence op. It represents the root node of the tree which is
      a list of declarations and function definitions, and any code blocks
      that can be denoted by curly braces. These include function and loop
      bodies, and if-else branches.
      
      This change enables a bunch of more compile-time type checking, and
      makes the AST code easier to understand and less error-prone.
      
      The PostProcess step that used to be done to ensure that the root node
      is TIntermAggregate is removed in favor of making sure that the root
      node is a TIntermBlock in the glslang.y parsing code.
      
      Intermediate output formatting is improved to print the EOpNull error
      in a clearer way.
      
      After this patch, TIntermAggregate is still used for function
      definitions, function prototypes, function parameter lists, function
      calls, variable and invariant declarations and the comma (sequence)
      operator.
      
      BUG=angleproject:1490
      TEST=angle_unittests, angle_end2end_tests
      
      Change-Id: I04044affff979a11577bc1fe75d747e538b799c8
      Reviewed-on: https://chromium-review.googlesource.com/393726
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
  6. 09 Oct, 2016 2 commits
  7. 08 Oct, 2016 2 commits
  8. 07 Oct, 2016 11 commits
  9. 06 Oct, 2016 9 commits