1. 30 Mar, 2016 1 commit
  2. 29 Mar, 2016 3 commits
    • Move -lrt where it belongs. · 7d52be02
      Frank Henigman authored
      Only deqp uses librt so the dependency belongs there, not in util.gyp,
      and the condition should be OS==linux, not use_x11.
      This lets things work on Chrome OS.
      
      BUG=angleproject:1297
      
      Change-Id: If397da5463b9c2d5217eb3b20841fa5a44bf56a3
      Reviewed-on: https://chromium-review.googlesource.com/334813Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
    • Fix warning introduced in "Program::getUniformInternal: return only one array element" · 7e2ba9ee
      Jamie Madill authored
      The warning does not seem to occur on the Chromium bots, but shows
      when compiling ANGLE standalone.
      
      BUG=595836
      
      Change-Id: I3c22bbea263223f9e92f82229817e9e9894a46ad
      Reviewed-on: https://chromium-review.googlesource.com/335576Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
    • Validate program changes wrt transform feedback · c3e55a43
      Olli Etuaho authored
      UseProgram can't be called while transform feedback is active and
      unpaused. Validate this by checking the presence of active transform
      feedback in UseProgram.
      
      LinkProgram or ProgramBinary can't be called while transform feedback
      associated with the program is active. Validate this by going through
      all of the existing transform feedback objects when one of these
      functions is called and checking whether they are associated with the
      program being changed. A program association is added to
      gl::TransformFeedback to facilitate this.
      
      BeginTransformFeedback can't be used to unpause a transform feedback
      object, so code for that is removed.
      
      The validation of the entry points touched in this patch is refactored
      to follow the current convention of separate Validate* functions,
      though with LinkProgram following this convention fully isn't
      practical.
      
      This patch also makes sure that ANGLE doesn't invoke behavior that the
      GL spec doesn't specify if a program object associated with a paused
      transform feedback is deleted.
      
      Tests are edited so that they don't call UseProgram when it generates
      an error.
      
      BUG=angleproject:1101
      TEST=dEQP-GLES3.functional.negative_api.shader.* (2 more tests pass),
           dEQP-GLES3.functional.transform_feedback.* (no regressions),
           angle_end2end_tests
      
      Change-Id: I2e5b3a027ced11249b762ec01a29fa41d2c0dd96
      Reviewed-on: https://chromium-review.googlesource.com/332141Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  3. 26 Mar, 2016 2 commits
  4. 24 Mar, 2016 2 commits
  5. 23 Mar, 2016 3 commits
  6. 22 Mar, 2016 5 commits
  7. 21 Mar, 2016 1 commit
  8. 16 Mar, 2016 2 commits
    • Revert Dirty bits for VertexArray11 · 00f394ec
      Corentin Wallez authored
      This is a combination of two reverts:
      Revert "D3D11: Remove unused mRenderer from VertexArray11."
      Revert "D3D11: Implement dirty bits for VertexArray11."
      Reverting only the first commit would trigger warnings on the Windows
      clang bot.
      
      BUG=594509
      BUG=angleproject:1327
      
      This reverts commit fc4712b5.
      This reverts commit 7d8585b8.
      
      Change-Id: I612dbba0816d6144f71ce815701c13a798585bc7
      Reviewed-on: https://chromium-review.googlesource.com/332989Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
    • Fix D3D11 DXGI format info tables · a0fc18d9
      Olli Etuaho authored
      - Treat red/green views into depth/stencil formats as being red/green.
      
      - Sort all AddDXGIFormat calls in a similar way and remove duplicate
        AddDXGIFormat calls.
      
      - Add info on typeless formats.
      
      These changes are needed to make it possible to change integer texture
      DXGI formats. Native mipmap generation support will still be
      determined by querying the DXGI format info table with the texture
      storage format, so the TYPELESS formats will need entries there.
      
      The changes to format info used for depth/stencil formats will not
      affect existing uses of GetDXGIFormatInfo:
      
      - In Clear11.cpp, info is queried for rtvFormat and dsvFormat. Info
        for possible values of rtvFormat and dsvFormat is not changed.
      
      - In Renderer11::blitRenderbufferRect, info is queried for rtvFormat
        and dsvFormat.
      
      - In Renderer11::packPixels, GetDXGIFormaInfo is used to get a
        fast-copy function. The function only exists for conversion from
        BGRA to RGBA, so the changes do not affect this.
      
      - In Renderer11::getVertexComponentType, the component type is
        queried for vertex formats. The formats that might be queried here
        are SINT, SNORM, UINT, UNORM, or FLOAT formats with regular RGBA
        fields. Info is not changed for these.
      
      - In TextureStorage11_Cube::createSRV, the SRV or blitSRV format is
        queried for whether it has integer on unsigned integer channels.
        This will not be affected by the changes done to the format table.
      
      This change does not enable native mipmap generation for any new
      formats to avoid any possible regressions.
      
      BUG=angleproject:1244
      TEST=angle_end2end_tests,
           dEQP-GLES3.functional.texture.mipmap.* (no regressions),
           dEQP-GLES3.functional.fbo.* (no regressions)
      
      Change-Id: Ic5ed731ddf153ae97bce631b1634347f8d9ae75c
      Reviewed-on: https://chromium-review.googlesource.com/329690Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  9. 15 Mar, 2016 2 commits
  10. 14 Mar, 2016 2 commits
    • D3D11: Use blit SRV format for blits · 7b591905
      Olli Etuaho authored
      blitSRVFormat stores the format that is used with ANGLE's internal
      blit shaders. By default, it is the same as the normal SRV format.
      For integer textures with a red channel, the RTV format is used
      instead. This makes it possible to change the storage format and the
      SRV format for the integer textures without affecting the blit format.
      
      The blitSRVFormat is used when doing blits in Blit11::copyTexture().
      
      An exception is made for depth/stencil renderbuffer blit - in these cases
      it is okay to assume that the regular SRV format works for blitting.
      
      In the future the regular SRV format for integer textures will be changed
      to be different from their blit SRV format.
      
      TEST=angle_end2end_tests
           dEQP-GLES3.functional.fbo.blit.* (no regression)
           dEQP-GLES3.functional.texture.swizzle.* (no regression)
      BUG=angleproject:1244
      
      Change-Id: Ie0e790e58ec054b64ef5983a09dbfc7754f269ca
      Reviewed-on: https://chromium-review.googlesource.com/327104Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
    • Fix framebuffer attachment enum validation · 84c9f593
      Olli Etuaho authored
      In GLES 3.0, GL_COLOR_ATTACHMENTi enums run all the way up to i=31,
      and don't stop at i=15 which the validation was previously checking
      against. It's acceptable to use this new enum range also for
      EXT_draw_buffers, since an error will still be generated if an enum
      is outside the range of maximum supported attachments.
      
      Also, generate INVALID_ENUM when dEQP tests expect it to be generated
      for color attachment number that's outside the supported range. This
      is not in line with the published 3.0 spec, but that's just an
      oversight in the spec document.
      
      Also fix incorrect INVALID_VALUE error in the validation of
      renderbufferStorageMultisample to INVALID_OPERATION.
      
      BUG=angleproject:1101
      TEST=dEQP-GLES3.functional.negative_api.buffer.* (all pass)
      
      Change-Id: Ib8cf92651d29ef8fe8da0ce4bfa456cbc4d48850
      Reviewed-on: https://chromium-review.googlesource.com/332140Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
  11. 12 Mar, 2016 1 commit
  12. 10 Mar, 2016 8 commits
  13. 09 Mar, 2016 2 commits
    • D3D11: Implement dirty bits for VertexArray11. · 7d8585b8
      Jamie Madill authored
      Translated attributes are now stored in the VertexArray11 in a cache,
      and only updated when dirty bits change. Currently dynamic attributes
      must be re-translated every call, so these are stored in a list and
      processed repeatedly.
      
      This skips doing a lot of the VertexDataManager work for vertex
      attributes that don't change between draw calls.
      
      Current value attributes, which correspond to disabled attributes that
      the program will pulls vertex data from, are owned by the Context, so
      these need to be handled outside of the VertexArray11.
      
      Further changes will be necessary to reduce the redundant work we do in
      the InputLayoutCache. We shouldn't need to re-check the cache if
      nothing relevant changed.
      
      This give about a 23% performance improvement on the draw call
      benchmark on my machine.
      
      BUG=angleproject:1327
      
      Change-Id: I7fb944d32ea7e6c78b9e478406bdb7e10a7fc05b
      Reviewed-on: https://chromium-review.googlesource.com/330173Reviewed-by: 's avatarZhenyao Mo <zmo@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Correct GLES depth 32 format. · aa57aa4c
      Frank Henigman authored
      GL_OES_depth32 is required for DEPTH_COMPONENT32_OES render buffers.
      This stops Mesa from complaining when using GLES in the back end.
      
      BUG=angleproject:1301
      
      Change-Id: I8c6ce6a5ce0cb5bf26157e3bb414f391a41d15c4
      Reviewed-on: https://chromium-review.googlesource.com/331359Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org>
      Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
  14. 08 Mar, 2016 6 commits