1. 12 Dec, 2017 2 commits
    • ES31: Fixed the SSBO instance array error · feb2c63b
      Jiajia Qin authored
      In ESSL 3.10 spec, there are below descriptions:
      1. Any uniform or shader storage block declared without a binding qualifier
      is initially assigned to block binding point zero.
      2. If the binding qualifier is used with a uniform block or shader storage
      block instanced as an array, the first element of the array takes the
      specified block binding and each subsequent element takes the next
      consecutive binding point.
      
      So explicitly specifying the binding to zero is different with not declaring
      a binding qualifier for a block instance array.
      
      For example:
      1)    layout(shared, binding = 0) buffer blockName {
                uint data;
            } instanceName[3];
      
      2)    layout(shared) buffer blockName {
                uint data;
            } instanceName[3];
      In 1), the binding point of each element instance is 0, 1, 2.
      In 2), the binding point of each element instance is 0, 0, 0.
      
      BUG=angleproject:1951
      TEST=dEQP-GLES31.functional.ssbo.layout.*
      
      Change-Id: If770d6e1fd8e13d2cdc762bab289772076258e4c
      Reviewed-on: https://chromium-review.googlesource.com/816340Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
    • Fix HLSL integer pow workaround · 629a6449
      Olli Etuaho authored
      The exponent should be rounded prior to casting it to an integer.
      
      Also if the exponent has a significant fractional part the expression
      should not be turned into a multiplication. The previous code failed
      to check this correctly if the exponent's fractional part was greater
      than 0.5.
      
      The test case is expanded to cover the previously failing cases.
      
      BUG=chromium:793115
      TEST=angle_end2end_tests
      
      Change-Id: Ic72cd6ddc7f3d2495f7c87a3e3cfac5791445e72
      Reviewed-on: https://chromium-review.googlesource.com/817299Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  2. 11 Dec, 2017 1 commit
  3. 09 Dec, 2017 1 commit
  4. 07 Dec, 2017 2 commits
  5. 06 Dec, 2017 4 commits
  6. 05 Dec, 2017 6 commits
  7. 04 Dec, 2017 5 commits
  8. 02 Dec, 2017 1 commit
    • Simplify parsing struct field declarators · d5f44c98
      Olli Etuaho authored
      This removes the dummy type that was attached to struct declarators
      while parsing. This makes TParseContext::addStructDeclaratorList in
      particular simpler to understand.
      
      The new TDeclarator data type is the parsed representation of the
      struct_declarator grammar rule. It is completely immutable. The name
      and location stored in TField can also be qualified as constant now.
      
      BUG=angleproject:2267
      TEST=angle_unittests
      
      Change-Id: I2834f87fc0eee0bdb7673ef495a55fb463023c55
      Reviewed-on: https://chromium-review.googlesource.com/797033
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  9. 01 Dec, 2017 8 commits
  10. 30 Nov, 2017 5 commits
  11. 29 Nov, 2017 5 commits