1. 06 Jan, 2020 3 commits
    • Fix GGP build · 56fd2bce
      Ethan Lee authored
      Bug: angleproject:4246
      Change-Id: I80906196ebc3c904e75516e8c53b05dd81c5fa5c
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1982633Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
      Commit-Queue: Jamie Madill <jmadill@chromium.org>
    • Metal: fix vertex attribute's conversion lost after changing buffer binding. · ab42afa6
      Le Hoang Quyen authored
      After vertex buffer's attribute is converted and stored in conversion
      buffer. Binding the same attribute to another buffer, then binding it
      back to previous buffer will result in previous conversion
      information lost. The conversion method would skip the conversion due to
      buffer's content hadn't been changed, however it didn't reuse the old
      conversion result.
      
      This CL also changed the way binding offset is used in Metal backend.
      - Previous, the offset would be assigned to the offset field of
        MTLVertexAttributeDescriptor, then the buffer would simply be bound to
        the command encoder with offset=0
        i.e. setVertexBuffer(buffer, index, 0)
      - However this approach has several disadvantages. Since Metal doesn't
        allow MTLVertexAttributeDescriptor's offset to be larger than the
        vertex attribute's stride, the old approach would force the back-end
        to convert the attribute and store in conversion buffer.
      
      New approach:
      - MTLVertexAttributeDescriptor's offset will be zero. The offset will be
        used to bind the buffer itself to the render command encoder.
        i.e. setVertexBuffer(buffer, index, offset)
        This way the "offset <= stride" restriction no longer exists. The only
        restriction is the offset must be multiple of attribute's size.
      
      Added 3 new tests:
      - SimpleStateChangeTest.RebindTranslatedAttribute
      - VertexAttributeTest.DrawWithLargeBufferOffset
      - VertexAttributeTest.DrawWithLargeBufferOffsetAndLessComponents
      
      Bug: angleproject:2634
      Change-Id: I6c2fa8091436e4a24405d791f86d17d97df02d64
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1940009
      Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
      Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
    • update date comments to 2020 · 3311ef65
      Jeff Vigil authored
      run_code_generation.py updated comments with 2019 to 2020.
      Put all date updates into this one CL.
      This also updated hashes.
      
      Bug: angleproject:4262
      Change-Id: Ia213dd5e47f155986cbb4161d777724355878af0
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1986994
      Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
      Reviewed-by: 's avatarMohan Maiya <m.maiya@samsung.com>
      Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
  2. 04 Jan, 2020 1 commit
  3. 03 Jan, 2020 4 commits
  4. 02 Jan, 2020 1 commit
  5. 31 Dec, 2019 1 commit
  6. 30 Dec, 2019 5 commits
  7. 27 Dec, 2019 2 commits
  8. 25 Dec, 2019 4 commits
  9. 24 Dec, 2019 4 commits
    • Use TSpan for TType's array sizes · 86d9c93a
      Shahbaz Youssefi authored
      Until C++20, std::vector doesn't have a constexpr constructor, which
      means TType cannot use a `TVector` for `mArraySizes` if an arrayed type
      needs to be created constexpr.  This is needed for the upcoming
      textureGatherOffsets implementation.
      
      A new TSpan class is introduced, based on std::span (from C++20) that
      holds the pointer/size allocated from a TVector without owning it.
      Since TVector's allocation are made from a pool, the allocated memory
      will live beyond the vector's destruction.  `TType::mArraySizes` is
      changed to this type.
      
      This change will allow a new constexpr constructor to be added to TType
      that takes a TSpan as array directly, a value which is constexpr
      initialized from a static array (instead of TVector).
      
      Bug: angleproject:3569
      Change-Id: I78793b0f4c64519e0ebe30cf6e0de995ba70035d
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1968260Reviewed-by: 's avatarJiajia Qin <jiajia.qin@intel.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    • Vulkan:Transform/feedback instanced draw support · c713abfd
      Tobin Ehlis authored
      These fixes allow dEQP 3.1 KHR-GLES31.core.vertex_attrib_binding.basic-input*
      test cases to pass.
      
      This fixes a bug in instanced drawing with transform feedback buffers
      where we were overwriting the initial transform feedback output as new
      instances were drawn. To fix this, the vertices in each draw are passed
      into a uniform value and the output is offset based on the current instance
      and the number of vertices in the draw.
      
      It also fixes a validation error where transform feedback descriptor
      was sometimes setting a buffer range of 0. This is not allowed, so in
      the 0 case we pull the actual buffer size from the bufferHelper object.
      
      Bug: angleproject:4236
      Change-Id: Ib72898a0e6caab96c446c1e996a6124d2c001193
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1979600
      Commit-Queue: Tobin Ehlis <tobine@google.com>
      Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com>
      Reviewed-by: 's avatarTobin Ehlis <tobine@google.com>
    • Vulkan:Update Vulkan Vertex Attribute Offsets · 67d8b63a
      Tobin Ehlis authored
      This fixes most of the test for
      dEQP 3.1 KHR-GLES31.core.vertex_attrib_binding.basic-input*
      
      The bug fixes is that we were not correctly setting the vertex attribute
      offset for vertex attribs that were converted into their own buffer.
      We kept the attrib offset from the frontend as if the converted attribs
      were in the original buffer, but converted vtx attrib buffers in the VK
      backend are tightly packed from the start of the buffer so when converting
      the actual offset should be 0.
      
      Also, in order to avoid a VK validation error, this change includes a tmp
      workaround to make sure transform feedback output buffer range is never 0,
      but sets VK_WHOLE_SIZE in that case. A follow-on fix that focuses on
      transform feedback fixes will address this validation error more fully.
      
      Bug: angleproject:4145
      Bug: angleproject:4236
      Change-Id: I8c218954725945414a8f18beb4f964b90da7062a
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1980906
      Commit-Queue: Tobin Ehlis <tobine@google.com>
      Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com>
      Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
    • Disable flaky test on Metal · 87607526
      Shahbaz Youssefi authored
      Bug: chromium:1037665
      Bug: angleproject:4177
      Change-Id: I38f05f1567803e7ac0c631d94056f26dc122a4f2
      Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1980278Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
      Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
  10. 23 Dec, 2019 7 commits
  11. 21 Dec, 2019 3 commits
  12. 20 Dec, 2019 5 commits