1. 08 May, 2016 1 commit
  2. 06 May, 2016 3 commits
    • Determine D3D texture storage size with correct base level · a314b61c
      Olli Etuaho authored
      The size of the texture storage is now determined by extrapolating
      the level zero texture dimensions from the base level dimensions.
      This fixes crashing when images for levels below the base level are
      not defined, and also fixes texture storage dimensions being
      calculated wrong in case the levels outside the used level range have
      dimensions that are inconsistent with the dimensions inside the used
      level range.
      
      Checking texture level completeness in TextureD3D is now done based on
      the dimensions of the base level, and levels that are outside the base
      level to max level range are not taken into account. Textures are
      marked incomplete in case their base level is greater than their max
      level.
      
      Changing the base level can also affect the size of the storage
      required for the texture. Old storage is now discarded when the base
      level is changed and the new base level calls for different storage
      dimensions.
      
      Code in TextureD3D is refactored so that "base level" actually means
      the base level of the texture specified through the GLES API, and
      "level zero" is used where TextureD3D would sometimes previously use
      "base level".
      
      Changing either the base level or max level can also affect texture
      completeness, so invalidate the cached completeness in Texture if
      they are changed.
      
      Some of the added tests are still failing on Intel and NVIDIA OpenGL
      drivers because of driver bugs. Tests also fail on OSX.
      
      BUG=angleproject:596
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.texture.* (no regressions),
           dEQP-GLES3.functional.shaders.texture_functions.* (no regressions),
           dEQP-GLES3.functional.state_query.texture.* (no regressions)
      
      Change-Id: Icd73d6e29f84a341ed5ff36d5ec5cb2f469cb4e8
      Reviewed-on: https://chromium-review.googlesource.com/333352Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Disable angle_enable_gl on chromeos · 369d03c1
      Steven Bennetts authored
      BUG=angleproject:1370
      
      Change-Id: I63e3ee8fc6e08fcd2a908cdca3558af886526cbd
      Reviewed-on: https://chromium-review.googlesource.com/342740Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org>
      Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Fix eglStreamConsumerAcquireKHR · f691cfab
      John Bauman authored
      This was incorrectly acquiring every plane to texture 0.
      
      BUG=angleproject:1332
      
      Change-Id: I6df1401b705d903078e2631634b6bf20a07570de
      Reviewed-on: https://chromium-review.googlesource.com/342513Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: John Bauman <jbauman@chromium.org>
  3. 03 May, 2016 2 commits
  4. 02 May, 2016 6 commits
  5. 30 Apr, 2016 1 commit
  6. 29 Apr, 2016 6 commits
  7. 28 Apr, 2016 6 commits
  8. 27 Apr, 2016 1 commit
  9. 26 Apr, 2016 3 commits
  10. 25 Apr, 2016 1 commit
  11. 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>
  12. 21 Apr, 2016 1 commit
  13. 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>
  14. 18 Apr, 2016 2 commits
  15. 15 Apr, 2016 3 commits
  16. 14 Apr, 2016 2 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>