1. 02 May, 2016 3 commits
  2. 30 Apr, 2016 1 commit
  3. 29 Apr, 2016 6 commits
  4. 28 Apr, 2016 6 commits
  5. 27 Apr, 2016 1 commit
  6. 26 Apr, 2016 3 commits
  7. 25 Apr, 2016 1 commit
  8. 22 Apr, 2016 1 commit
    • Pass ImplFactory to Texture constructor · 82c47ad0
      Olli Etuaho authored
      This improves encapsulation inside the Texture class, and removes
      duplication of createTexture calls. This is a necessary step towards
      adding a shared "Data" structure to the Texture classes, following a
      similar pattern as for example the Framebuffer class.
      
      This patch also shares the same MockFactory class among different
      unit tests.
      
      BUG=angleproject:596
      TEST=angle_unittests
      
      Change-Id: Ie8d3a9aa4ec35565d7ecbabb8c40e7b1ba068721
      Reviewed-on: https://chromium-review.googlesource.com/340200Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  9. 21 Apr, 2016 1 commit
  10. 20 Apr, 2016 1 commit
    • Clean up MipmapTest · b97a3e77
      Olli Etuaho authored
      This refactoring is done to prepare for adding more mipmap tests for
      ES3 where base level / max level is changed from 0.
      
      1. Reuse drawQuad() from ANGLETest instead of having completely custom
      quad drawing code, and reuse the same clear+draw function for both 2D
      and cube map texture tests.
      
      2. Add a helper function for clearing texture level 0 with glClear.
      
      3. Remove a few redundant texture binding and useProgram calls.
      
      4. Rely on sampler uniforms being set to 0 by default and texture unit
      0 being active by default.
      
      5. Remove "Offscreen" from variable names.
      
      6. Split SetUp functions to helper functions.
      
      7. Reuse FillWithRGBA from TextureTest also in MipmapTest.
      
      BUG=angleproject:596
      TEST=angle_end2end_tests
      
      Change-Id: I9fd738f4b8b0a19c7aa1d267f7dbaa40a6935631
      Reviewed-on: https://chromium-review.googlesource.com/338791Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  11. 18 Apr, 2016 2 commits
  12. 15 Apr, 2016 3 commits
  13. 14 Apr, 2016 3 commits
    • Takes principal component analysis to improve the endpoint in ETC transcode. · 6684007a
      Minmin Gong authored
      Insteading of getting the BC1 endpoints from the max and min intensity, a PCA
      on pixels might give us better quality results, with limited costs.
      
      Change-Id: I7638d78c666c2580a6b0c267470bf4a0f7082e05
      Reviewed-on: https://chromium-review.googlesource.com/332871
      Commit-Queue: Corentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Geoff Lang <geofflang@chromium.org>
    • Defer global initializers when necessary · 3d932d83
      Olli Etuaho authored
      Move global variable initializers that are not constant expressions to
      a function that gets called at the start of main(). This is done
      with an AST transformation. This needs to be done because global
      variable initializers must be constant in native GL, but ANGLE is more
      lenient with what can be put into ESSL 1.00 global initializers to
      remain compatible with legacy WebGL content.
      
      Non-constant global variable initializers also caused issues in HLSL
      output, since in HLSL output some types of expressions get unfolded
      into multiple statements. These include short-circuiting operators and
      array initialization. To make sure that these cases are covered, any
      initializers that can't be constant folded are deferred, even if they
      have the const qualifier.
      
      The old deferring mechanism in OutputHLSL is removed in favor of this
      new AST transformation based approach.
      
      BUG=angleproject:819
      BUG=angleproject:1205
      BUG=angleproject:1350
      BUG=596616
      TEST=WebGL conformance test
           conformance/glsl/misc/global-variable-init.html
      
      Change-Id: I039cc05d6b8c284baeefbdf7f10062cae4bc5716
      Reviewed-on: https://chromium-review.googlesource.com/338291Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Wrap integer textures with correct wrap mode in HLSL · b079c7af
      Olli Etuaho authored
      The wrap mode information for all three dimensions is packed to a
      single integer in order to conserve sampler metadata space. Only one
      int4 vector is used for the metadata for a single sampler.
      
      The sampler metadata is now packed into a struct instead of an array
      of integers in order to make the code more readable and maintainable.
      The internalFormatBits field is not removed in this patch. It's better
      to remove it in a separate patch, so restoring it is easier in case it
      will be used for optimizing some of the texture sampling functions.
      
      The wrap mode passed in sampler metadata is used to wrap the texture
      coordinates in the code generated to implement ESSL 3.00 integer
      texture sampling built-ins.
      
      Those dEQP-GLES3.functional.texture.units.* tests that sample from
      integer cube maps still fail on Intel D3D after this change,
      presumably due to driver issues.
      
      BUG=angleproject:1244
      BUG=angleproject:1095
      BUG=angleproject:1092
      TEST=dEQP-GLES3.functional.texture.units.* (all pass on NVIDIA),
           dEQP-GLES3.functional.shaders.texture_functions.* (no regressions)
      
      Change-Id: I4e31e5796086f9cc290c6f1f8c4380a768758d71
      Reviewed-on: https://chromium-review.googlesource.com/336638Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  14. 13 Apr, 2016 1 commit
  15. 12 Apr, 2016 7 commits