1. 20 May, 2016 4 commits
    • Fix GenerateMipmap when base level or max level are set · 0f2b1560
      Olli Etuaho authored
      According to GLES 3.0.4 section 3.8.10, GenerateMipmap should generate
      levels based on the base level, and generate them at most up to the
      max level. Levels outside the base/max level range should be unchanged
      by GenerateMipmap.
      
      The Texture class is fixed so that the image descs are set only for
      the changed mipmap range when GenerateMipmap is called.
      
      The D3D backend is fixed so that mipmap generation is correctly
      started from the base level instead of level 0, and making sure that
      mipmaps are generated only up to the max level. Generating mipmaps for
      array textures is also fixed for cases where the base level depth >=
      max(width, height) * 2.
      
      The GL backend is fixed to sync texture state before GenerateMipmap is
      called, so that base level and max level are set correctly in the
      driver.
      
      The GenerateMipmap entry point is refactored so that it has a separate
      validation function and a context function which does the work.
      Validation for out-of-range base levels is added.
      
      New tests are added to verify the functionality. One corner case in
      the tests fails on NVIDIA GL drivers likely due to a driver bug -
      similar rules for GenerateMipmap are found from newer GLES specs and
      also OpenGL specs (checked versions 3.3 and 4.4).
      
      BUG=angleproject:596
      TEST=angle_end2end_tests
      
      Change-Id: Ifc7b4126281967fc4f6dc4f9452e5b01e39f83d7
      Reviewed-on: https://chromium-review.googlesource.com/344514Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Make inheritance heirarchy for egl::Surface. · d3a5b185
      Jamie Madill authored
      This will allow us to select the Impl constructor more easily
      
       createWindowSurface
       createPbufferSurface
       createPbufferSurfaceFromClientBuffer
       createPixmapSurface
      
      This in turn lets us pass an EGLImplFactory to the constructor and
      will allow us to pass in the local SurfaceState to the constructor.
      
      BUG=angleproject:1369
      
      Change-Id: I6b13c1548c54bd5c493d59b68bfdaf55226b6bb5
      Reviewed-on: https://chromium-review.googlesource.com/342060Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Try hard to eliminate isError in ValidationEGL. · 61a692b1
      Jamie Madill authored
      We were getting a compile warning due to variable shadowing from
      redeclaring a local egl::Error. Fix this using the ANGLE_TRY macro.
      
      BUG=angleproject:596
      
      Change-Id: I38954bd1c9f171f264d7ecbf58d634ae721296ad
      Reviewed-on: https://chromium-review.googlesource.com/346092Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Fix Linux standalone compilation. · 87ae8cdf
      Yuly Novikov authored
      simple_texture_2d, hello_triangle, stencil_operations, simple_texture_cubemap
      fail to compile after https://chromium-review.googlesource.com/342050.
      
      BUG=angleproject:1319
      TEST=ninja -C out/Release all
      
      Change-Id: Ib70008036f8688b737f3f40b5224437a7afdea19
      Reviewed-on: https://chromium-review.googlesource.com/346121Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
  2. 19 May, 2016 4 commits
  3. 18 May, 2016 2 commits
  4. 17 May, 2016 5 commits
  5. 16 May, 2016 4 commits
  6. 13 May, 2016 2 commits
  7. 12 May, 2016 3 commits
  8. 11 May, 2016 2 commits
  9. 09 May, 2016 1 commit
  10. 08 May, 2016 2 commits
  11. 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>
  12. 03 May, 2016 2 commits
  13. 02 May, 2016 6 commits